You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.27 17:45:08