OGCFeatureLayerView

类: geoscene/views/layers/OGCFeatureLayerView
new geoscene/views/layers/OGCFeatureLayerView(properties)
参数
properties Object
optional

有关可能传递给构造函数的所有属性的列表,请参见属性

属性概述

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

为每个要素提取的属性字段列表,包括图层 renderinglabelingelevation info 所需的字段。

更多详情
OGCFeatureLayerView
String

类的名称。

更多详情
Accessor
FeatureEffect

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

更多详情
OGCFeatureLayerView
FeatureFilter

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

更多详情
OGCFeatureLayerView
Layer

正在查看的图层。

更多详情
LayerView
Boolean

表示图层视图是否支持 MapViewspatialReference

更多详情
LayerView
Boolean

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

更多详情
LayerView
Boolean

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

更多详情
LayerView
Boolean

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

更多详情
LayerView

属性详细信息

availableFields String[]readonly

为每个要素提取的属性字段列表,包括图层 renderinglabelingelevation info 所需的字段。当 layerView 完成更新时,属性 availableFields 会被填充。在客户端过滤或查询要素时使用 availableFields

示例
view.whenLayerView(layer).then(function(layerView){
  layerView.watch("updating", function(value){
    // availableFields will become available
    // once the layerView finishes updating
    if (!value) {
       layerView.queryFeatures({
         outFields: layerView.availableFields,
         where: "magnitude > 6"
       })
       .then(function(results) {
         console.log(results.features.length, " features returned");
       })
       .catch(function(error) {
         console.log("query failed: ", error);
       });
     }
  });
});
declaredClass Stringreadonly inherited

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

featureEffect FeatureEffectautocast

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%)"
});

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

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

正在查看的图层。

spatialReferenceSupported Booleanreadonly inherited

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

另请参阅
suspended Booleanreadonly inherited

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

另请参阅
updating Booleanreadonly inherited

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

默认值:false

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

默认值:true

方法概述

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

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

更多详情
Accessor
Query

创建查询参数对象,该对象可用于在显示聚合要素时获取聚合要素

更多详情
OGCFeatureLayerView
Query

创建一个查询参数对象,该对象可用于在显示要素时获取要素。

更多详情
OGCFeatureLayerView
Boolean

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

更多详情
Accessor
Handle

突出显示给定的要素。

更多详情
OGCFeatureLayerView
Boolean

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

更多详情
LayerView
Boolean

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

更多详情
LayerView
Boolean

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

更多详情
LayerView
Promise<FeatureSet>

对聚合要素执行查询

更多详情
OGCFeatureLayerView
Promise<Object>

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

更多详情
OGCFeatureLayerView
Promise<number>

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

更多详情
OGCFeatureLayerView
Promise<FeatureSet>

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

更多详情
OGCFeatureLayerView
Promise<number[]>

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

更多详情
OGCFeatureLayerView

移除对象拥有的句柄组。

更多详情
Accessor
Promise

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

更多详情
LayerView

方法详细说明

addHandles(handleOrHandles, groupKey)inherited

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

// 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() 进行删除。如果未提供键,则句柄将被添加到默认组。

createAggregateQuery(){Query}

创建查询参数对象,该对象可用于在显示聚合要素时获取聚合要素。它将查询参数的 outFields 属性设置为 ["*"] 并将 returnGeometry 设置为 true。输出空间参考 outSpatialReference 设置为视图的空间参考。

返回
类型 描述
Query 查询参数对象。
另请参阅
createQuery(){Query}

创建一个查询参数对象,该对象可用于在显示要素时获取要素。它将查询参数的 outFields 属性设置为 ["*"] 并将 returnGeometry 设置为 true。输出空间参考 outSpatialReference 设置为视图的空间参考。当前应用于 layerview 的过滤器的参数也包含在返回的查询对象中。结果将包括要素几何和所有字段的值。

返回
类型 描述
Query 查询对象
示例
const query = layerView.createQuery();
query.where = "magnitude > 4";
layerView.queryFeatures(query).then(function(results) {
  console.log(results);
})
.catch(function() {
  console.log(error);
});
hasHandles(groupKey){Boolean}inherited

如果存在指定的句柄组,则返回 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 features based on a query result
let highlight;
view.whenLayerView(treesLayer).then(function(layerView){
 let query = treesLayer.createQuery();
 query.where = "type = 'Quercus'";
 treesLayer.queryFeatures(query).then(function(result){
   if (highlight) {
     highlight.remove();
   }
   highlight = layerView.highlight(result.features);
 })
});
// 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 === treesLayer;
      })[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 指示创建类的实例是否已解决。
queryAggregates(query, options){Promise<FeatureSet>}

对 layerView 中可用于绘制的聚合要素 (例如聚类或图格化) 执行 Query,并返回 FeatureSet。如果未提供查询参数,则返回可用于绘制的所有聚合要素及其在客户端上可用的属性。统计查询或 where 子句中引用的字段必须首先定义为聚合字段

已知限制

此方法当前不支持空间查询 (即 Query.geometry 选项及其相关属性)。

参数
optional
自动转换自 Object

指定查询的参数。将此参数保留为空以查询视图中的所有聚合。

options Object
optional

具有以下属性的对象。

规范
optional

可用于中止异步任务的信号对象。当发出中止信号时,返回的 Promise 将被拒绝,并具有一个名为 AbortError错误。另请参阅 AbortController 以获取有关如何构造可用于传递中止信号的控制器的更多信息。

返回
类型 描述
Promise<FeatureSet> 解析后,将返回一个包含聚合要素数组的 FeatureSet
另请参阅
示例
// clustered point layer
const layer = new OGCFeatureLayer({
  featureReduction: { type: "cluster" }
});

const layerView = await view.whenLayerView(layer);

layerView.watch("updating", async (val) => {
  if(!val){  // wait for the layer view to finish updating
    const { features } = await layerView.queryAggregates();
    // features represents all the clusters in the view
  }
});
queryExtent(query, options){Promise<object>}

对 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 OGCFeatureLayer({
  collectionId: "dutch_windmills",
  url: "https://demo.pygeoapi.io/stable"
});

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
      });
    }
  });
});
// Expand the extent so that a feature (i.e. point feature)
// won't be off screen after the end of goTo animation.
layerView.queryExtent()
 .then(function(result) {
   const zoomScale = 16000;
   const extent = result.extent;

   extent.expand((zoomScale / view.scale) * view.resolution);
   view.goTo(extent);
});
queryFeatureCount(query, options){Promise<number>}

对 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>}

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

已知限制

  • 在针对 layerViews 执行的属性查询中使用的属性值区分大小写。
  • 空间查询具有与投影引擎文档中列出的查询相同的限制。
  • 如果 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
      });
    }
  });
});
layerView.queryFeatures({
  geometry: mapPoint,
  // 6 pixels around a point at the view resolution to query around a finger.
  distance: view.resolution * 6,
});
queryObjectIds(query, options){Promise<number[]>}

对 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

移除对象拥有的句柄组。

参数
groupKey *
optional

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

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

obj.removeHandles("handle-group");
obj.removeHandles("other-handle-group");
when(callback, errback){Promise}inherited

一旦创建了类的实例,就可以使用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
});

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