0

我正在尝试使用 Google Maps V3 将我从游戏中获得的 x 和 y 坐标拟合到自定义图像地图。

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

所以,我从游戏坐标转换为谷歌地图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 和 SouthWestLatLng制作标记并调整它们以查看它们何时位于我的图像地图的角落。

无论何时,当我得到地图的边界时map.getBounds()

我看到这个:

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

1 回答 1

0

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

例如,使用

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

我得到了对象:

Q {nb: 90, ob: 180, toString: function, ...
于 2013-12-22T19:30:22.610 回答