ios - 从 Open Street Map 下载一个国家的所有图 block

标签 ios openstreetmap offline-caching

我正在为 iPhone 创建一个离线 map 应用程序(使用 MKMapKit )。它将有一个国家列表。如果用户选择了一个国家,所有的瓷砖都将被下载并存储在 iPhone 上。我将使用 Open Street Map 作为 map 提供者。

(我读过禁止批量下载,但考虑到一个国家/地区的图 block 非常小(≈200MB)并且它们只会下载一次,至少我认为这不是问题。)

我想我将使用模板 URL @"http://c.tile.openstreetmap.org/{z}/{x}/{y}.png"下载瓷砖然后存储它们。我的问题是我不知道如何确定哪些图 block 属于哪个国家,从而确定要下载哪个图 block 。

我找到了this link在另一个 SO 答案中,但这仅允许您下载 .pbf 文件(我不知道它是什么)和每个大陆。

最佳答案

第一:如果你真的想抓取所有的瓦片(在所有缩放级别),你应该阅读 OSM Tile Usage Policy再次小心。如果您只想下载一次所有图 block (用于您的开发环境),您可以使用 existing downloaders允许您选择所需的国家并下载它们。这将产生一个包含 1000 多个小图像的目录,并且可能需要几天时间。

更好的方法是设置您自己的(基于桌面或服务器的)平铺渲染链,让您可以完全控制样式并且不会对社区资源造成压力。有关如何设置基于服务器的渲染堆栈的详细教程,请参阅 www.switch2osm.org。

关于ios - 从 Open Street Map 下载一个国家的所有图 block ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23616401/

相关文章:

javascript - React Native Navigator:仅在某些组件上显示导航栏

iphone - MFMailComposeViewController - 将取消和发送按钮更改为图像

openstreetmap - 如何在对 OSM API 的一次调用中获取(纬度、经度)对的列表?

javascript - 使用 Service Worker 缓存非 SSL 请求

google-chrome - Google Chrome list 提取失败 (6)

android - volley如何离线加载图片,volley是自动缓存图片还是需要缓存图片?

iOS : LinkedIn Sign In is not redirecting to webpage when app is not installed

google-maps - 从谷歌地图数据或其他 map API 创建街区叠加层

gis - 如何从 OpenStreetMap 方式中去除水?

ios - 在 Swift iOS 中更改方向更改时更改 UICollectionViewCell 标签 textColor