我目前正在开发一个 android 应用程序,该应用程序具有使用 phonegap、cloudmade 和传单的地图。有没有办法以某种方式缓存安卓手机上的地图图块?每次从服务器加载地图图块都很慢。
问问题
1884 次
1 回答
2
这只是理论上的考虑,我不知道传单的工作实现。但是我有一些问题,但现在没有时间解决它。
Web 和 phonegap 存储:
loacalstorage
- 同步,易于使用 base64 url 实现,小尺寸 2.5-5MB(可能 phonegap 解决localstorage
小尺寸问题)。indexed db
和web sql
- 异步,大小 50 MB(也许更多)。- phonegap 文件存储 - 异步。
如何实现:
编写可以与您的存储一起使用的自己的层,对于异步 API 来说可能会很困难。
您始终可以使用 base64 编码将 tile 存储为数据 url。您可以使用 JS 和画布将服务器 url 的图像转换为数据 url。
如果您可以使用磁贴预加载最简单的方式来使用文件存储,因为您可以只使用指向文件系统上磁贴的链接。
对于异步 API,您始终可以通过以下方式检测您的图块zoom
,latitude
并且longitude
:插入带有zoom_lat_lng
id 和 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 回答