StreamLayerView

类: geoscene/views/layers/StreamLayerView
继承于:StreamLayerView LayerView Accessor
起始版本:GeoScene Maps SDK for JavaScript 4.4

表示将 StreamLayer 添加到 MapViewSceneView 中的 Map 后的 LayerView

StreamLayerView 负责将 StreamLayer 的要素渲染为 View 中的图形。StreamLayerView 中的方法可为开发人员提供在视图中查询和突出显示图形的能力。有关如何从视图访问客户端图形的示例,请参阅以下方法中的代码片段。

它连接到连续呈现地理特征的服务器。当您希望绘制无界且连续的动态数据流时,流图层非常适用。将 StreamLayer 添加到地图后,用户可以看到服务器推送的任何实时更新。有关更多信息,请参阅 StreamLayer 的文档。

另请参阅

属性概述

可以设置、检索或侦听任何属性。请参阅使用属性主题。
显示继承属性 隐藏继承属性
名称 类型 描述
Error

该错误解释连接到流服务的失败的尝试或与流服务意外断开的连接。

更多详情
StreamLayerView
String

Web Socket 与流服务的连接状态。

更多详情
StreamLayerView
String

类的名称。

更多详情
Accessor
FeatureEffect

featureEffect 可用于关注感兴趣的要素。

更多详情
StreamLayerView
FeatureFilter

属性几何时间范围过滤器。

更多详情
StreamLayerView
Layer

正在查看的图层。

更多详情
LayerView
Boolean

表示图层视图是否支持 MapViewspatialReference

更多详情
LayerView
Boolean

如果图层被挂起 (即,当图层范围发生更改时,图层将不会重绘或更新),则值为 true

更多详情
LayerView
Boolean

更新图层时,值为 true;例如,如果它正在获取数据。

更多详情
LayerView
Boolean

当为 true 时,图层在视图中可见。

更多详情
LayerView

属性详细信息

connectionError Errorreadonly

该错误解释连接到流服务的失败的尝试或与流服务意外断开的连接。

connectionStatus Stringreadonly

Web Socket 与流服务的连接状态。可以观察此属性以查看连接是否意外丢失。

可能值"connected"|"disconnected"

declaredClass Stringreadonly inherited
起始版本:GeoScene Maps SDK for JavaScript 4.7

类的名称。声明的类名称格式化为 geoscene.folder.className

featureEffect FeatureEffectautocast
起始版本:GeoScene Maps SDK for JavaScript 4.22

featureEffect 可用于关注感兴趣的要素。它允许通过过滤器选择要素,并将 includedEffectexcludedEffect 应用于分别通过或未通过过滤器要求的那些要素。

如果在图层上设置了 featureEffect,除非开发者在 layerView 上覆盖它,否则它将被 layerView.featureEffect 继承。如果设置了两个属性,则 layerView.featureEffect 将优先于 layer.featureEffect

已知限制

另请参阅
示例
// 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%)"
});
起始版本:GeoScene Maps SDK for JavaScript 4.11

属性几何时间范围过滤器。只有满足过滤器的要素才会显示在视图中。

示例
// display earthquakes that have
// magnitude value of 3 or higher
layerView.filter = new FeatureFilter({
  where: "mag >= 3",
});
layer Layerreadonly inherited

正在查看的图层。

spatialReferenceSupported Booleanreadonly inherited
起始版本:GeoScene Maps SDK for JavaScript 4.23

表示图层视图是否支持 MapViewspatialReference。当为 false 时,图层视图将 suspended

另请参阅
suspended Booleanreadonly inherited

如果图层被挂起 (即,当图层范围发生更改时,图层将不会重绘或更新),则值为 true

另请参阅
updating Booleanreadonly inherited

更新图层时,值为 true;例如,如果它正在获取数据。

默认值:false

当为 true 时,图层在视图中可见。此属性的值继承自 layer.visible,除非开发人员重写它。如果设置了两个属性,则 layerView.visible 将优先于 layer.visible

默认值:true

方法概述

显示继承的方法 隐藏继承的方法
名称 返回值类值 描述

添加一个或多个与对象的生命周期相关联的句柄。

更多详情
Accessor
Boolean

在实例上触发事件。

更多详情
StreamLayerView
Boolean

指示实例上是否存在与提供的事件名称相匹配的事件监听器。

更多详情
StreamLayerView
Boolean

如果存在指定的句柄组,则返回 true。

更多详情
Accessor
Handle

突出显示给定的要素。

更多详情
StreamLayerView
Boolean

isFulfilled() 可用于验证创建类的实例是否已完成 (已解决或已拒绝)。

更多详情
LayerView
Boolean

isRejected() 可用于验证创建类的实例是否被拒绝。

更多详情
LayerView
Boolean

isResolved() 可用于验证创建类的实例是否已解决。

更多详情
LayerView
Object

在实例上注册事件处理程序。

更多详情
StreamLayerView
Promise<Object>

对 layerView 中可用于绘制的要素执行 Query,并返回满足查询的要素的 Extent

更多详情
StreamLayerView
Promise<number>

对 layerView 中可用于绘制的要素执行 Query,并返回满足查询的要素数。

更多详情
StreamLayerView
Promise<FeatureSet>

对 layerView 中可用于绘制的要素执行 Query,并返回 FeatureSet

更多详情
StreamLayerView
Promise<FeatureSet>

如果在流服务上指定了 trackIdField,则此方法可对 layerView 中可用于绘制的要素执行 Query,并为满足查询的每个 trackId 返回最新观察结果的 FeatureSet

更多详情
StreamLayerView
Promise<number[]>

对 layerView 中可用于绘制的要素执行 Query,并返回满足输入查询的要素的 ObjectID 数组。

更多详情
StreamLayerView

移除对象拥有的句柄组。

更多详情
Accessor
Promise

一旦创建了类的实例,就可以使用when()

更多详情
LayerView

方法详细说明

addHandles(handleOrHandles, groupKey)inherited
起始版本:GeoScene Maps SDK for JavaScript 4.25

添加一个或多个与对象的生命周期相关联的句柄。当对象被销毁时,将移除句柄。

// Manually manage handles
const handle = reactiveUtils.when(
  () => !view.updating,
  () => {
    wkidSelect.disabled = false;
  },
  { once: true }
);

// Handle gets removed when the object is destroyed.
this.addHandles(handle);
参数
handleOrHandles WatchHandle|WatchHandle[]

对象销毁后,标记为要移除的句柄。

groupKey *
optional

标识句柄应添加到的组的键。组中的所有句柄稍后都可使用 Accessor.removeHandles() 进行删除。如果未提供键,则句柄将被添加到默认组。

emit(type, event){Boolean}
起始版本:GeoScene Maps SDK for JavaScript 4.5

在实例上触发事件。仅当创建此类的子类时,才应使用此方法。

参数
type String

事件的名称。

event Object
optional

事件有效负载。

返回
类型 描述
Boolean 如果监听器收到通知,则为true
hasEventListener(type){Boolean}

指示实例上是否存在与提供的事件名称相匹配的事件监听器。

参数
type String

事件的名称。

返回
类型 描述
Boolean 如果类支持输入事件,则返回 true。
hasHandles(groupKey){Boolean}inherited
起始版本:GeoScene Maps SDK for JavaScript 4.25

如果存在指定的句柄组,则返回 true。

参数
groupKey *
optional

组键。

返回
类型 描述
Boolean 如果存在指定的句柄组,则返回 true
示例
// Remove a named group of handles if they exist.
if (obj.hasHandles("watch-view-updates")) {
  obj.removeHandles("watch-view-updates");
}
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(){Boolean}inherited

isFulfilled() 可用于验证创建类的实例是否已完成 (已解决或已拒绝)。如果满足,则返回 true

返回
类型 描述
Boolean 指示创建类的实例是否已完成 (已解决或已拒绝)。
isRejected(){Boolean}inherited

isRejected() 可用于验证创建类的实例是否被拒绝。如果被拒绝,则返回 true

返回
类型 描述
Boolean 指示创建类的实例是否已被拒绝。
isResolved(){Boolean}inherited

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);
});
queryExtent(query, options){Promise<object>}
起始版本:GeoScene Maps SDK for JavaScript 4.9

对 layerView 中可用于绘制的要素执行 Query,并返回满足查询的要素的 Extent。如果未提供查询参数,则返回可用于绘制的所有要素的范围和计数。

已知限制

  • 空间查询具有与投影引擎文档中列出的查询相同的限制。
  • 如果 layerView 具有以下任何一个 SpatialReferences,则当前不支持空间查询:
    • GDM 2000 (4742) – 马来西亚
    • Gusterberg (Ferro) (8042) – 奥地利/捷克共和国
    • ISN2016 (8086) - 冰岛
    • SVY21 (4757) - 新加坡
参数
optional
自动转换自 Object

指定查询的属性、空间和时间过滤器。当没有参数传递给此方法时,将返回客户端中的所有要素。要仅返回视图中可见的要素,可将查询对象中的 geometry 参数设置为视图的范围。

options Object
optional

具有以下属性的对象。

规范
optional

可用于中止异步任务的信号对象。当发出中止信号时,返回的 Promise 将被拒绝,并具有一个名为 AbortError错误。另请参阅 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
      });
    }
  });
});
queryFeatureCount(query, options){Promise<number>}
起始版本:GeoScene Maps SDK for JavaScript 4.9

对 layerView 中可用于绘制的要素执行 Query,并返回满足查询的要素数。如果未提供查询参数,则返回可用于绘制的所有要素的计数。

已知限制

  • 空间查询具有与投影引擎文档中列出的查询相同的限制。
  • 如果 layerView 具有以下任何一个 SpatialReferences,则当前不支持空间查询:
    • GDM 2000 (4742) – 马来西亚
    • Gusterberg (Ferro) (8042) – 奥地利/捷克共和国
    • ISN2016 (8086) - 冰岛
    • SVY21 (4757) - 新加坡
参数
optional
自动转换自 Object

指定查询的属性、空间和时间过滤器。当没有参数传递给此方法时,将返回客户端中的所有要素。要仅返回视图中可见的要素,可将查询对象中的 geometry 参数设置为视图的范围。

options Object
optional

具有以下属性的对象。

规范
optional

可用于中止异步任务的信号对象。当发出中止信号时,返回的 Promise 将被拒绝,并具有一个名为 AbortError错误。另请参阅 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){
    reactiveUtils.whenOnce(() => !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 Maps SDK for JavaScript 4.9

对 layerView 中可用于绘制的要素执行 Query,并返回 FeatureSet。如果未提供查询参数,则返回可用于绘制的所有要素。

已知限制

  • 空间查询具有与投影引擎文档中列出的查询相同的限制。
  • 如果 layerView 具有以下任何一个 SpatialReferences,则当前不支持空间查询:
    • GDM 2000 (4742) – 马来西亚
    • Gusterberg (Ferro) (8042) – 奥地利/捷克共和国
    • ISN2016 (8086) - 冰岛
    • SVY21 (4757) - 新加坡
参数
optional
自动转换自 Object

指定查询的属性、空间和时间过滤器。当没有参数传递给此方法时,将返回客户端中的所有要素。要仅返回视图中可见的要素,可将查询对象中的 geometry 参数设置为视图的范围。

options Object
optional

具有以下属性的对象。

规范
optional

可用于中止异步任务的信号对象。当发出中止信号时,返回的 Promise 将被拒绝,并具有一个名为 AbortError错误。另请参阅 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 Maps SDK for JavaScript 4.9

如果在流服务上指定了 trackIdField,则此方法可对 layerView 中可用于绘制的要素执行 Query,并为满足查询的每个 trackId 返回最新观察结果的 FeatureSet。否则,调用该方法时会抛出一个错误

已知限制

  • 空间查询具有与投影引擎文档中列出的查询相同的限制。
  • 如果 layerView 具有以下任何一个 SpatialReferences,则当前不支持空间查询:
    • GDM 2000 (4742) – 马来西亚
    • Gusterberg (Ferro) (8042) – 奥地利/捷克共和国
    • ISN2016 (8086) - 冰岛
    • SVY21 (4757) - 新加坡
参数
optional
自动转换自 Object

指定查询的属性、空间和时间过滤器。当没有参数传递给此方法时,将返回客户端中的所有要素。要仅返回视图中可见的要素,可将查询对象中的 geometry 参数设置为视图的范围。

options Object
optional

具有以下属性的对象。

规范
optional

可用于中止异步任务的信号对象。当发出中止信号时,返回的 Promise 将被拒绝,并具有一个名为 AbortError错误。另请参阅 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
      });
    }
  });
});
queryObjectIds(query, options){Promise<number[]>}
起始版本:GeoScene Maps SDK for JavaScript 4.9

对 layerView 中可用于绘制的要素执行 Query,并返回满足输入查询的要素的 ObjectID 数组。如果未提供查询参数,则返回可用于绘制的所有要素的 ObjectID。

已知限制

  • 空间查询具有与投影引擎文档中列出的查询相同的限制。
  • 如果 layerView 具有以下任何一个 SpatialReferences,则当前不支持空间查询:
    • GDM 2000 (4742) – 马来西亚
    • Gusterberg (Ferro) (8042) – 奥地利/捷克共和国
    • ISN2016 (8086) - 冰岛
    • SVY21 (4757) - 新加坡
参数
optional
自动转换自 Object

指定查询的属性、空间和时间过滤器。当没有参数传递给此方法时,将返回客户端中的所有要素。要仅返回视图中可见的要素,可将查询对象中的 geometry 参数设置为视图的范围。

options Object
optional

具有以下属性的对象。

规范
optional

可用于中止异步任务的信号对象。当发出中止信号时,返回的 Promise 将被拒绝,并具有一个名为 AbortError错误。另请参阅 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){
    reactiveUtils.whenOnce(() => !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
});
removeHandles(groupKey)inherited
起始版本:GeoScene Maps SDK for JavaScript 4.25

移除对象拥有的句柄组。

参数
groupKey *
optional

要移除的组键或组键的数组或集合。

示例
obj.removeHandles(); // removes handles from default group

obj.removeHandles("handle-group");
obj.removeHandles("other-handle-group");
when(callback, errback){Promise}inherited
起始版本:GeoScene Maps SDK for JavaScript 4.6

一旦创建了类的实例,就可以使用when() 。此方法接受两个输入参数:callback 函数和 errback 函数。callback 在类的实例加载时执行。errback 在类的实例无法加载时执行。

参数
callback Function
optional

当 promise 解决时调用的函数。

errback Function
optional

当 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 接收到数据时触发。事件对象包含从流服务接收到的消息属性。

属性
attributes Object

与接收到的数据相关的字段和字段值的名称-值对。

geometry Object

所接收数据的位置,包含点的 x, y 坐标、线的路径、多边形的环以及空间参考 wkid。

update-rate
起始版本:GeoScene Maps SDK for JavaScript 4.17

在图层开始从流服务接收更新后触发。它将返回 websocket 和每秒的客户端更新率。更新率表示正在从服务器推送并在客户端处理的要素数量。除非服务以比客户端处理速度更快的速度推送更新,否则客户端更新率将大约等于 websocket 更新率。在这种情况下,API 会降低更新率,并导致客户端更新率降低。

属性
client Number

客户端每秒的更新速率。返回客户端上正在处理的要素数。

websocket Number

websocket/服务的每秒更新率。返回从服务器推送的要素数量。

您的浏览器不再受支持。请升级您的浏览器以获得最佳体验。请参阅浏览器弃用帖子以获取更多信息