2016-06-11 60 views
0

我正在使用谷歌地圖進行網站開發。我的數據庫中有很多標記。我想加載當前地圖中顯示的區域中的標記。而當縮放變化時,標記的數量也應相應調整。什麼是最好的方法?提前致謝!谷歌地圖只加載顯示區域中的標記

+0

爲什麼你需要刪除標記,如果它不在視圖中?我認爲你需要解釋這個的最終目標。 – DBS

回答

2

使用約束

aNord = this.map.getBounds().getNorthEast().lat(); 
    aEst = this.map.getBounds().getNorthEast().lng(); 
    aSud = this.map.getBounds().getSouthWest().lat(); 
    aOvest = this.map.getBounds().getSouthWest().lng(); 

的過濾器(服務器端)從數據庫中的數據(在這種情況下,PHP)

"select lat, lng 
    from your_table 
    where lat = $minLat 
    AND lat <= $maxLat 
    AND lng <= $maxLng 
    AND lng >= $minLng"; 
+0

它的工作原理!我需要這個,因爲考慮到性能,加載數千個標記將是一個真正的打擊。謝謝@scaisEdge –

+0

好吧..如果我的回答是正確的,請將其標記爲已接受 – scaisEdge

2

您還可以使用的bounds_changed功能來添加或刪除數據時,用戶的變化縮放級別或平移地圖。

var map = new google.maps.Map(document.getElementById('map'), { 
     zoom: 12, 
     center: {lat:41.082774, lng: 28.86821}, 
     disableDefaultUI: true 
    }); 

    google.maps.event.addListener(map, 'bounds_changed', function() { 
    aNord = map.getBounds().getNorthEast().lat(); 
    aEst = map.getBounds().getNorthEast().lng(); 
    aSud = map.getBounds().getSouthWest().lat(); 
    aOvest = map.getBounds().getSouthWest().lng(); 
    });