在我的应用程序中存储地图图块

时间:2013-08-06 09:28:26

标签: android ios map cordova tile

我正在使用PhoneGap(3.0)来构建Android / iOS应用程序。

该应用程序围绕地图进行,我得出的结论是,从像OpenStreetMap这样的远程服务加载切片太慢,并且过分依赖于3G。

有没有办法在我的应用程序中存储切片?
如果是,我在哪里可以找到一些文档,代码片段等?

1 个答案:

答案 0 :(得分:0)

这取决于您是计划使用自己的自定义地图还是想要使用第三方地图服务,因此希望将其磁贴脱机缓存。

在第一种情况下,我对此有一些经验;我制作了一系列引导式漫游应用程序,它们使用我在Adobe Illustrator中绘制的大型自定义地图。有关详细信息,请参阅我的stackoverflow question and subsequent answer,但总之,我使用了一个名为pngnq的工具来创建我的地图的高度压缩的256色8位PNG图块,这些图块足够小,可以捆绑多个缩放级别的图块以及每个应用程序。我最终实现了一个自定义映射解决方案,以便在较旧的Android设备上使用我的Phonegap应用程序时实现足够快的地图滚动和缩放性能。

在后一种情况下,如果您计划离线存储第三方图块,则应首先检查您是否违反了使用条款 - 某些地图提供商明确禁止对其地图数据进行离线缓存。

假设这没关系,您可以考虑使用leafletjs为地图供电。您可以在HTML5离线地图和this blog article上查看this Phonegap-specific one。两者都在GitHub上提供了概念验证应用程序的链接,其中源代码可用。

希望这有帮助!