表示 StreamLayer 添加到 MapView 或 SceneView 中的 Map 后的 LayerView。
StreamLayer's 负责将 StreamLayer 的特征渲染为 View 中的图形。StreamLayerView 中的方法为开发人员提供了在视图中查询和突出显示图形的能力。有关如何从视图访问客户端图形的示例,请参阅以下方法中的代码片段。
它连接到持续发出地理特征的服务器。当您想要映射无界且连续的动态数据流时,流层适用。将 StreamLayer 添加到地图后,用户可以看到服务器推送的任何实时更新。有关更多信息,请阅读 StreamLayer 的文档。
属性概览
名称 | 类型 | 描述 | 类 | |
---|---|---|---|---|
Error | 更多信息 解释连接到流服务的尝试失败或与流服务意外断开连接的错误。 | 更多信息 | StreamLayerView | |
String | 更多信息 Web Socket 与流服务的连接状态。 | 更多信息 | StreamLayerView | |
String | 更多信息 类的名称。 | 更多信息 | Accessor | |
FeatureEffect | 更多信息 应用于 layerView 的效果。 | 更多信息 | StreamLayerView | |
FeatureEffect | 更多信息 featureEffect 可用于吸引感兴趣的注意力特征。 | 更多信息 | StreamLayerView | |
FeatureFilter | 更多信息 | 更多信息 | StreamLayerView | |
Layer | 更多信息 正在查看的图层。 | 更多信息 | LayerView | |
Boolean | 更多信息 指示图层视图是否支持 MapView 的 spatialReference。 | 更多信息 | LayerView | |
Boolean | 更多信息 如果图层被暂停,则值为 | 更多信息 | LayerView | |
Boolean | 更多信息 图层更新时值为 | 更多信息 | LayerView | |
Boolean | 更多信息 为 | 更多信息 | LayerView |
属性详情
-
connectionError Errorreadonly
-
解释连接到流服务的尝试失败或与流服务意外断开连接的错误。
-
connectionStatus Stringreadonly
-
Web Socket 与流服务的连接状态。 可以观察此属性以查看连接是否意外丢失。
可能值:"connected"|"disconnected"
-
起始版本:GeoScene API for JavaScript 4.7
-
类的名称。声明的类名格式为
geoscene.folder.className
。
-
effect FeatureEffectautocast起始版本:GeoScene API for JavaScript 4.15已弃用从 4.22 版开始。请改用 FeatureEffect。
-
应用于 layerView 的效果。效果允许通过 filter 选择要素,并且将 includedEffect 和 excludedEffect 应用于分别通过或未通过过滤器要求的那些要素。
已知限制
3D SceneViews 不支持 FeatureEffect。
示例:// set effect on excluded features (if outside of the geometry) // make them gray and transparent streamLayerView.effect = { filter: { // autocasts to FeatureFilter geometry: areaOfInterest, }, excludedEffect: "grayscale(100%) opacity(30%)" };
-
featureEffect FeatureEffectautocast起始版本:GeoScene API for JavaScript 4.22
-
featureEffect 可用于吸引感兴趣的注意力特征。它允许通过 filter 选择要素,并将 includedEffect 和 excludedEffect 应用于分别通过或未通过过滤器要求的那些要素。
如果在 layer 上设置了
featureEffect
,除非开发者在 layerView 上覆盖它,否则它会被layerView.featureEffect
继承。如果设置了这两个属性,则layerView.featureEffect
将优先于layer.featureEffect
。已知限制
- 以下场景不支持 FeatureEffect:
- 在 3D SceneViews 中
- 在使用 HeatmapRenderer 渲染的图层中
- 启用 FeatureReductionCluster 时
- 打印地图时
- 在 layerView 上设置的 FeatureEffect 不能在 WebMap 中持久化。
示例:// gray out features that fall outside of the 3 mile buffer of the mouse's location // by setting feature effect on excluded features layerView.featureEffect = new FeatureEffect({ filter: new FeatureFilter({ geometry: filterGeometry, spatialRelationship: "intersects", distance: 3, units: "miles" }), excludedEffect: "grayscale(100%) opacity(30%)" });
// Apply a drop-shadow feature effect to the features that intersect the borough boundaries, // while applying blur and brightness effects to the features that are excluded from filter criteria. // The resulting map will make it easier to spot if the residents are more likely to experience deprivation // if they live on a borough boundary. const featureFilter = new FeatureFilter({ where: "BoroughEdge='true'" }); layerView.featureEffect = new FeatureEffect({ filter: featureFilter, includedEffect: "drop-shadow(3px, 3px, 3px, black)", excludedEffect: "blur(1px) brightness(65%)" });
- 以下场景不支持 FeatureEffect:
-
filter FeatureFilterautocast起始版本:GeoScene API for JavaScript 4.11
-
Attribute、geometry、geometry 和 time extent 过滤。只有满足过滤器的要素才会显示在视图上。
示例:// display earthquakes that have // magnitude value of 3 or higher layerView.filter = new FeatureFilter({ where: "mag >= 3", });
-
正在查看的图层。
-
起始版本:GeoScene API for JavaScript 4.23
-
指示图层视图是否支持 MapView 的 spatialReference。当
false
层视图将暂停。- 另请参阅:
-
如果图层被暂停,则值为
true
(即,当范围发生变化时,图层不会重绘或更新自身)。
-
图层更新时值为
true
;例如,如果它正在获取数据的过程中。- 默认值:false
-
为
true
时,图层在视图中可见。此属性的值是从layer.visible
继承的,除非开发人员覆盖它。如果设置了这两个属性,layerView.visible
将优先于layer.visible
。- 默认值:true
方法概览
名称 | 返回类型 | 描述 | 类 | |
---|---|---|---|---|
Boolean | 更多信息 在实例上发出事件。 | 更多信息 | StreamLayerView | |
Boolean | 更多信息 指示实例上是否存在与提供的事件名称匹配的事件侦听器。 | 更多信息 | StreamLayerView | |
Handle | 更多信息 突出显示给定的要素。 | 更多信息 | StreamLayerView | |
Boolean | 更多信息
| 更多信息 | LayerView | |
Boolean | 更多信息
| 更多信息 | LayerView | |
Boolean | 更多信息
| 更多信息 | LayerView | |
Object | 更多信息 在实例上注册事件处理程序。 | 更多信息 | StreamLayerView | |
Promise<Object> | 更多信息 | 更多信息 | StreamLayerView | |
Promise<Number> | 更多信息 对 layerView 中可用于绘制的要素执行 Query,并返回满足查询的要素数。 | 更多信息 | StreamLayerView | |
Promise<FeatureSet> | 更多信息 对 layerView 中可用于绘制的要素执行 Query 并返回 FeatureSet。 | 更多信息 | StreamLayerView | |
Promise<FeatureSet> | 更多信息 如果在流服务上指定了 trackIdField,则此方法对 layerView 中可用于绘制的要素执行 Query,并返回满足查询的每个 | 更多信息 | StreamLayerView | |
Promise<Number[]> | 更多信息 对 layerView 中可用于绘制的要素执行 Query,并返回满足输入查询的要素的 ObjectID 数组。 | 更多信息 | StreamLayerView | |
Promise | 更多信息
| 更多信息 | LayerView |
方法详情
-
emit(type, event){Boolean}起始版本:GeoScene API for JavaScript 4.5
-
在实例上发出事件。此方法仅应在创建此类的子类时使用。
参数:type String事件的名称。
event Objectoptional事件有效负载。
返回:类型 说明 Boolean true
if a listener was notified
-
hasEventListener(type){Boolean}
-
指示实例上是否存在与提供的事件名称匹配的事件侦听器。
参数:type String事件的名称。
返回:类型 说明 Boolean 如果类支持输入事件,则返回 true。
-
highlight(target){Handle}
-
突出显示给定的要素。
参数:optional 要突出显示的要素。传递图形或图形数组时,每个要素都必须具有有效的
objectID
。您也可以将一个或多个 objectID 作为单个数字或数组传递。返回:类型 说明 Handle 返回一个带有 remove()
方法的高亮处理程序,可以调用该方法来删除高亮显示。示例:// highlight feature on pointer-move view.on("pointer-move", function(event){ view.hitTest(event).then(function(response){ if (response.results.length) { let graphic = response.results.filter(function (result) { return result.graphic.layer === myLayer; })[0].graphic; view.whenLayerView(graphic.layer).then(function(layerView){ layerView.highlight(graphic); }); } }); });
-
isFulfilled()
可用于验证创建类的实例是否已完成(已解决或已拒绝)。如果满足,则返回true
。返回:类型 说明 Boolean 指示创建类的实例是否已完成(已解决或已拒绝)。
-
isRejected()
可用于验证创建类的实例是否被拒绝。如果被拒绝,则返回true
。返回:类型 说明 Boolean 指示创建类的实例是否已被拒绝。
-
isResolved()
可用于验证创建类的实例是否已解决。如果已解决,将返回true
。返回:类型 说明 Boolean 指示创建类的实例是否已解决。
-
on(type, listener){Object}
-
在实例上注册事件处理程序。调用此方法以将事件与侦听器挂钩。
参数:要侦听的事件或事件数组。
listener Function事件触发时调用的函数。
返回:类型 说明 Object 返回带有 remove()
方法的事件处理程序,应调用该方法以停止侦听事件。属性 类型 说明 remove Function 调用时,从事件中删除侦听器。 示例:view.on("click", function(event){ // event is the event handle returned after the event fires. console.log(event.mapPoint); });
-
起始版本:GeoScene API for JavaScript 4.9
-
对 layerView 中可用于绘制的要素执行 Query,并返回满足查询的要素 Extent。如果未提供查询参数,则返回所有可绘制要素的范围和计数。
已知限制
- 空间查询具有与投影引擎文档中列出的相同的限制。
- 如果 layerView 具有以下任何 SpatialReferences,则当前不支持空间查询:
- GDM 2000 (4742) – Malaysia
- Gusterberg (Ferro) (8042) – Austria/Czech Republic
- ISN2016 (8086) - Iceland
- SVY21 (4757) - Singapore
参数:optional Autocasts from Object指定查询的属性、空间和时间过滤器。当没有参数传递给此方法时,将返回客户端中的所有功能。要仅返回视图中可见的要素,请将查询对象中的
geometry
参数设置为视图的范围。options Objectoptional具有以下属性的对象。
规格:signal AbortSignaloptional可用于中止异步任务的信号对象。当发出中止信号时,返回的 Promise 将被一个名为
AbortError
的 Error 拒绝。另请参阅 AbortController 以获取有关如何构造可用于传递中止信号的控制器的更多信息。返回:类型 说明 Promise<Object> 解析后,返回满足输入查询的要素的范围和计数。有关详细信息,请参阅下面的对象规格表。 属性 类型 说明 count Number 满足输入查询的要素数。 extent Extent 满足查询的要素的范围。 示例:let layer = new StreamLayer({ url: streamLayerUrl // URL to a stream service }); view.whenLayerView(layer).then(function(layerView){ layerView.watch("updating", function(val){ if(!val){ // wait for the layerView to finish updating layerView.queryExtent().then(function(results){ view.goTo(results.extent); // go to the extent of all the graphics in the layerView }); } }); });
-
起始版本:GeoScene API for JavaScript 4.9
-
对 layerView 中可用于绘制的要素执行 Query,并返回满足查询的要素数。如果未提供查询参数,则返回可用于绘制的所有要素的计数。
已知限制
- 空间查询具有与投影引擎文档中列出的相同的限制。
- 如果 layerView 具有以下任何 SpatialReferences,则当前不支持空间查询:
- GDM 2000 (4742) – Malaysia
- Gusterberg (Ferro) (8042) – Austria/Czech Republic
- ISN2016 (8086) - Iceland
- SVY21 (4757) - Singapore
参数:optional Autocasts from Object指定查询的属性、空间和时间过滤器。当没有参数传递给此方法时,将返回客户端中的所有功能。要仅返回视图中可见的要素,请将查询对象中的
geometry
参数设置为视图的范围。options Objectoptional具有以下属性的对象。
规格:signal AbortSignaloptional可用于中止异步任务的信号对象。当发出中止信号时,返回的 Promise 将被一个名为
AbortError
的 Error 拒绝。另请参阅 AbortController 以获取有关如何构造可用于传递中止信号的控制器的更多信息。返回:类型 说明 Promise<Number> 解析后,返回满足查询的要素数。 示例:view.on("click", function(event){ let query = new Query(); query.geometry = event.mapPoint; // obtained from a view click event query.spatialRelationship = "intersects"; view.whenLayerView(layer).then(function(layerView){ watchUtils.whenNotOnce(layerView, "updating") .then(function(){ return layerView.queryFeatureCount(query); }) .then(function(count){ console.log(count); // prints the number of the client-side graphics that satisfy the query }); }); });
view.whenLayerView(layer).then(function(layerView){ return layerView.queryFeatureCount() }).then(function(count){ console.log(count); // prints the total number of client-side graphics to the console });
-
queryFeatures(query, options){Promise<FeatureSet>}起始版本:GeoScene API for JavaScript 4.9
-
对 layerView 中可用于绘制的要素执行 Query 并返回 FeatureSet。如果未提供查询参数,则返回所有可用于绘图的要素。
已知限制
- 空间查询具有与投影引擎文档中列出的相同的限制。
- 如果 layerView 具有以下任何 SpatialReferences,则当前不支持空间查询:
- GDM 2000 (4742) – Malaysia
- Gusterberg (Ferro) (8042) – Austria/Czech Republic
- ISN2016 (8086) - Iceland
- SVY21 (4757) - Singapore
参数:optional 来自 Object指定查询的属性、空间和时间过滤器。当没有参数传递给此方法时,将返回客户端中的所有功能。要仅返回视图中可见的要素,请将查询对象中的
geometry
参数设置为视图的范围。options Objectoptional具有以下属性的对象。
规格:signal AbortSignaloptional可用于中止异步任务的信号对象。当发出中止信号时,返回的 Promise 将被一个名为
AbortError
的 Error 拒绝。另请参阅 AbortController 以获取有关如何构造可用于传递中止信号的控制器的更多信息。返回:类型 说明 Promise<FeatureSet> 解析后,将返回包含图形特征数组的 FeatureSet。 示例:view.whenLayerView(layer).then(function(layerView){ layerView.watch("updating", function(val){ if(!val){ // wait for the layerView to finish updating layerView.queryFeatures(query).then(function(results){ console.log(results.features); // prints the array of client-side graphics to the console }); } }); });
// returns all the graphics from the layerView view.whenLayerView(layer).then(function(layerView){ layerView.watch("updating", function(val){ if(!val){ // wait for the layerView to finish updating layerView.queryFeatures().then(function(results){ console.log(results.features); // prints all the client-side graphics to the console }); } }); });
-
queryLatestObservations(query, options){Promise<FeatureSet>}起始版本:GeoScene API for JavaScript 4.9
-
如果在流服务上指定了 trackIdField,则此方法对 layerView 中可用于绘制的要素执行 Query,并返回满足查询的每个
trackId
的最新观察结果的 FeatureSet。 否则,调用该方法时会抛出一个 Error。已知限制
- 空间查询具有与投影引擎文档中列出的相同的限制。
- 如果 layerView 具有以下任何 SpatialReferences,则当前不支持空间查询:
- GDM 2000 (4742) – Malaysia
- Gusterberg (Ferro) (8042) – Austria/Czech Republic
- ISN2016 (8086) - Iceland
- SVY21 (4757) - Singapore
参数:optional 来自 Object指定查询的属性、空间和时间过滤器。当没有参数传递给此方法时,将返回客户端中的所有功能。要仅返回视图中可见的要素,请将查询对象中的
geometry
参数设置为视图的范围。options Objectoptional具有以下属性的对象。
规格:signal AbortSignaloptional可用于中止异步任务的信号对象。当发出中止信号时,返回的 Promise 将被一个名为
AbortError
的 Error 拒绝。另请参阅 AbortController 以获取有关如何构造可用于传递中止信号的控制器的更多信息。返回:类型 说明 Promise<FeatureSet> 解析后,返回满足输入查询的 FeatureSet。 示例:let layer = new StreamLayer({ url: streamLayerUrl // URL to a Stream Service }); view.whenLayerView(layer).then(function(layerView){ layerView.watch("updating", function(val){ if(!val){ // wait for the layerView to finish updating layerView.queryLatestObservations().then(function(results){ console.log(results.features); // prints all the client-side graphics to the console }); } }); });
-
起始版本:GeoScene API for JavaScript 4.9
-
对 layerView 中可用于绘制的要素执行 Query,并返回满足输入查询的要素的 ObjectID 数组。如果未提供查询参数,则返回所有可绘制要素的 ObjectID。
已知限制
- 空间查询具有与投影引擎文档中列出的相同的限制。
- 如果 layerView 具有以下任何 SpatialReferences,则当前不支持空间查询:
- GDM 2000 (4742) – Malaysia
- Gusterberg (Ferro) (8042) – Austria/Czech Republic
- ISN2016 (8086) - Iceland
- SVY21 (4757) - Singapore
参数:optional 来自 Object指定查询的属性、空间和时间过滤器。当没有参数传递给此方法时,将返回客户端中的所有功能。要仅返回视图中可见的要素,请将查询对象中的
geometry
参数设置为视图的范围。options Objectoptional具有以下属性的对象。
规格:signal AbortSignaloptional可用于中止异步任务的信号对象。当发出中止信号时,返回的 Promise 将被一个名为
AbortError
的 Error 拒绝。另请参阅 AbortController 以获取有关如何构造可用于传递中止信号的控制器的更多信息。返回:类型 说明 Promise<Number[]> 解析后,返回一个数字数组,表示满足查询的要素的 ObjectID。 示例:view.on("click", function(event){ let query = new Query(); query.geometry = event.mapPoint; // obtained from a view click event query.spatialRelationship = "intersects"; view.whenLayerView(layer).then(function(layerView){ watchUtils.whenNotOnce(layerView, "updating") .then(function(){ return layerView.queryObjectIds(query); }) .then(function(ids){ console.log(ids); // prints the ids of the client-side graphics to the console }); }); });
// returns all the Ids from the graphics in the layerView view.whenLayerView(layer).then(function(layerView){ return layerView.queryObjectIds() }).then(function(ids){ console.log(ids); // prints the ids of all the client-side graphics to the console });
-
起始版本:GeoScene API for JavaScript 4.6
-
when()
一旦创建了类的实例,就可以利用它。这个方法有两个输入参数:一个callback
函数和一个errback
函数。callback
在类的实例加载时执行。如果类的实例无法加载,则执行errback
。参数:callback Functionoptional当 promise 解决时调用的函数。
errback Functionoptional当 promise 失败时执行的函数。
返回:类型 说明 Promise 返回 callback
结果的新承诺,可用于链接其他函数。示例:// Although this example uses MapView, any class instance that is a promise may use when() in the same way let view = new MapView(); view.when(function(){ // This function will execute once the promise is resolved }, function(error){ // This function will execute if the promise is rejected due to an error });
事件概览
名称 | 类型 | 描述 | 类 | |
---|---|---|---|---|
{attributes: Object,geometry: Object} |
更多信息 当 layerView 接收到数据时触发。 |
更多信息 | StreamLayerView | |
{client: Number,websocket: Number} |
更多信息 在图层开始从流服务接收更新后触发。 |
更多信息 | StreamLayerView |
事件详情
-
data-received
-
当 layerView 接收到数据时触发。事件对象包含从流服务接收到的消息属性。