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
相关产品推荐
相关产品推荐

