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

AmCharts地图:如何获取所有选中国家的列表

获取AmCharts多选地图中选中国家的名称/代码列表

方法一:利用官方API直接获取

AmCharts地图实例内置了getSelectedItems()方法,可直接返回所有选中的多边形元素集合,从中提取所需的名称或代码即可:

// 假设你的地图实例变量为mapInstance
const selectedItems = mapInstance.getSelectedItems();
// 提取选中国家的名称和代码
const selectedCountries = selectedItems.map(item => ({
  name: item.dataItem.dataContext.name, // 国家名称
  code: item.dataItem.dataContext.id     // 国家ISO代码(根据你的数据结构调整字段名)
}));

console.log("选中国家列表:", selectedCountries);

你可以在需要获取选中列表的时机(比如点击确认按钮、hit事件回调末尾)调用这段代码,无需额外维护状态。

方法二:手动维护选中数组(实时跟踪场景)

如果需要实时跟踪选中状态变化,可在hit事件中维护一个数组,根据元素的选中状态添加/移除数据:

// 初始化选中数组
let selectedCountries = [];

polygonTemplate.events.on("hit", function(ev) {
  const countryData = ev.target.dataItem.dataContext;
  const isSelected = ev.target.isActive; // 切换后的选中状态

  if (isSelected) {
    // 选中时添加到数组
    selectedCountries.push({
      name: countryData.name,
      code: countryData.id
    });
  } else {
    // 取消选中时从数组移除
    selectedCountries = selectedCountries.filter(item => item.code !== countryData.id);
  }

  console.log("当前选中的国家:", selectedCountries);
});

注意事项

  • 上述代码中的name和id字段需匹配你使用的地图数据结构,若你的数据中国家代码存在code字段而非id,直接替换对应字段名即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.21 21:06:15