3

什么时候overlay是谷歌地图叠加层,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()返回 a projection,而不是 aMapCanvasProjection没有我需要的方法。

有没有办法做到这一点而无需专门为它制作覆盖?

4

1 回答 1

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();
...

希望这可以帮助某人。欢迎提出更好的建议。

于 2010-05-06T23:20:56.520 回答