3

有谁知道如何获取 Mapbox 矢量瓦片地图的 URL(又名“样式”)?我只能得到一个看起来像这样的样式地址:mapbox://styles/myusername/r3411y10ngh4sh3tc3tc,但我使用的插件需要一个 URL 来将 Mapbox 的矢量瓷砖与 Leaflet 集成:https ://github.com/SpatialServer/Leaflet.MapboxVectorTile/blob/master/docs /配置.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 样式。您仍然可以访问栅格地图 ID(使用 Mapbox 编辑器、Mapbox Studio Classic 制作的地图)以使用 Leaflet 加载 - 这些位于 Studio 仪表板的“经典”选项卡下。

4

1 回答 1

1

Leaflet.MapboxVectorTile 插件使用与 Mapbox GL JS 库不同的样式方法。

您在 Mapbox Studio 中创建的样式可以下载为 JSON,但对于 Leaflet.MapboxVectorTile,您必须以编程方式创建它们,如您在文档中看到的那样。您仍然可以使用他们的矢量切片 URL 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
});
于 2015-12-21T15:37:25.107 回答