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

未完待续~

相关推荐
阿琳a_10 小时前
b-map-viewer:面向 Vue 3 的地图可视化 SDK,从接入到展示再到交互分析
前端·javascript·vue.js·gis·数据可视化·地图
总要学点什么2 天前
第92篇:三维特效-圆(逐渐消逝)——从圆心开始,让一个洞把整片光啃到只剩外圈
gis·webgl·cesium·空间分析·1024程序员节
vjmap2 天前
AI 地图动画-以真实地图为画布的 AI 视频编辑器-唯杰 AI 地图动画正式上线
人工智能·编辑器·音视频·gis·cad
vjmap3 天前
Cesium + MCP:在 Cursor、Claude Code 里一句话生成地图视频,唯杰 AI 地图动画上线
gis·cesium·mcp
supermapsupport3 天前
SuperMap GIS 基础产品 FAQ 集锦(20261030)
gis·supermap·iserver·idesktopx
god_cvz4 天前
实践:Linux环境构建CTB工具(cesium-terrain-builder)
linux·gis·ctb
梅如你5 天前
ISPRS | 1990-2020年间中国人工林与天然林的空间分布数据
arcgis·gis·遥感
数据库小学妹6 天前
空间数据库 PostGIS 兼容性怎么验?函数、类型、坐标系逐条核(附 SQL)
gis·信创·空间分析·空间数据库·地图渲染
god_cvz6 天前
麒麟 V10(ARM64 / aarch64)源码编译 3dtiles 全步骤
后端·gis
行走的GISer7 天前
三维场景数据接入清单:六类数据、两条来源
gis·三维可视化·倾斜摄影·3dtiles·天地图