ios - MapBox Vector Tiles Overlay 在 MapKit 中使用 MKTileOverlay
问题描述
我们正在尝试在 MapKit 地图上叠加 MapBox 矢量切片,但目前无济于事。MKTileOverlay 显然不支持 MVT,那么 MapKit 的哪些功能可以让我们将这些图块(包括特征、缩放级别等)叠加到我们现有的 Apple 地图上?
对于我们的用例,使用光栅图块不是一个选项。瓦片必须是矢量瓦片。
func addMap() {
let url = "https://api.mapbox.com/v4/mapbox.mapbox-streets-v8/1/0/0.mvt?access_token=YOUR_MAPBOX_ACCESS_TOKEN"
let tileOverlay = MKTileOverlay(urlTemplate: url)
mapView.addOverlay(tileOverlay)
}
解决方案
从 Apple MapKit文档中MKTileOverlay
,需要光栅或位图图像。
用位图图像块覆盖地图区域的叠加层。
由于 iOS 版 MapKit 需要栅格,因此可以使用 Mapbox Raster Tiles API 来提供 Mapbox 切片的栅格版本。
您的 Swift URL 如下所示:
let url = "https://api.mapbox.com/styles/v1/mapbox/streets-v11/tiles/256/{z}/{x}/{y}@2x?access_token=YOUR_MAPBOX_ACCESS_TOKEN"
您可以查看 Mapbox Raster Tile API 服务的示例(在 Mapbox Docs 中有说明)。
curl https://api.mapbox.com/styles/v1/mapbox/streets-v11/tiles/256/9/89/206@2x?access_token=YOUR_MAPBOX_ACCESS_TOKEN
推荐阅读
- sql - SQL:从任意间隔计算月平均值
- python - Python:循环条件的一行
- ruby-on-rails - 检查数组是否可排序
- matplotlib - 包括一个情节的多个子情节是2grid情节
- java - 如何通过命令行列出java程序的默认和可用线程调度程序?
- sql-server - SQL Server 2014 在 JBOSS EAP 6.4 数据源配置中连接失败
- node.js - Docusign createEnvelope 仅填充具有初始值的选项卡字段
- javascript - 由于来源跨域读取阻塞 (CORB),JSON API 未通过 fetch 检索
- purescript - Purescript:为什么 genericEncodeJSON 不能对容器内的类型进行编码?
- c++ - 简单的现代 OpenGL Hello World