1

我正在为 iPad 构建一个 HTML5 应用程序,它将包含一个用于基本上下文信息的地图。我需要一些方法来有选择地离线缓存地图(即我要去一个我知道没有连接的区域,所以让我事先缓存地图的那部分)。

或者,我可以从它们的 WebSQL 存储库中渲染矢量图层,在这种情况下,我将如何将地图转换为矢量并在平移地图中显示这些矢量(即在矢量图层之间交换或添加矢量层)

提前致谢

4

4 回答 4

2

我知道在 2 月份的 OpenLayers Mobile Codesprint 期间,有些人正在尝试本地存储支持。这是他们所取得的成就的一个例子。我建议您检查jgrocha 的沙箱,看看他们所做的是否适合您的需求。

于 2011-08-02T19:51:50.950 回答
1

看起来 touchMapLite 有一些离线缓存功能。我还没有深入了解它的工作情况(或是否),但您可以在代码中看到填充和检索缓存地图图块的示例

http://sourceforge.net/projects/touchmaplite/

于 2011-12-08T20:15:03.457 回答
1

我已经使用 cloudmade tms 层一起完成了这项工作,并从 openlayers 沙箱中获得了一些灵感。

简而言之,您必须将层的 async 属性设置为 true 并为该层提供 getURLasync 方法。在这种方法中,您可以检查图层是否在本地存储/网络数据库中,否则可以从网络加载图块。

getURLasync 方法将图像作为属性,用户可以将其转换为 dataurl 字符串,如果离线缓存中不存在切片,则需要该字符串来存储切片。

你可以在这里找到一些示例代码:http: //allartk.nl/content/html5-offline-mapping

于 2011-12-26T22:53:33.993 回答
0

我使用了一个名为 OffMaps 的 ipod touch 应用程序。它会缓存您直接在 ipod 上看到的所有内容,然后您可以稍后在没有 wifi 时使用地图程序,并且这些图块仍然存在。不知道他们是怎么做到的,但事实证明这是可能的。

于 2011-12-24T00:35:41.093 回答