访问 MKMapView 的地图瓦片

Posted

技术标签:

【中文标题】访问 MKMapView 的地图瓦片【英文标题】:Accessing Map Tiles of MKMapView 【发布时间】:2014-02-04 22:49:04 【问题描述】:

我目前正在开发一个应用程序,该应用程序需要显示用户当前在世界上的位置的地图。出于技术原因,在进入渲染管道之前,我需要以图像 (png/jpg) 的形式访问每个地图图块。

我已经尝试过 MapBox、MapQuest 等 3rd 方服务,因为它们具有 REST api,使我能够根据请求的位置接收图块的 png/jpg。这里的问题是 MapBox 不是免费的,所以我想知道是否有办法访问 Apple 在其地图应用程序中提供的图块。他们在后台使用什么服务?采用这种方法是否会违反某些使用条款。

请注意,使用一些集成的“全能”UIMapView 对我来说不是一个选项,我需要直接使用图像。

谢谢

【问题讨论】:

【参考方案1】:

Google 有一个 REST API。您可以在这里查看详细信息https://developers.google.com/maps/documentation/staticmaps/?csw=1。如果超出使用限制,确实会花钱。

我为我的应用手动下载 Map Tiles,但我不使用 MKMapKit。我有自己的 MapView,我正在使用我在 AWS 上生成和托管的 MapBox、Thunderforest、CalTopo、OSM 和地图图块的组合。它们都有一个非常简单的地图图块 URL 方案,但您必须为其中的大部分付费。

【讨论】:

不幸的是,Google 的使用条款不允许我在之后对这些磁贴进行操作。我很高兴你回答了这个问题,因为你让我发现了在我搜索地图图块提供商时没有出现的 Thunderforest。你说雷霆森林可靠吗? Thunderforest 对我来说非常可靠。我遇到的一个问题是它比其他服务慢。如果你对 Thunderforest 感兴趣,这张地图一出来可能会让你感兴趣mapbox.com/blog/vector-terrain-outdoors 如何在 Swift 中的 MapBox 中设置 WMS 瓦片层,就像 Google 提供了一些在 developers.google.com/maps/documentation/ios-sdk/tiles 处添加它的方法,提前致谢

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

基于cesium的百度、腾讯、高德数据访问

离线地图解决方案:加载瓦片地图

Cocos2d-JS中瓦片地图API

nginx在代理转发地图瓦片数据中的应用

如何在我的 mapview iOS 7 中使用 OpenLayer (OpenStreetMap) 瓦片

地图瓦片数据的多种利用形式以及瓦片数据的浏览显示