Jquery 设置期间谷歌地图坐标正在闪烁
我有HTML页面,其中包含谷歌地图。我有定时器,它调用函数,它移动地图。地图已移动,但每次都会闪烁。那么如何修复这个bug呢Jquery 设置期间谷歌地图坐标正在闪烁,jquery,google-maps,Jquery,Google Maps,我有HTML页面,其中包含谷歌地图。我有定时器,它调用函数,它移动地图。地图已移动,但每次都会闪烁。那么如何修复这个bug呢 function Replace(lt,ln) { var location = new google.maps.LatLng(lt, ln); var myOptions = { zoom: 15, center: location, mapTypeControl: true, mapTypeCon
function Replace(lt,ln)
{
var location = new google.maps.LatLng(lt, ln);
var myOptions = {
zoom: 15,
center: location,
mapTypeControl: true,
mapTypeControlOptions: { style: google.maps.MapTypeControlStyle.DROPDOWN_MENU },
navigationControl: true,
navigationControlOptions: { style: google.maps.NavigationControlStyle.SMALL },
mapTypeId: google.maps.MapTypeId.ROADMAP
};
var map = new google.maps.Map(document.getElementById("map_canvas"), myOptions);
var companyPos = new google.maps.LatLng(lt, ln);
var companyMarker = new google.maps.Marker({
position: companyPos,
map: map,
title: "Test"
});
}
这不是bug,每次运行此函数时都会创建一个新的maps实例(导致闪烁) 分离代码,在第一次运行时创建地图/标记实例,之后仅更新地图中心和标记位置:
function Replace(lt,ln){
var location = new google.maps.LatLng(lt, ln);
var companyPos = new google.maps.LatLng(lt, ln);
//map not created yet
if(!window.map){
var myOptions = {
zoom: 3,
center: location
};
//Note: map and companyMarker must be global
map = new google.maps.Map(document.getElementById("map_canvas"),
myOptions);
companyMarker = new google.maps.Marker({
position: companyPos,
map: map,
title: "Test"
});
}
//map already initialized, update center and position
else{
map.setCenter(location);
companyMarker.setPosition(companyPos);
}
}