2011-08-15 13 views
0

でパフォーマンスの読み込みいくつかのマーカーを改善:は、私はマップ(地図のAPI V3)に、いくつかのマーカーをロードする機能をしたマップv3の

function displayPois(){ 
    // Delete all POI marker from map 
    if(poiMarker.length > 0){ 
     for (var i = 0; i < poiMarker.length; i++) { 
       poiMarker[i].setMap(null);  
     }; 
    }; 
    // If zoom ok load marker data for map tile 
    if (map.getZoom() > 10){ 
     var bnds = []; 
     var bounds = map.getBounds(); 
     bnds[0] = bounds.getNorthEast().lat(); 
     bnds[1] = bounds.getNorthEast().lng(); 
     bnds[2] = bounds.getSouthWest().lat(); 
     bnds[3] = bounds.getSouthWest().lng(); 

      $.ajax({ 
      url : base_url+"trackplanner/getpois", 
      type : 'POST', 
      data : {poirange : bnds}, 
      success: function(data) { 
       if(data.length > 0){ 
        var obj = $.parseJSON(data); 
        $.each(obj,function(i,poi){ 
         var marker = null; 
         var infowindow = null; 
         var infostr = '<div id="trackplanner_poiwin"><b>'+poi.name+'</b><br />'+poi.street+'<br />'+poi.postalcode+' '+poi.city+'<br />'+poi.phone+'<br />'; 
         if(poi.mail != ''){infostr = infostr + '<a href="mailto:'+poi.mail+'">'+poi.mail+'</a><br />'}; 
         if(poi.web != ''){infostr = infostr + '<a href="'+poi.web+'">'+poi.web+'</a>'}; 
         infostr = infostr + '</div>' 
         infowindow = new google.maps.InfoWindow({ 
          content: infostr 
         }); 
         marker = new google.maps.Marker({ 
          position: new google.maps.LatLng(poi.lat,poi.lng), 
          icon:'images/'+ poi.category +'.png', 
          title: poi.name, 
          map: map 
         }); 
         poiMarker.push(marker); 
         google.maps.event.addListener(marker, 'click', function() { 
          infowindow.open(map,marker); 
         }); 
        }); 
       } 
      }, 
      error: function() {console.log('error');} 
      }); 
    };  
}; 

これらはリスナーです:

google.maps.event.addListener(map, 'dragend', function() { 
    displayPois(); 
}); 
google.maps.event.addListener(map, 'zoom_changed', function() { 
    displayPois(); 
}); 

がありますパフォーマンスを改善するオプションはありますか? POIの読み込みイベントは、POIのロードに適していますか? POIはマップタイルで約30-40です。

敬具...私が見つけた

答えて

関連する問題