0

我有一个来自巴西的 GeoJson,它是 HighMaps 巴西官方地图的更详细版本。在这个 JSON 中,我将状态划分为中间区域。

当我试图在这个 GeoJson 上画一个点时,我收到一条消息,告诉我这个功能只支持官方的 highmaps 地图。阅读文档我发现我应该hc-transform在我的 geojson 上创建一个对象。我认为使用hc-transform官方 HighMaps 巴西地图所使用的相同是有意义的,当我这样做时,它还不错:它给了我相同的点与fromLatLonToPoint()方法但是当我使用该方法toPixels()获取“画布”时位置(并在上面画一些东西)它给了我不同的价值。

我使用的代码是这样的(它适用于巴西官方高图):

let point = chart.fromLatLonToPoint({lat: n.lat, lon: n.long});
let x = chart.xAxis[0].toPixels(point.x, true);
let y = chart.yAxis[0].toPixels(point.y, true);
// Draw the div / point / whatever on the (x, y) position

我说的 GeoJson 你可以在这里找到:https ://github.com/Menighin/HighmapsExperiment/blob/master/geo/mesorregiao.json

查看 Highmaps 官方巴西地图我可以看到每个多边形也有一些 highcharts 属性(hc-middle-xhc-middle-y等)。这有什么区别吗?如果没有,我做错了什么?

编辑

事实证明我hc-transform似乎不正确,正如我们在这个小提琴上看到的那样:http: //jsfiddle.net/0vm8a4x3/

如果我们取消注释第 8 行,我们可以看到贝洛奥里藏特市并未绘制在 Mesoregion 地图上的正确位置。

那么,我怎样才能得到hc-transform正确的呢?

4

0 回答 0