我正在使用 PhoneGap (3.0) 来构建 Android/iOS 应用程序。
该应用程序围绕地图展开,我得出的结论是,从远程服务(例如 OpenStreetMap)加载图块太慢了,并且过于依赖 3G。
有没有办法在我的应用程序中存储图块?
如果是,我在哪里可以找到一些文档、代码片段等?
这取决于您是计划使用自己的自定义地图还是想要使用 3rd 方地图服务并因此想要离线缓存他们的切片。
在第一种情况下,我对此有一些经验;我制作了一系列引导步行应用程序,这些应用程序使用我在 Adobe Illustrator 中绘制的大型自定义地图。有关详细信息,请参阅我的stackoverflow 问题和后续答案,但总的来说,我使用了一个名为pngnq的工具来为我的地图创建高度压缩的 256 色 8 位 PNG 图块,这些图块足够小,我可以将多个缩放级别的图块与每个应用程序捆绑在一起. 我最终实现了一个自定义地图解决方案,以便在旧 Android 设备上使用我的 Phonegap 应用程序时实现足够快的地图滚动和缩放性能。
在后一种情况下,如果您计划离线存储第 3 方图块,则应首先检查您是否违反了使用条款 - 一些地图提供商明确禁止离线缓存其地图数据。
假设这没问题,您可能需要考虑使用Leafletjs来为您的地图提供动力。您可能想查看这篇关于 HTML5 离线映射的博客文章和这个 Phonegap 特定的文章。两者都有指向 GitHub 上提供源代码的概念验证应用程序的链接。
希望这可以帮助!