我在我的网络应用程序中使用Google Maps v3 api,它在Chrome,IE,Safari,Opera中运行良好,但在Firefox中运行效果不佳。基本上,应该发生的是地图被初始化,然后标记被放置在地图上的地图范围内的任何数据库地址。地图在工作浏览器中快速加载(少于1秒)并显示标记。 Firefox需要5秒多的时间来加载地图,我认为这种滞后会导致标记无法显示。当我使用Firebug调试我的javascript时,标记会正确显示,这一点得到了加强。我尝试过以下方法:
function InitializeMap() {
gm = google.maps;
map = new gm.Map(document.getElementById('map'), {
zoom: zoomLevel
});
google.maps.event.trigger(map, 'resize');
oms = new OverlappingMarkerSpiderfier(map, { markersWontMove: true, markersWontHide: true });
if (!!navigator.geolocation) {
navigator.geolocation.getCurrentPosition(function (position) {
var geolocate = new google.maps.LatLng(position.coords.latitude, position.coords.longitude);
map.setCenter(geolocate);
});
}
else {
alert('No geolocation support');
}
google.maps.event.addListener(map, 'zoom_changed', function () {
zoomLevel = map.getZoom();
CallHandler();
});
google.maps.event.addListener(map, 'dragend', function () {
zoomLevel = map.getZoom();
CallHandler();
});
google.maps.event.addListenerOnce(map, 'idle', function () {
google.maps.event.trigger(map, 'resize');
// Load Markers
CallHandler();
});
//google.maps.event.addListenerOnce(map, 'tilesloaded', function () {
// //this part runs when the mapobject is created and rendered
// google.maps.event.addListenerOnce(map, 'tilesloaded', function () {
// //this part runs when the mapobject shown for the first time
// google.maps.event.trigger(map, 'resize');
// CallHandler();
// });
//});
}
加载tile的事件也不起作用。
对此有任何帮助表示赞赏。 CallHandler只是调用ajax并返回json。
由于 克里斯