0

Googleマップからユーザーがクリックイベントをトリガーしたときに、画面の中央にマーカーを配置するように設定しています。しかし、下の図でわかるように、ビューポート内で情報ウィンドウのコンテンツが完全に表示されないという問題が発生しました。情報ウィンドウがビューポート内に完全に表示されるように、コードで地図を自動パンする方法を教えてください。情報ウィンドウのコンテンツ内でのスクロールを無効にしました。

ビューポート内にコンテンツの半分が表示されない

4

1 に答える 1

0

StackOverFlow で解決策を見つけました。ところで、Stackoverflow チームに感謝します。

google.maps.Map.prototype.panToWithOffset = function(latlng, offsetX, offsetY) {
    var map = this;
    var ov = new google.maps.OverlayView();
    ov.onAdd = function() {
        var proj = this.getProjection();
        var aPoint = proj.fromLatLngToContainerPixel(latlng);
        aPoint.x = aPoint.x+offsetX;
        aPoint.y = aPoint.y+offsetY;
        map.panTo(proj.fromContainerPixelToLatLng(aPoint));
    }; 
    ov.draw = function() {}; 
    ov.setMap(this); 
};

マーカーがクリックされたときにこの関数を呼び出します。

于 2015-10-30T11:01:47.863 に答える