如何获取自定义地图的hc-transform?

时间:2018-03-05 13:19:20

标签: highcharts highmaps proj4js

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

当我试图在这个GeoJson的顶部画一个点时,我收到消息告诉我这个功能只有官方的地图映射支持。阅读documentation我发现我应该在我的geojson上创建一个对象hc-transform。我认为使用官方HighMaps巴西地图使用的hc-transform是有意义的,当我这样做时,它有点工作正常:它给了我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行,我们可以看到Belo Horizo​​nte这个城市未被绘制在Mesoregion地图上的正确位置。

那么,我怎样才能使hc-transform正确?

0 个答案:

没有答案