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

ArcGIS JS API用效果与混合模式高亮要素如何以Feature Access替代Portal ID

不使用Portal ID实现要素高亮效果的方案

完全可以实现和示例一致的选中高亮效果,Portal ID只是ArcGIS平台引用托管资源的快捷方式,和图层混合、要素查询、高亮动画的核心逻辑没有依赖关系。

核心修改思路

  • 移除所有通过portalItem.id引用资源的逻辑:原示例中用到的矢量底图、浅灰画布矢量切片、国家边界要素层,全部改为直接传入对应服务的URL初始化,无需经过Portal资源索引。
  • 国家要素层的Feature Access能力可直接通过服务端点启用:只要使用的国家边界要素服务开启了查询权限(公开的Feature Access服务默认支持),原示例中点击事件的queryFeatures查询逻辑不需要任何改动,可正常获取点击位置对应的国家要素几何。
  • 原有的效果配置完全复用:你之前配置的组图层destination-over混合模式、高亮图层destination-in混合模式、bloom发光效果、渐变动画逻辑都和Portal ID无关,直接保留即可。

核心替换代码段

你只需要修改原示例中三个图层的初始化逻辑即可,其余代码无需调整:

// 替换原WebMap+portalItem的底图初始化逻辑,直接用公开矢量底图服务地址
const map = new Map({
  basemap: {
    baseLayers: [
      new VectorTileLayer({
        url: "https://basemaps.arcgis.com/arcgis/rest/services/World_Basemap_v2/VectorTileServer"
      })
    ]
  }
});

// 替换原浅灰画布矢量切片的portalItem引用,直接传入服务地址
const vtLayer = new VectorTileLayer({
  url: "https://basemaps.arcgis.com/arcgis/rest/services/Canvas/World_Light_Gray_Base/VectorTileServer"
});

// 替换原国家要素层的portalItem引用,直接传入Feature Access服务地址
const countries = new FeatureLayer({
  url: "https://services.arcgis.com/P3ePLMYs2RVChkJx/ArcGIS/rest/services/World_Countries/FeatureServer/0",
  outFields: ["*"]
});

修改后运行即可得到和原示例完全一致的效果:应用加载时底图正常显示,点击国家要素时会触发带发光效果的高亮展示,同时支持缩放动画。

内容的提问来源于stack exchange,提问作者user16956390

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 19:15:04