【发布时间】:2013-02-11 16:28:12
【问题描述】:
我目前正在开发一个 android 应用程序,该应用程序使用 phonegap、cloudmade 和 Leaflet 提供地图。有没有办法以某种方式缓存安卓手机上的地图图块?每次从服务器加载地图图块都很慢。
【问题讨论】:
-
有很多答案可能对您有所帮助。搜索phonegap speeding
标签: android cordova map tiles leaflet
我目前正在开发一个 android 应用程序,该应用程序使用 phonegap、cloudmade 和 Leaflet 提供地图。有没有办法以某种方式缓存安卓手机上的地图图块?每次从服务器加载地图图块都很慢。
【问题讨论】:
标签: android cordova map tiles leaflet
这只是理论上的考虑,我不知道传单的工作实现。但是我有一些问题,但现在没有时间解决它。
Web 和 phonegap 存储:
loacalstorage - 同步,易于使用 base64 url 实现,小尺寸 2.5-5MB(可能是 phonegap 解决 localstorage 小尺寸问题)。indexed db 和 web sql - 异步,大小 50 MB(可能更多)。如何实现:
编写自己的层来处理你的存储,异步 API 可能会很困难。
您始终可以使用 base64 编码将 tile 存储为数据 url。可以通过服务器 url 将图片通过 JS 和 canvas 转换为数据 url。
如果您可以使用磁贴预加载最简单的方式来使用文件存储,因为您可以只使用指向文件系统上磁贴的链接。
对于异步 API,您始终可以通过 zoom、latitude 和 longitude 检测您的图块:插入具有 zoom_lat_lng id 和假 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 上不快)。
【讨论】: