3
此地圖用於在單個視圖中跟蹤多個標記。標記必須從服務器每5秒更新一次。 每次刷新後,我的infowindow都會消失。每5秒發出一次json請求。當我點擊標記時,infowindow就會出現,並在下一次json調用時立即清除。我可以設計一種方法/任何解決方案,使其即使在刷新後也能顯示(動態)。Google地圖onclick infowindow在刷新週期後消失
var map1;
function map1_initialize()
{
setInterval(function() {
var lat=new Array();var lng=new Array();var latlng = [];
$.getJSON('web_services/latlong.php?option=4&user_id=<?php echo $user_id;?>', function(json) {
$.each(json.Result.Data,function(i,gmap){
lat[i]=gmap.latitude;
lng[i]= gmap.longitude;
latlng[i] = new google.maps.LatLng(lat[i], lng[i]);
/*google.maps.event.addListener(marker, 'click', (function(marker, i) {
return function() {
infowindow.setContent(json.Result.Data[i].alias);
console.log(json.Result.Data[i]);
infowindow.open(map, marker);
}
})(marker, i)); */
if (google.maps.BrowserIsCompatible())
{
map1 = new google.maps.Map2(document.getElementById('map'));
map1.addControl(new google.maps.LargeMapControl3D());
map1.addControl(new google.maps.MenuMapTypeControl());
map1.setCenter(new google.maps.LatLng(0, 0), 0);
for (var i = 0; i < latlng.length; i++)
{
var marker = new google.maps.Marker(latlng[ i ]);
map1.addOverlay(marker);
}
var latlngbounds = new google.maps.LatLngBounds();
for (var i = 0; i < latlng.length; i++)
{
latlngbounds.extend(latlng[ i ]);
}
map1.setCenter(latlngbounds.getCenter(), map1.getBoundsZoomLevel(latlngbounds));
GEvent.addListener(marker, 'click', function() {
// When clicked, open an Info Window
//alert(gmap.alias);
marker.openInfoWindowHtml(gmap.alias);
});
//gmap.alias is the alias name for the marker-loading it via json response
}
});
});
}, 5000);
}