3

overlayGoogleマップのオーバーレイであり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)));

ただし、マップ上に常にオーバーレイがあるとは限らず、必要なメソッドがないaではなく、をmap.getProjection()返します。projectionMapCanvasProjection

特にオーバーレイを作成せずにこれを行う方法はありますか?

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 に答える