簡體   English   中英

Mapbox.js設置地圖默認縮放選項

[英]Mapbox.js set map default zoom option

我有一個mapbox.js地圖,但參數zoom似乎沒有做任何事情,我無法在文檔中弄清楚。 無論我將zoom設置為zoom級別如何,始終默認為我的項目zoom級別。這是代碼:

<script src='https://api.tiles.mapbox.com/mapbox.js/v1.6.1/mapbox.js'></script>
<link href='https://api.tiles.mapbox.com/mapbox.js/v1.6.1/mapbox.css' rel='stylesheet' />

$(document).ready(function() {
        var map = L.mapbox.map('map', 'nhaines.hek4pklk', {
            zoom: 1
        });

        // disable drag and zoom handlers
        map.dragging.disable();
        map.touchZoom.disable();
        map.doubleClickZoom.disable();
        map.scrollWheelZoom.disable();
        // disable tap handler, if present.
        if (map.tap) map.tap.disable();
    });

我花了很多時間去挖掘,但是我自己想了想。 開發人員尚未回復。 我們正在解決所有這些錯誤。 這是做什么的:

首先,創建MapBox對象,但將zoomAnimation設置為false。 這個問題使我意識到,在CSS3動畫進行過程中嘗試setZoom永遠不會奏效,因為很難突破。 至少那是我所想的。 zoomAnimation設置為true可以使地圖進行動畫處理並繞過任何自定義縮放級別,因此很明顯,這非常重要。

var map = L.mapbox.map('map', 'username.map_id', {
    zoomAnimation: false
});

接下來,創建一個多邊形圖層,然后從地圖的geojson添加到地圖。 您可以在MapBox項目>信息標簽中找到此內容。 (在我的情況下,此geojson碰巧包含多邊形的經/緯度坐標,但您的情況可能有所不同featureLayer()仍應以任何一種方式添加geojson。)

var polygonLayer = L.mapbox.featureLayer().loadURL('http://your/maps/geojson').addTo(map);

在將多邊形圖層(或任何經緯度坐標所在的圖層)添加到地圖后

polygonLayer.on('ready', function() {
    // featureLayer.getBounds() returns the corners of the furthest-out markers,
    // and map.fitBounds() makes sure that the map contains these.
    map.fitBounds(polygonLayer.getBounds());

    map.setView(map.getCenter(), 10);
}

顯然fitBounds滿足了map要求,可以在其上調用setView ,因為現在您可以直接調用map對象以獲取中心緯度/經度。

我沒有在簡單的情況下對此進行過測試-我改編了我的代碼,該代碼在迭代一系列MapBox地圖時檢查地址的經/緯度坐標是否在多邊形內。 它應該讓你走。 希望能幫助到你!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM