[英]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.