【问题标题】:How to make map tiles load more efficiently using leaflet with an android app?如何使用带有 android 应用程序的传单更有效地加载地图图块?
【发布时间】:2013-02-11 16:28:12
【问题描述】:

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

【问题讨论】:

  • 有很多答案可能对您有所帮助。搜索phonegap speeding

标签: android cordova map tiles leaflet


【解决方案1】:

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

Web 和 phonegap 存储:

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

如何实现:

编写自己的层来处理你的存储,异步 API 可能会很困难。

您始终可以使用 base64 编码将 tile 存储为数据 url。可以通过服务器 url 将图片通过 JS 和 canvas 转换为数据 url。

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

对于异步 API,您始终可以通过 zoomlatitudelongitude 检测您的图块:插入具有 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 上不快)。

【讨论】:

    猜你喜欢
    • 2015-06-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-07-03
    • 2013-10-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多