我正在构建一个带有叠加多边形的全球地图。它位于 jQuery Accordion 中。每当我切换手风琴窗格然后回到地图时,它就会跳到南极洲。为了克服这种行为,我一直在尝试捕获当前中心 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() 时会发生什么?鉴于我的地图需要像现在一样包装,我如何捕获可用的 LatLng 以与 setCenter() 一起使用?