StreamLayerView

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

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

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

它连接到持续发出地理特征的服务器。当您想要映射无界且连续的动态数据流时,流层适用。将 StreamLayer 添加到地图后,用户可以看到服务器推送的任何实时更新。有关更多信息,请阅读 StreamLayer 的文档。

另请参阅:

属性概览

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

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

更多信息StreamLayerView
String更多信息

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

更多信息StreamLayerView
String更多信息

类的名称。

更多信息Accessor
FeatureEffect更多信息

应用于 layerView 的效果。

更多信息StreamLayerView
FeatureEffect更多信息

featureEffect 可用于吸引感兴趣的注意力特征。

更多信息StreamLayerView
FeatureFilter更多信息

Attribute、geometrygeometrytime extent 过滤。

更多信息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 API for JavaScript 4.7

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

起始版本:GeoScene API for JavaScript 4.15
已弃用从 4.22 版开始。请改用 FeatureEffect

应用于 layerView 的效果。效果允许通过 filter 选择要素,并且将 includedEffectexcludedEffect 应用于分别通过或未通过过滤器要求的那些要素。

已知限制

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 选择要素,并将 includedEffectexcludedEffect 应用于分别通过或未通过过滤器要求的那些要素。

如果在 layer 上设置了 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 API for JavaScript 4.11

Attribute、geometrygeometrytime extent 过滤。只有满足过滤器的要素才会显示在视图上。

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

正在查看的图层。

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

指示图层视图是否支持 MapViewspatialReference。当 false 层视图将暂停

另请参阅:
suspended Booleanreadonly inherited

如果图层被暂停,则值为 true(即,当范围发生变化时,图层不会重绘或更新自身)。

另请参阅:
updating Booleanreadonly inherited

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

默认值:false

true 时,图层在视图中可见。此属性的值是从 layer.visible 继承的,除非开发人员覆盖它。如果设置了这两个属性,layerView.visible 将优先于 layer.visible

默认值:true

方法概览

显示继承的方法 隐藏继承的方法
名称 返回类型 描述
Boolean更多信息

在实例上发出事件。

更多信息StreamLayerView
Boolean更多信息

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

更多信息StreamLayerView
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
Promise更多信息

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

更多信息LayerView

方法详情

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

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

参数:
type String

事件的名称。

event Object
optional

事件有效负载。

返回:
类型 说明
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(){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 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 Object
optional

具有以下属性的对象。

规格:
optional

可用于中止异步任务的信号对象。当发出中止信号时,返回的 Promise 将被一个名为 AbortErrorError 拒绝。另请参阅 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 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 Object
optional

具有以下属性的对象。

规格:
optional

可用于中止异步任务的信号对象。当发出中止信号时,返回的 Promise 将被一个名为 AbortErrorError 拒绝。另请参阅 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 Object
optional

具有以下属性的对象。

规格:
optional

可用于中止异步任务的信号对象。当发出中止信号时,返回的 Promise 将被一个名为 AbortErrorError 拒绝。另请参阅 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 Object
optional

具有以下属性的对象。

规格:
optional

可用于中止异步任务的信号对象。当发出中止信号时,返回的 Promise 将被一个名为 AbortErrorError 拒绝。另请参阅 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 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 Object
optional

具有以下属性的对象。

规格:
optional

可用于中止异步任务的信号对象。当发出中止信号时,返回的 Promise 将被一个名为 AbortErrorError 拒绝。另请参阅 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
});
when(callback, errback){Promise}inherited
起始版本:GeoScene API 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 API for JavaScript 4.17

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

属性:
client Number

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

websocket Number

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

Your browser is no longer supported. Please upgrade your browser for the best experience. See our browser deprecation post for more details.