为什么我的谷歌地图v3 api代码在firefox中无法正常工作

时间:2014-08-07 20:57:21

标签: javascript google-maps firefox google-maps-api-3

我在我的网络应用程序中使用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。

由于 克里斯

0 个答案:

没有答案