ArcGIS JS中如何获取并展示地图当前视口内的现有行政区
ArcGIS 视口覆盖行政区展示实现方案
以下分别针对不同使用场景提供可直接落地的方法:
桌面端(ArcGIS Pro)
- 提前加载目标行政区要素图层到当前地图
- 静态筛选:打开按位置选择工具,输入图层选行政区图层,空间关系选择
与当前地图框视口相交,运行后即可选中所有视口内的行政区,可直接导出选中要素的属性表获取名称列表,也可基于选中要素创建独立子图层固定展示 - 动态适配:给行政区图层添加定义查询,使用如下Arcade表达式,保存后图层会随视口平移/缩放自动过滤显示范围外的要素:
Intersects($feature, MapView.extent)
前端开发(ArcGIS Maps SDK for JavaScript)
监听视图范围变动事件,实时查询与当前视口相交的行政区要素即可,核心代码示例:
// 视图加载完成后绑定监听事件 view.when(() => { view.watch("extent", (currentExtent) => { const query = districtLayer.createQuery(); query.geometry = currentExtent; query.spatialRelationship = "intersects"; query.outFields = ["district_name"]; // 替换为你的行政区名称字段名 // 执行查询 districtLayer.queryFeatures(query).then((res) => { const visibleDistricts = res.features.map(item => item.attributes.district_name); // 此处将visibleDistricts渲染到页面列表容器即可 }); }); });
ArcGIS Online/Portal 无代码实现
- 打开对应Web Map,选中行政区图层,进入过滤设置面板
- 选择新建Arcade表达式,输入如下内容后保存:
Intersects($feature, $view.extent) - 配置完成后图层只会渲染当前视口内的行政区,可通过属性表查看所有可见行政区的名称列表
内容的提问来源于stack exchange,提问作者kiku
相关产品推荐
相关产品推荐

