我使用一个简单的Mapbox图层控件来调用MB数据层(下面)。 我需要为此添加一些标记图层,但不确定如何获取地图框ID。我怎么能做到这一点?
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);
答案 0 :(得分:1)
目前您正在使用他们的示例ID和地图。你不应该这样做。如果您在页面底部阅读,则说明:
使用此示例,将其源代码复制到您自己的HTML页面,并将您的项目中的地图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
}
您也可以使用它来加载外部geojson文件,只需使用URL而不是mapid。
参见示例: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/