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

未完待续~

相关推荐
qbbmnnnnnn1 天前
【WebGis开发 - Cesium】三维可视化项目教程---初始化场景
gis·三维可视化·cesium·webgis
qbbmnnnnnn1 天前
【WebGis开发 - Cesium】如何确保Cesium场景加载完毕
前端·javascript·vue.js·gis·cesium·webgis·三维可视化开发
GIS数据转换器2 天前
城市空间设计对居民生活质量的影响:构建宜居城市的蓝图
大数据·人工智能·3d·gis·生活·智慧城市
GIS数据转换器2 天前
城市大脑:智慧城市的神经中枢——典型实践与经验启示
大数据·人工智能·科技·信息可视化·gis·智慧城市
GIS工具-gistools20214 天前
地图资源下载工具(geodatatool)下载全球哥白尼 DSM 30 米 高程数据
大数据·gis·高程
疯狂学习GIS5 天前
将ASD光谱仪的.asd文件转为文本文件
gis·rs·学术工作效率·遥感数据
GIS学姐嘉欣11 天前
GIS开发常用的开源地图数据框架有哪些?
开源·gis
爱看书的小沐14 天前
【小沐学GIS】blender导入OpenStreetMap城市建筑(blender-osm、blosm)
python·gis·blender·openstreetmap·osm·blosm·blender-osm
疯狂学习GIS14 天前
GIS转码的秋招历程与踩坑经历
gis·学术工作效率
GIS工具-gistools202117 天前
地图资源下载工具失效下载链接重新分享
gis