1

我使用 google maps api 制作了自己的地图。它是基于非常大的图像的自定义地图类型。

无论如何我可以重置纬度坐标,以便它们相对于我的图像而不是地球的默认纬度坐标?

IE 使图像的左上角 (0,0)。

谢谢。

4

1 回答 1

1

是的,可以使用您自己的自定义投影定义。我用一个简单的投影修改了这个月球表面示例,左上角为 (0,0),右下角为 (50,50)。您很可能需要更改这些值才能使用您的应用程序。

我玩了一些限制,看起来仍然有一个硬限制 +/- 90 纬度和 +/- 180 经度。经度将以 180 度环绕。也就是说,似乎不可能定义自定义坐标,例如 (100, 200)。

在此处查看修改后的月球表面演示,单击任意位置以在警报中显示自定义 latLng:

http://jsfiddle.net/yV6xv/79/

function percentProjection() {};

percentProjection.prototype.fromLatLngToPoint = function(latlng) {
    // pixel size of tile at zoom 0
    var max = 256;

    // define bottom-right corner as (50, 50)
    var x = max * latlng.lng() / 50;
    var y = max * latlng.lat() / 50;
    return new google.maps.Point(x, y);
};

percentProjection.prototype.fromPointToLatLng = function(pixel) {
    // inverse conversion
    var max = 256;
    var lng = pixel.x / max * 50;
    var lat = pixel.y / max * 50;
    return new google.maps.LatLng(lat, lng);
};
于 2012-06-25T16:17:53.200 回答