1

我目前正在开发一个 android 应用程序,该应用程序具有使用 phonegap、cloudmade 和传单的地图。有没有办法以某种方式缓存安卓手机上的地图图块?每次从服务器加载地图图块都很慢。

4

1 回答 1

2

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

Web 和 phonegap 存储:

  1. loacalstorage- 同步,易于使用 base64 url​​ 实现,小尺寸 2.5-5MB(可能 phonegap 解决localstorage小尺寸问题)。
  2. indexed dbweb sql- 异步,大小 50 MB(也许更多)。
  3. phonegap 文件存储 - 异步。

如何实现:

编写可以与您的存储一起使用的自己的层,对于异步 API 来说可能会很困难。

您始终可以使用 base64 编码将 tile 存储为数据 url。您可以使用 JS 和画布将服务器 url 的图像转换为数据 url。

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

对于异步 API,您始终可以通过以下方式检测您的图块zoomlatitude并且longitude:插入带有zoom_lat_lngid 和 fake的假src图块,通过此 id 检查存储中的图块,如果找到图块 - 加载它,否则从带有缓存的服务器加载。

UPD:请参阅我的带有索引数据库和 web sql 的缓存解决方案,例如: https ://github.com/tbicr/OfflineMap/tree/master/leaflet_idb_sql_site和示例http://tbicr.github.com/OfflineMap/leaflet/index。 html(现在在 android 上不快)。

于 2013-02-19T15:56:01.203 回答