如何缓存 Google 地图图块以供离线使用?

Posted

技术标签:

【中文标题】如何缓存 Google 地图图块以供离线使用?【英文标题】:How to cache Google map tiles for offline usage? 【发布时间】:2011-08-31 20:23:10 【问题描述】:

就像诺基亚的 OVI 地图可以离线使用一样,也必须有一些缓存 Google 地图图块的方法。有什么提示吗?

【问题讨论】:

你在寻找关于 android 应用程序吗? 我想使用 Google 地图在 Android 应用程序中开发相同的缓存管理。有可能吗? 有人说允许dwd ***.com/questions/23288940/… 这可以帮助其他用户dogtownmedia.com/… 【参考方案1】:

如果您尝试缓存 Google 提供的图块,则可能违反了 Google 的服务条款(除非在某些情况下,如果您购买了他们的企业 Maps API Premier)。这就是 gmapcatcher 将其从他们的列表中划掉的原因。见http://code.google.com/p/gmapcatcher/issues/detail?id=210。

在上面的 gmapcatcher URL,您还可以找到一个可以下载图块的 shell 脚本(或者它的作者说的)。

还有其他项目试图让 Google 地图离线使用:

http://code.google.com/p/ogmaps/

http://code.google.com/p/gmapoffline/

最后,如果 Google 地球可以满足您的需求,那么您可以使用它。根据http://www.google.com/permissions/geoguidelines.html,离线使用 Google 地球需要 Google 地球企业版许可证。

请注意,前一页还说:“您不得从 Google 地图或地球中抓取或以其他方式导出内容,或将其保存以供离线使用。”因此,如果您尝试缓存切片,那几乎肯定会被视为(无论如何,Google)违反了服务条款。

【讨论】:

我认为您不能为应用程序使用大量缓存,但我想知道仅供个人使用的缓存是否会违规。 仅在内存中缓存 goggle 的地图图块怎么样! 他说它的allowdwd ***.com/questions/23288940/…【参考方案2】:

不幸的是,我发现这个链接似乎表明我们无法在本地缓存这些,因此使这个问题没有实际意义。

http://support.google.com/enterprise/doc/gme/terms/maps_purchase_agreement.html

4.4 缓存限制。 客户不得预取、检索、缓存、索引或存储任何内容或服务的一部分,但客户可以存储有限数量的由于网络延迟,内容仅用于提高客户实施的性能,并且仅当客户临时、安全地以 (a) 不允许在服务之外使用内容的方式这样做; (b) 仅基于会话(一旦关闭浏览器,将禁止任何额外存储); (c) 不操纵或聚合服务的任何内容或部分; (d) 不会阻止 Google 准确跟踪页面浏览量; (e) 不以任何方式修改或调整归属。

看来我们不能合法地离线使用 Google 地图图块。

【讨论】:

【参考方案3】:

更新:

我从谷歌地图上找到了使用条款:

第 10.5 节

没有缓存或存储。您不会预取、缓存、索引或存储 在服务之外使用的任何内容,但您可以存储的内容除外 有限数量的内容仅用于改进 由于网络延迟,您的 Maps API 实现的性能 (并且不是为了阻止 Google 准确跟踪 使用),并且仅当这样的存储:是临时的(并且在任何情况下都不会更多) 超过 30 个日历日);是安全的;不操纵或聚合 内容或服务的任何部分;并且不修改归因于 任何方式。

这意味着我们实际上可以缓存有限的时间

【讨论】:

【参考方案4】:

http://www.google.com/earth/media/licensing.html 上有一个“移动”部分,其中包含:

与我们的在线条款类似,如果您使用我们的 API 或移动设备的原生 Google 地图实施(例如在 Android 手机或 iPhone 上),则不需要特别许可,但您必须始终保持 Google 名称可见. 绝不允许离线缓存我们的内容。

【讨论】:

【参考方案5】:

您可以使用 Open Street Map :您会发现数十种不同的图层和地图类型,而且完全免费。您可以下载所需的所有地图图块。当然,由于任何人都可以增强地图,它显示的信息比谷歌的地图要多。 如果您需要帮助,您可以询问也非常活跃的社区。

【讨论】:

询问 Google 到哪里询问 Google。【参考方案6】:

在 Android 平台上,Oruxmaps (http://www.oruxmaps.com) 在缓存所有 WMS 源方面做得很好。它可以在 Play 商店中找到。 我每天在偏远地区使用它,没有任何连接,就像一个魅力。

【讨论】:

以上是关于如何缓存 Google 地图图块以供离线使用?的主要内容,如果未能解决你的问题,请参考以下文章

下载特定的地图以缓存在 OSMDroid 中

如何缓存 Firebase 数据以供离线使用?

Qt/Qml:如何包含地图瓦片以供离线使用?

缓存图像以供离线使用 SDWebImage

如何在flutter mobile中保存网站以供离线使用

如何在 JavaScript 中保存网站以供离线使用