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

未完待续~

相关推荐
闲云一鹤10 天前
Cesium 使用 Turf 实现坐标点移动(偏移)
前端·gis·cesium
GIS工具-gistools202110 天前
台湾加油站分布地图数据
大数据·gis·加油站
J2虾虾10 天前
地理空间参照系与地图投影
gis·地图
J2虾虾11 天前
GIS 与其相关学科
gis
GIS学姐嘉欣12 天前
WebGIS开发实战|武汉旅游资源可视化平台开发与应用
gis·gis开发
青春不败 177-3266-052015 天前
如何利用有限的数据发表更多的SCI论文?——利用ArcGIS探究环境和生态因子对水体、土壤和大气污染物的影响
arcgis·gis·生态学·生态系统服务·大气污染·土壤科学·生态因子
源之缘-专注WPF开发16 天前
全栈开发实战:WPF+FFmpeg+GIS,打造工业级雷达探测终端
ffmpeg·wpf·gis
落霞的思绪18 天前
Mybatis读取PostGIS生成矢量瓦片实现大数据量图层的“快显”
linux·运维·mybatis·gis
WebGIS开发19 天前
WebGIS开发实战|智慧城市西安一带一路地图可视化
gis·智慧城市·gis开发·webgis·地图可视化
GIS好难学19 天前
2025年华中农业大学暑期实训优秀作品(6):智慧城市—成都
gis·智慧城市·webgis