当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
,但却没有我需要的方法。
有没有一种方法可以做到这一点,而不是特别为它做一个叠加?
答案 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();
...
希望这有助于某人。更好的建议欢迎。