如何将标记添加到 Mapbox 图层控件?
How to add markers to Mapbox layer control?
我正在使用调用 MB 数据层的简单 Mapbox 层控件(如下)。
我需要为此添加更多标记层,但不确定如何获取 mapbox 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);
目前您正在使用他们的示例 ID 和地图。你不应该那样做。如果您已经阅读了您发布的页面底部,它会说:
Use this example by copying its source into your own HTML page and replacing the Map ID with one of your own from your projects.
其中 "your projects" 链接到 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/
我正在使用调用 MB 数据层的简单 Mapbox 层控件(如下)。 我需要为此添加更多标记层,但不确定如何获取 mapbox 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);
目前您正在使用他们的示例 ID 和地图。你不应该那样做。如果您已经阅读了您发布的页面底部,它会说:
Use this example by copying its source into your own HTML page and replacing the Map ID with one of your own from your projects.
其中 "your projects" 链接到 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/