1. 程式人生 > 其它 >百度地圖:maker拖動和縮放事件自動批量新增標註的解決方案

百度地圖:maker拖動和縮放事件自動批量新增標註的解決方案

技術標籤:地圖開發

    //地圖事件;
    map.addEventListener("moveend", autoMaker);
    map.addEventListener("zoomend", autoMaker);

    function autoMaker() {
        var cp = map.getBounds(); // 返回map可視區域,以地理座標表示
        var sw = cp.getSouthWest(); // 返回矩形區域的西南角
        var ne = cp.getNorthEast
(); // 返回矩形區域的東北角 var zoom = map.getZoom(); //當前縮放級別 var swlng = sw.lng, swlat = sw.lat, nelng = ne.lng, nelat = ne.lat, currShowCount = 0;//本次拖動或縮放已顯示的點數 for (var i = 0; i < points.length; i++) { if (points[i].lng > swlng && points[i].lng <
nelng && points[i].lat > swlat && points[i].lat < nelat) { if (currMarkers['markers' + i] == undefined) {//判斷當前點是否已顯示在地圖上,顯示則無需重新繪製 if (zoom == 18 || currShowCount < 50) {//放大到最大層數後,則顯示當前可視區內所有點,鑑於層級較大顯示的攝像頭較少,因此不會出現卡頓情況 map.
addOverlay(markers[i]); currMarkers['markers' + i] = markers[i];//記錄已顯示的點 currShowCount++;//本次已顯示數加1 } else { return; } } } } }

Done!