【问题标题】:Fit coords to Google Map V3 LatLng使坐标适合 Google Map V3 LatLng
【发布时间】:2014-01-11 00:03:58
【问题描述】:

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

我从游戏中得到的坐标都在 0 到 15360 之间。在自定义地图中,东北角 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

【问题讨论】:

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


    【解决方案1】:

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

    例如,使用

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

    我得到了对象:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-03-30
      • 2015-08-22
      • 2014-03-09
      • 2015-06-04
      • 1970-01-01
      • 2014-05-20
      • 1970-01-01
      • 2011-07-01
      相关资源
      最近更新 更多