0

balloonクリックするとポップアップするがありMarkerます。バルーンがマップの境界を超えて、完全に表示されない場合があります。

バルーンが高すぎることがあり、それでも境界外にあるため、マップをマーカーの座標の中央に配置できません。offsetそのため、マップの中心を少し下に移動して、バルーンが常にマップの中央にくるようにする必要があります。

問題は、Googleマップがピクセルではなく。で機能することLatLngです。したがって、すべてのズームレベルのオフセットを同じに保つために、動的にスケーラブルな関数が必要です。

4

1 に答える 1

1

さて、私はアルゴリズムの解決策を見つけました!

map.setCenter(
 new google.maps.LatLng(
  marker.getPosition().lat()+(X/Math.pow(2,map.getZoom())),
  marker.getPosition().lng()
 )
);

各ズームレベルは、マップに表示されているLatLngをほぼ2倍にします。だからX、あなたにとって完璧なオフセット(私の場合は128でした)を見つけるだけで、すべてがうまくいきます!

PS:マーカーの位置はバルーンと同じです。

于 2012-11-12T11:12:05.460 に答える