ArcGIS Maps SDK for JavaScript官方文档翻译——查询和过滤器器简介(上)

本主题概述了您可以用于查询和过滤数据的许多工作流程。查询和过滤操作可以针对服务器端服务中的所有功能或客户端端(或视图)中的所有可用功能进行。

首先,我们将回顾哪些层允许您查询和过滤功能的子集。在这样做时,我们必须了解服务器端与客户端Layer(图层)以及Layer与LayerView的概念。

服务器端和客户端层

ArcGIS Maps SDK for JavaScript使您可以从许多来源添加数据。允许您查询和过滤其功能子集的图层可分为服务器端图层和客户端图层。

服务器端图层在加载时仅获取所需要素。之后,图层根据需要或请求从服务器获取其要素。这些图层包括:FeatureLayer、OGCFeatureLayer、SceneLayer和StreamLayer。通过将图层的url属性设置为指向一个服务,即可创建服务器端图层。

客户端图层在加载时一次性获取其所有功能并将其存储在客户端。一旦加载了这些图层,就不会再发出服务器端请求。这些图层包括:CSVLayer、GeoJSONLayer和WFSLayer。通过将图层的url属性设置为csv或geojson文件或WFS服务,或者通过设置其source属性将数组中的客户端端图形创建为FeatureLayer,可以创建这些图层。

图层和LayerView

当将图层添加到MapView或SceneView时,将创建一个LayerView。LayerView负责在视图中渲染功能。layerView还提供了方法和属性,使开发者能够在客户端端查询、过滤和突出显示视图中的图形。

以下表格显示了用户将图层添加到视图时发生的简化步骤。

行为 服务器端图层 客户端图层
图层 FeatureLayer、OGCFeatureLayer、SceneLayer和StreamLayer CSVLayer、GeoJSONLayer、WFSLayer 和客户端 FeatureLayer
初始化 通过将其url属性设置为指向服务器端功能、场景或流服务来创建。const layer = new FeatureLayer({ url: "service url" }); view.map.add(layer); 通过设置其url属性创建CSVLayer、GeoJSONLayer和WFSLayer。通过设置其source属性创建客户端FeatureLayer。const layer = new CSVLayer({ url: "csv file url" }); view.map.add(layer);
初始要素获取 图层仅从服务器获取所需的要素。 该图层在初始化时获取其所有要素并将其存储在客户端上。
LayerView初始化 初始化包含用于绘制的可用功能的FeatureLayerView、OGCFeatureLayerView、SceneLayerView或StreamLayerView,表示FeatureLayer、OGCFeatureLayer、SceneLayer或StreamLayer。view.whenLayerView(layer).then(function(layerView){ // now we have access to the layerView, an object representing the layer in the view }); 初始化包含用于绘制的FeatureLayerView、CSVLayerView或WFSLayerView,表示CSVLayer、GeoJSONLayer、FeatureLayer或WFSLayer。view.whenLayerView(layer).then(function(layerView){// now we have access to the layerView, an object representing the layer in the view});
后续网络请求 ,根据需要进行后续网络请求。 ,如果在加载后未刷新图层。 ,当刷新图层时,会向服务器请求更新的数据。

下图说明了可以从图层(Layer)和LayerView查询的要素。如图所示,图层涵盖了应用程序的初始范围之外的要素。图层的属性和方法提供对所有这些功能的访问。加载图层时,layerView可以访问应用程序初始范围内可见的要素。在应用程序加载后调用的任何操作都可以访问视图中可见的功能。图像还显示了图层和LayerView上可用的要素数量。由于layerView返回视图范围内的要素,因此layerView的要素计数要少得多,而图层计数表示图层中的所有要素。

查询

有三种类型的查询:属性查询、空间查询和统计查询。本文提供了每种查询类型的详细信息。查询可以在图层或其layerView上执行。

服务器端查询

当在服务器端图层上调用查询方法时,将发出服务器端查询。查询将针对服务中的所有可用要素执行。

js 复制代码
(Feature|Scene)Layer // queries all features in the service
  .queryFeatures() // queries all features and returns a FeatureSet
  .queryExtent() // queries all features returns extent of features that satisfy query
  .queryFeatureCount() // queries all features and returns count of features
  .queryObjectIds() // queries all features and returns objectIds array of features

客户端查询

当在客户端图层或任何layerView上调用查询方法时,将发出客户端查询。查询将针对图层或layerView中的所有可用要素执行。

js 复制代码
(Feature|CSV|GeoJSON|WFS)Layer  // queries all features in the layer
(Feature|CSV|GeoJSON|OGCFeature|Scene|Stream)LayerView // queries available features in view
  .queryFeatures() // queries features and returns a FeatureSet
  .queryExtent() // queries features returns extent of features that satisfy query
  .queryFeatureCount() // queries features and returns count of features
  .queryObjectIds() // queries features and returns objectIds array of features

未完待续~

相关推荐
枝上棉蛮2 天前
GISBox vs QGIS:轻量化工具与开源平台的全方位选型指南
gis·免费·qgis·轻量化·gisbox·gis服务器
传而习乎3 天前
【QGIS】【地图绘制】下载安装+中文配置+加载底图
gis
地狱为王4 天前
Cesium for Unity叠加行政区划线
unity·gis·cesium
枝上棉蛮4 天前
2026年GIS软件精选:五款工具的专业性与实用性解析
arcgis·gis·qgis·超图·gisbox·地图数据处理·gis工具
葱明撅腚7 天前
利用Python挖掘城市数据
python·算法·gis·聚类
ct9789 天前
Cesium高级特效与着色器开发全指南
前端·gis·cesium·着色器
葱明撅腚11 天前
shapely空间数据分析
python·pandas·gis·shapely
极海拾贝12 天前
秒加在线底图!天地图、高德地图、星图地球、吉林一号底图一次配齐,收藏这篇就够了!
arcgis·gis·geoscene
ct97812 天前
Cesium 矩阵系统详解
前端·线性代数·矩阵·gis·webgl
两点王爷12 天前
KML文件格式和支持添加的内容
gis