将Google地图平移到屏幕上的特定像素位置(API v3)

时间:2010-05-06 01:25:11

标签: google-maps google-maps-api-3

overlay是Google地图叠加层且offsetx, offsety是我想要平移latlong的地图中心的像素距离时,以下情况有效。

var projection = overlay.getProjection();
var pxlocation = projection.fromLatLngToContainerPixel(latlong);
map.panTo(projection.fromContainerPixelToLatLng(new google.maps.Point(pxlocation.x+offsetx,pxlocation.y+offsety)));

但是,我并不总是在地图上添加叠加层,而map.getProjection()会返回projection,而不是MapCanvasProjection,但却没有我需要的方法。

有没有一种方法可以做到这一点,而不是特别为它做一个叠加?

1 个答案:

答案 0 :(得分:4)

由于没有人提出更好的方法,这是我的解决方案。只给我一个MapCanvasProjection对象的唯一工作做一个叠加。

var helper = new google.maps.OverlayView();
helper.setMap(map);
helper.draw = function () { 
    if (!this.ready) { 
        this.ready = true; 
        google.maps.event.trigger(this, 'ready'); 
    } 
}; 
var projection = helper.getProjection();
...

希望这有助于某人。更好的建议欢迎。