有谁知道如何获取Mapbox矢量图块地图的URL(又名"样式")?我只能得到一个如下所示的样式地址:mapbox://styles/myusername/r3411y10ngh4sh3tc3tc
,但我使用的是一个插件,需要一个URL来集成Mapbox的Vector Tiles和Leaflet:https://github.com/SpatialServer/Leaflet.MapboxVectorTile/blob/master/docs/configuration.md
我尝试将Mapbox提供的样式地址替换为URL
var config = {
url: "mapbox://styles/myusername/fwaoij32wlfij23slkfj3",
...etc
};
var mvtSource = new L.TileLayer.MVTSource(config);
map.addLayer(mvtSource);
但我收到一个错误,它无法将样式地址作为URL读取。有什么建议?我应该使用不同的插件吗?
更新
简而言之,Mapbox样式的URL尚不可用。以下是我从Mapbox收到的回复:
Leaflet尚未与Mapbox Studio中制作的样式兼容,因为这些样式需要基于GL的渲染器。我们目前正在开发一个新的API,允许您将Studio样式与Leaflet一起使用,我们希望它能在几周内推出。
目前,您可以使用Mapbox GL JS加载Mapbox Studio样式。您仍然可以使用Leaflet加载栅格地图ID(使用Mapbox编辑器制作的地图,Mapbox Studio Classic) - 这些可以在" Classic"工作室信息中心中的标签。
答案 0 :(得分:1)
Leaflet.MapboxVectorTile插件使用与样式不同的方法,例如Mapbox GL JS库。
您在Mapbox Studio中创建的样式可以作为JSON下载,但对于Leaflet.MapboxVectorTile,您必须以编程方式创建它们,如the documentation中所示。您仍然可以使用他们的矢量切片网址https://b.tiles.mapbox.com/v4/mapbox.mapbox-streets-v6/{z}/{x}/{y}.vector.pbf?access_token=<public api token>
,但可能必须再次从头开始重写/完成样式。
您可以使用Mapbox Gl Javascript创建一个包含您创建的样式的地图,但我不知道您当前的项目有多广泛,以及是否与其他(Leaflet)插件冲突:
mapboxgl.accessToken = '<public API token>';
var map = new mapboxgl.Map({
container: 'map',
style: 'mapbox://styles/<your name>/<style id>',
center: [-74.50, 40],
zoom: 9
});