2014-03-06 39 views
0

我有一個mapbox.js地圖,但參數zoom似乎沒有做任何事情 ,我無法在文檔中找到它。不管我設置zoom縮放級別始終默認爲我的項目縮放級別下面是代碼:Mapbox.js設置地圖默認縮放選項

<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(); 
    }); 
+0

你有想過嗎?我也堅持這一點。看看源代碼,它應該可以正常工作。我在等待他們的開發者回來。球隊。 –

+0

不幸的是我沒有。偉大的應用程序,但文件對我來說很難。客戶項目也因此失敗了,所以我沒有多花時間。讓我知道,但如果他們回來了,我想在未來的項目中使用Mapbox。 – Naterade

回答

0

我花了很多周圍挖,但我想通了這一點我自己。開發者尚未迴應。我們正在討論這一切都是錯誤的。這是做什麼:

首先,創建MapBox對象,但將zoomAnimation設置爲false。 This question幫助我意識到,嘗試setZoom而CSS3動畫正在進行將不會工作,因爲它很難擺脫。至少這是我認爲正在發生的事情。將zoomAnimation設置爲true可讓地圖在任何自定義縮放級別中進行動畫製作和繞過,因此顯然這非常重要。

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

接下來,創建一個多邊形圖層並添加到地圖的地圖上。您可以在您的MapBox項目>信息選項卡中找到它。 (在我的情況下,這種以GeoJSON恰好包含緯度/多邊形的LNG COORDS但你的情況可能會有所不同。featureLayer()仍應加GeoJSON的兩種方式。)

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

面層後(或任何你緯度/ LNG COORDS是)已添加到地圖

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地圖時檢查地址的lat/lng座標是否屬於多邊形。它應該讓你去。希望能幫助到你!