1

Highmap 元数据有一个选项“hc-transform”,有人可以解释如何使用它吗?

我在highmaps中使用了默认的中国地图地理数据,但是现在我想添加一个新点,例如[lat,lon] [121,23],我想知道如何将其转换为坐标。

"crs": {
    "type": "name",
    "properties": {
        "name": "urn:ogc:def:crs:EPSG:3415"
    }
},     
"hc-transform": {
    "cn-all": {
        "xpan": 350,
        "ypan": 25,
        "hitZone": {
            "type": "Polygon",
            "coordinates": [
                [
                    [7902,3046],
                    [7929,3041],
                    [7947,3014],
                    [7915,2972]
                ]
            ]
        },
        "crs": "+proj=tmerc +lat_0=49 +lon_0=-2 +k=0.9996012717 +x_0=400000 +y_0=-100000 +ellps=airy +toWGS84=446.448,-125.157,542.06,0.15,0.247,0.842,-20.489 +units=m +vunits=m +no_defs",
        "scale": 0.000129831107685,
        "jsonres": 15.5,
        "jsonmarginX": -999,
        "jsonmarginY": 9851.0,
        "xoffset": -3139937.49309,
        "yoffset": 4358972.7486
    }
}

这就是我所做的。

var transform = Highcharts.maps['countries/cn/cn-all']['hc-transform']['default'];
var position = $(".chart").highcharts().transformFromLatLon({ lat: 121, lon: 23 }, transform);
console.log(position); // {x:NaN ,y:NaN}

我在“hc-transform”设置中错了吗?我该怎么办。

4

1 回答 1

0

'hc-transform' 设置是正确的。请尝试切换 lat 和 lon,像这样: $(".chart").highcharts().transformFromLatLon({ lat: 121, lon: 23 }, transform); 然后 x 和 y 出来。

于 2018-04-18T07:57:20.300 回答