简体   繁体   中英

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

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 .

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

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