Mapbox瓦片和Leafletjs

22

我试图在我的地图上加载一些附加的瓷砖图层,但我无法完全弄清楚。目前我所拥有的只是由某人提供教程获得的,但并没有说明其他的瓦片选项是什么。有人可以帮我吗?

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

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

3个回答

52

我最终找到了答案。

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
  • outdoors-v9

5
最新列表在这里:https://www.mapbox.com/api-documentation/#styles - dazbradbury
你救了我的命。 - James Hamann

17
完整的Mapbox经典地图ID列表,例如用于Leaflet的地图ID,请参见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-contrast

有没有办法使ID动态化,例如在单击按钮或其他东西时在mapbox.satellite和mapbox.streets之间切换? - James
我似乎在Mapbox文档中找不到ID了,甚至在@VictorHäggqvist提供的链接中也没有。是只有我找不到还是他们真的把它们藏起来了? - Stefano

3
实际上,Mapbox 提到的新瓦片图层“样式”是指 向量瓦片图层Mapbox-GL JS 使用你列出的向量 样式(xxx-v9)。(截至 05/2019 最新) Mapbox JS 建立在 Leaflet 之上,使用栅格瓦片集,即图片。这里是 Mapbox 提供的可用底图。

1
我找不到那个链接上的MapBox JS构建底图。他们改变了链接吗? - Philipp S.
1
链接已更改,mapbox不再维护此API,而且他们似乎费尽心思地隐藏了这些信息。上面Victor的答案列出了可用底图的相当全面的列表。 - CCantey

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接