简体   繁体   English

加载后的谷歌地图发出ajax请求

[英]Google Map after load make ajax request

is there any way to know if google map is loaded ?有没有办法知道谷歌地图是否已加载? i need to make an ajax request after map is loaded我需要在地图加载后发出 ajax 请求

Currently i am displaying a set of users in a map with a info window.目前,我在带有信息窗口的地图中显示一组用户。 but the problem is due to too much data the browser gets stuck.但问题是由于浏览器卡住了太多数据。

    var infowindow;
    var markersLongLat = {$markersLongLat};
    var geocoder = new google.maps.Geocoder();
    var markerImg = '{$markerImg}';

        function initialize() {
        if(hasFilter == 1){
        var zoom = 2;
        var myLatlng = new google.maps.LatLng(0, 0);
        if('' != markersLongLat){
        var myLatlng = new google.maps.LatLng(markersLongLat[0].lat, markersLongLat[0].long);
        var zoom = 5;
        }
        var myOptions = {
            zoom: zoom,
            center: myLatlng,
            mapTypeId: google.maps.MapTypeId.ROADMAP
        };
        }
        else{
        var myLatlng = new google.maps.LatLng(0, 0);
        var myOptions = {
            zoom: 2,
            center: myLatlng,
            mapTypeId: google.maps.MapTypeId.ROADMAP
        };
        }
        map = new google.maps.Map(document.getElementById('googleMap'), myOptions);
        console.log('map loaded successfully');

        // Adding longLat markers
        if ('' != markersLongLat) {
        console.log('markersLongLat');
        for (var x = 0; x < markersLongLat.length; x++) {                 var person =  new Object();
            person.id = markersLongLat[x].id
            person.name = markersLongLat[x].name
            person.lat = markersLongLat[x].lat
            person.long = markersLongLat[x].long
            person.address = markersLongLat[x].address

           codeLongLat(person);
      }
       }




     function codeLongLat(markersLongLat) {
        var lat = markersLongLat.lat;
        var long = markersLongLat.long;
        var name = markersLongLat.name;
        var info = markersLongLat.info;
        var markerObj = new MarkerWithLabel({
              map: map,
              position: new google.maps.LatLng(lat, long),
              title: name,
              labelContent: name,
              labelClass: 'marker-labels',
              icon:markerImg
         });

          google.maps.event.addListener(markerObj, 'click', function() {
          if (infowindow) infowindow.close();
          infowindow = new google.maps.InfoWindow({content: info});
          infowindow.open(map, markerObj);
          });
     }

    google.maps.event.addDomListener(window, 'load', initialize);

I think you are looking for this..我想你正在寻找这个..

google.maps.event.addListenerOnce(map, 'idle', function(){
    //loadedFully
});

For more see this .有关更多信息, 请参阅此

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM