オーバーレイポリゴンを使用して世界地図を作成しています。これはjQueryアコーディオン内にあります。アコーディオンペインを切り替えてからマップに戻ると、南極大陸にジャンプします。この動作を克服するために、現在の中心LatLngをキャプチャして変数に格納し、マップのアコーディオンパネルに戻るときにsetCenter()を実行しようとしています。
動作しなかったので、.toUrlValue()メソッドを使用して、現在の中心座標をページ上の表示されている要素にダンプしてみました。マップを東または西にパンすると、経度の数値が増加し続けます。180になり、その後-180にリセットされると予想しました。
私のコード:
var currMapCenter = null;
jQuery(document).ready(function() {
jQuery("#accordion").bind('accordionchange', function(event, ui) {
if (ui.newContent.attr('id') == 'region-list')
{
triggerMapResize();
}
});
});
function initialize_map() {
//do all the initialization here...
currMapCenter = map.getCenter(); //set initial center in variable.
google.maps.event.addListener(map, 'center_changed', function() {
currMapCenter=map.getCenter();
jQuery("#description").html(currMapCenter.toUrlValue());//to see what is happening...
});
}
function triggerMapResize()
{
google.maps.event.trigger(map, "resize");
map.setCenter(currMapCenter);
}
ドキュメントには、getCenter()がLatLngを返し、setCenter()がLatLngを必要とすることが示されています。currMapCenter = map.getCenter()を設定しようとするとどうなるか誤解していますか?マップを現在のようにラップする必要がある場合、setCenter()で使用するために使用可能なLatLngをキャプチャするにはどうすればよいですか?