1

Python用于在地图上绘制地理空间数据。对于某些地图样式,例如["basic", "streets", "outdoors", "light", "dark", "satellite", "satellite-streets"],我需要一个 mapbox 访问令牌,对于一些地理空间绘图包,我folium什至需要创建自己的链接来检索地图图块。

到目前为止,它的风格效果很好"satellite"

mapbox_style = "satellite"
mapbox_access_token = "....blabla"

request_link = f"https://api.mapbox.com/v4/mapbox.{mapbox_style}/{{z}}/{{x}}/{{y}}@2x.jpg90?access_token={mapbox_access_token}"

However, when choosing "satellite-streets"as mapbox-tile-ID, the output doesn't show a background map anymore. "satellite-streets", "satellitestreets" and "satellite_streets"插入上述链接字符串失败。

为什么会这样,我怎样才能知道正确的 tile-ID-name 是"satellite-streets"什么?

4

1 回答 1

2

我在联系客户支持时找到了答案。显然,必须访问其网站上列出的具有特定名称的静态 API:

“一般来说,您提到的样式,包括您引用的“satellite_streets”是我们的经典样式,将从 6 月 1 日开始弃用。我建议使用我们的现代静态 API等效的现代样式。这将让您看到最新的街道数据也是如此。

就像下面的示例请求:

https://api.mapbox.com/styles/v1/mapbox/satellite-streets-v11/tiles/1/1/0?access_token= {your_token}

以下是有关弃用经典样式及其迁移指南的更多信息。”

我自己尝试了所有方法后的个人适应是:

通过将上述内容与如何在mapbox 网站上的此文档上构建 Mapbox-request 链接的详细信息相结合,我终于设法使其工作。

一个示例请求如下所示(在 python 中使用 f-strings):

mapbox_tile_URL = f"https://api.mapbox.com/styles/v1/mapbox/{tileset_ID_str}/tiles/{tilesize_pixels}/{{z}}/{{x}}/{{y}}@2x?access_token={mapbox_access_token}"

tileset_ID_str 可以是例如"satellite-streets-v11"可以在包含有效静态地图的以下链接中看到的。

于 2020-05-10T10:00:57.173 回答