适合Google Map V3 LatLng的坐标

时间:2013-12-22 17:45:17

标签: javascript google-maps google-maps-api-3 latitude-longitude coords

我试图适应x&我使用谷歌地图V3从游戏到自定义图像地图。

我从游戏中获得的坐标都在0到15360之间。在自定义地图中,NorthEast角落LatLng是(95,180),而西南角落LatLng是(-82.5, - 180)。

因此,我从游戏坐标转换为Google Map LatLng的功能是:

function getLatLngFromCoords(x, y) {
    x = parseFloat(x.replace(",", "."));
    y = parseFloat(y.replace(",", "."));
    var lng = x / (15360 / 360) - 180;
    var lat = y / (15360 / 177.5) - 95;
    return new google.maps.LatLng(lat, lng);
}

但它并不适合这些职位。

我让NorthEast和SouthWest LatLng制作标记并调整它们以查看它们何时位于我的图像映射的角落。

无论何时,当我使用map.getBounds()

获取地图的边界时

我明白这一点:

    map.getBounds().getNorthEast(); // nb: 89.76247963221984, ob: 180
    map.getBounds().getSouthWest(); // nb: -87.43214656352167, ob: -180

1 个答案:

答案 0 :(得分:0)

您在NorthEast角落使用了错误的纬度值。您的值为LatLng(95,180)。纬度的最大值是90,所以这很可能被截止为(90,180)。

例如,使用

new google.maps.LatLng(95, 180);

我得到了对象:

Q {nb: 90, ob: 180, toString: function, ...