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

Highcharts Maps钻取事件后添加联系人数据系列的正确方法

问题:Highcharts Maps钻取时添加联系人数据系列的时机问题

我希望用Highcharts Maps搭配Drilldown模块实现以下功能:在全球地图查看所有联系人,点击钻取到大洲层级查看对应大洲的联系人,再点击钻取到国家层级查看对应国家的联系人。但目前不清楚应该在何时以及如何添加联系人数据系列,当前的实现方式会导致钻取无法完成。

我做了一个从美国国家层级钻取到州层级的简单示例,仅在钻取完成后添加联系人数据,复现步骤如下:

  • 加载示例页面
  • 点击得克萨斯州(Texas)
  • 地图仅完成约90%的缩放,仍显示周边州的边缘,联系人以点(dot)形式显示
  • 注释第53-56行代码并运行
  • 点击得克萨斯州,其他州都被移除,但无联系人显示
  • 取消注释添加联系人系列的代码,将超时时间增加至3000毫秒(MS)后运行
  • 点击得克萨斯州,钻取完全完成(仅保留得克萨斯州),3秒后联系人显示

我认为自己遗漏了某些要点,因为文档中并未提及需要设置3秒超时,尝试1500毫秒也能生效,但这是否是必要操作?

相关代码:

setTimeout(() => {
    addContactSeries(chart);
}, 0);

const addContactSeries = function(chart) {
    chart.addSeries({ 
        name: "contacts",
        type: 'mappoint',
        data: contacts,
        dataLabels: {
            enabled: true,
            format: '{point.name}'
        }
    });
}

const contacts = [
    {
        "city": "Dallas",
        "country": "United States of America",
        "lat": 32.998524,
        "lon": -96.84046,
        "name": "Contact 1",
        "subregion": "Texas",
        "z": 1
    },
    {
        "city": "New York",
        "country": "United States of America",
        "lat": 40.728928,
        "lon": -73.99173,
        "name": "Contact 2",
        "subregion": "New York",
        "z": 1
    },
    {
        "city": "Liverpool",
        "country": "United Kingdom",
        "lat": 53.405323,
        "lon": -2.9935844,
        "name": "Contact 3",
        "subregion": "Liverpool",
        "z": 1
    },
    {
        "city": "Llandudno",
        "country": "United Kingdom",
        "lat": 53.328495,
        "lon": -3.82909,
        "name": "Contact 4",
        "subregion": "Wales [Cymru GB-CYM]",
        "z": 1
    }
];

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.14 16:35:53