如何caching谷歌地图瓷砖离线使用?

像诺基亚的OVI地图可以离线使用,也必须有某种方法来cachingGoogle地图瓦片。 任何提示?

如果您试图cachingGoogle提供的图块,这可能违反了Google的服务条款(除非在某些情况下,购买了企业版Maps API专业版)。 这就是为什么gmapcatcher已经从他们的名单中删除。 请参阅http://code.google.com/p/gmapcatcher/issues/detail?id=210

在上面的gmapcatcher URL中,您还将find一个可以下载tile的shell脚本(或者其作者所说的)。

还有其他一些尝试使Google地图脱机的项目:

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

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

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

请注意,前一页也说:“您不可以从Google地图或地球上刮取或以其他方式导出内容,或将其保存为脱机使用。” 因此,如果您尝试caching切片,则几乎可以肯定地(通过Google)认为这违反了服务条款。

不幸的是,我发现这个链接似乎表明我们不能caching这些本地,因此使这个问题没有意义。

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

4.4caching限制。 客户不得预取,检索, caching ,索引或存储任何内容或部分服务,但客户可能仅存储有限数量的内容,仅用于提高客户实施的性能 ,而且仅由于networking延迟如果客户暂时,安全地以及(a)不允许在服务之外使用内容, (b)仅基于会话(一旦浏览器closures,任何额外的存储被禁止); (c)不会操纵或汇总任何内容或部分服务; (d)并不妨碍Google精确跟踪网页浏览量; (e)不以任何方式修改或调整归因。

所以看起来我们不能在法律上离线使用Google地图磁贴。

更新:

我从Google Map中find了使用条款:

10.5节

没有caching或存储。 您不会预先获取,caching,索引或存储要在服务之外使用的任何内容,除非您可能因为networking延迟而仅用于提高您的Maps API实现的性能而存储有限量的内容(不是为了防止Google准确地跟踪使用情况),并且只有在这种存储是临时性的(并且在任何情况下不得超过30个日历天)的情况下。 是安全的; 不会操纵或聚合内容或服务的任何部分; 并不以任何方式修改归因。

这意味着我们可以实际caching有限的时间

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

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

你想要使用空间索引。 它将二维复杂度降低到一维复杂度,并在许多地图应用中使用。 你可以在phpclasses.org上下载我的php类hilbert曲线。 更容易的是z曲线。 将x和y坐标转换为二进制,然后连接两个值。 上限是最显着的位。 然后使用磁盘上的文件夹结构,例如:1/2/3 / / 4是第一级磁贴的path。

你可以使用开放的街道地图:你会发现几十个不同的图层和地图types,这是完全免费的。 你可以下载所有你想要的地图。 当然,任何人都可以改进地图,它显示比Google地图更多的信息。 如果你需要帮助,你可以问社区也很活跃。

在Android平台上,Oruxmaps( http://www.oruxmaps.com )在caching所有WMS源时做得非常好。 它在游戏商店中可用。 我每天在偏远地区使用它,没有任何连通性,像魅力一样工作。