找不到我的Mapbox样式地图的Mapbox Vector Tile URL

时间:2015-12-19 05:52:54

标签: leaflet mapbox mapbox-gl mapbox-gl-js vector-tiles

有谁知道如何获取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"工作室信息中心中的标签。

1 个答案:

答案 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
});