如何使用Android应用程序的传单更有效地加载地图图块?

时间:2013-02-11 16:28:12

标签: android cordova map tiles leaflet

我目前正在开发一个Android应用程序,其中包含使用phonegap,cloudmade和leaflet的地图。有没有办法可以以某种方式缓存Android手机上的地图图块?每次从服务器加载地图图块都很慢。

1 个答案:

答案 0 :(得分:2)

这只是理论上的考虑,我不知道传单的工作实现。但是我有一些问题,但现在没时间解决它。

网络和手机存储空间:

  1. loacalstorage - 同步,易于使用base64网址实现,小尺寸2.5-5MB(可能是phonegap解决localstorage小尺寸问题)。
  2. indexed dbweb sql - 异步,大小为50 MB(可能更多)。
  3. phonegap文件存储 - 异步。
  4. 如何实施:

    编写适用于您的存储的自己的层,可能对异步API很困难。

    您始终可以使用base64编码将磁贴存储为数据网址。您可以使用JS和canvas将服务器URL的图像转换为数据URL。

    如果您可以使用磁贴预加载最简单的方式来使用文件存储,因为您只需使用指向文件系统上磁贴的链接。

    对于异步API,您始终可以通过zoomlatitudelongitude检测到您的磁贴:插入带有zoom_lat_lng ID和假src的假磁贴,检查如果找到tile,则在此存储区中存储 - 加载它,否则从服务器加载缓存。

    UPD :例如,查看带有索引db和web sql的缓存解决方案: https://github.com/tbicr/OfflineMap/tree/master/leaflet_idb_sql_site和示例http://tbicr.github.com/OfflineMap/leaflet/index.html(现在安卓速度不快)。