2015-12-01 4 views
-1

есть ли способ узнать, загружена ли карта google? Мне нужно сделать запрос ajax после загрузки картыGoogle Map после загрузки сделать запрос ajax

В настоящее время я показываю набор пользователей на карте с информационным окном. но проблема связана с слишком большим количеством данных, которые браузер застревает.

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); 

ответ

1

Я думаю, что вы ищете это ..

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

Для более see this.