Mapbox 瓦片和 Leafletjs

Posted

技术标签:

【中文标题】Mapbox 瓦片和 Leafletjs【英文标题】:Mapbox tiles and Leafletjs 【发布时间】:2016-09-07 01:31:25 【问题描述】:

我正在尝试在我的地图上加载一些额外的切片图层,但我无法完全弄清楚。我目前拥有的那些我只感谢提供教程但没有说明其他瓷砖选项的人。有人可以帮我解决这个问题吗?

var mapboxUrl = 'https://api.tiles.mapbox.com/v4/id/z/x/y.png?access_token=accessToken';
var accessToken = 'mySuperSecretToken';

var grayscale = L.tileLayer(mapboxUrl, id: 'mapbox.light', attribution: '', maxZoom: 20, accessToken: accessToken),
streets = L.tileLayer(mapboxUrl, id: 'mapbox.streets', attribution: '', maxZoom: 20, accessToken: accessToken);

我似乎不知道如何获得任何额外的图层,甚至无法使用我今天收到的电子邮件中提到的新街道版本。

【问题讨论】:

【参考方案1】:

其实我终于找到了答案。

需要更新的 URL 字符串

https://api.mapbox.com/styles/v1/mapbox/id/tiles/z/x/y?access_token=accessToken

可用的样式 (id) 是

streets-v9 satellite-streets-v9 light-v9 dark-v9 户外-v9

【讨论】:

最新名单在这里:mapbox.com/api-documentation/#styles【参考方案2】:

Mapbox 经典地图 ID 的完整列表,即 Leaflet,位于 https://www.mapbox.com/api-documentation/#maps。

在撰写本文时,ID 为:

mapbox.streets mapbox.light mapbox.dark mapbox.satellite mapbox.streets-satellite mapbox.wheatpaste mapbox.streets-basic mapbox.comic mapbox.outdoors mapbox.run-bike-hike mapbox.pencil mapbox.pirates mapbox.emerald mapbox.high-对比度

【讨论】:

有没有办法让id动态化,例如在mapbox.satellite和mapbox之间切换,点击按钮时的街道什么的? 我似乎无法在 mapbox 文档上找到 ID,甚至在 @VictorHäggqvist 提供的链接上也找不到。是我自己还是他们真的把它们藏在了某个地方?【参考方案3】:

实际上,Mapbox 所指的新瓦片层“样式”是矢量瓦片层

Mapbox-GL JS 使用您列出的矢量styles (xxx-v9)。 (截至 2019 年 5 月更新)

Mapbox JS 构建在 Leaflet (L.tilelayer()) 之上,并使用光栅图块集,即图像。 Here are the available basemaps 来自 Mapbox。

【讨论】:

我在该链接上找不到 MapBox JS 构建底图。他们是否更改了链接? 链接已更改,mapbox 不再维护此 api,并且似乎他们已竭尽全力隐藏此信息。上面来自维克多的答案有一个很好的,可能是完整的可用底图列表。

以上是关于Mapbox 瓦片和 Leafletjs的主要内容,如果未能解决你的问题,请参考以下文章

Leaflet.js 中未显示自定义 Mapbox 瓦片集

离线使用 Mapbox GL JS 2.x,使用自托管瓦片

Mapbox gl tile瓦片渲染点以及图片Icon

栅格瓦片 笔记二:瓦片数据的生成

科普Web(瓦片)地图的工作原理

Web(瓦片)地图的工作原理