2015-02-05 68 views
-1

我正在使用調用MB數據層的簡單Mapbox圖層控件(下圖)。 我需要爲此添加更多標記圖層,但不知道如何獲取地圖框ID。我怎樣才能做到這一點?如何將標記添加到Mapbox圖層控件?

L.mapbox.accessToken = 'pk.eyJ1IjoibWFwc3RlciIsImEiOiI3RmFfME5ZIn0.73sdzUFNqSsGQzjlsnimaA'; 
var map = L.map('map').setView([38.8922,-77.0348], 14); 
var layers = document.getElementById('menu-ui'); 

addLayer(L.mapbox.tileLayer('examples.map-i87786ca'), 'Base Map', 1); 
addLayer(L.mapbox.tileLayer('examples.bike-lanes'), 'Bike Lanes', 2); 
addLayer(L.mapbox.tileLayer('examples.bike-locations'), 'Bike Stations', 3); 

function addLayer(layer, name, zIndex) { 
    layer 
     .setZIndex(zIndex) 
     .addTo(map); 

code is from Mapbox toggling layers template

回答

1

此刻的你正在使用他們的榜樣ID和地圖。你不應該那樣做。如果你已經在你發佈的頁面的底部看到它說:

通過將其源代碼複製到你自己的HTML頁面中,並用你自己的項目中的一個替換你的Map ID。

其中「您的項目」與https://www.mapbox.com/projects/相關聯。當你沒有登錄時,你會得到一個很好的對話框,讓你登錄或註冊。一旦你完成了,你會得到你自己的ID,你可以創建項目。創建項目時,您將獲得每個項目的地圖ID。這一切都非常自私。

編輯:如果你想插入一個單獨的圖層的功能,你必須創建一個只有一個標記層的項目。保存並複製該ID。您可以通過使用L.mapbox.featureLayer包括在其他地圖:

var mapId = 'examples.map-zr0njcqy'; // use your feature mapid 
var features = L.mapbox.featureLayer(mapId); // declare featureLayer 

features.on('ready', function() { // Wait untill features are loaded 
    addLayer(features); // add it the same your tilelayers 
} 

您也可以使用此僅通過使用URL代替的azazaz加載外部GeoJSON的文件。

見例如:https://www.mapbox.com/mapbox.js/example/v1.0.0/features-from-another-map/ 和參考:https://www.mapbox.com/mapbox.js/api/v2.1.5/l-mapbox-featurelayer/

+0

我用我自己的地圖標識。該代碼來自模板。我感興趣的選項添加到這個標記層。 – Bergen88 2015-02-05 21:42:00

+0

好的。我編輯了我的答案。但是在你的問題中,你說的是你不確定如何獲得一個mapbox id。你可能會更清楚。這個問題缺乏很多東西:你研究的是什麼?你嘗試了什麼?什麼地方出了錯?你得到什麼錯誤?請參閱:http://stackoverflow.com/help/how-to-ask – iH8 2015-02-05 22:17:31

相關問題