PhoneGap上的离线地图使用OpenLayers和TileCache

asp*_*des 6 mobile-application openlayers offline-caching tilecache cordova

是否有关于如何使用TileCache预缓存地图的已知部分的良好教程,将它们存储在PhoneGap移动应用数据库中并使用OpenLayers加载它们?

我经历了很多教程,但我还没有想出办法一起做所有这些.

May*_*ari 1

如果您有自己的图块并将它们嵌入到您的应用程序存档中,则可以使用 Leaflet 来渲染本地图块。http://leafletjs.com/
如果您的自定义图块是远程的(托管在服务器上),那么您仍然无法在离线场景中使用它们。
请看看这个博客。

是的,完全可以离线使用传单图块,只需将图块使用的路径更改为本地路径即可。

例如:
默认:

// add a CloudMade tile layer with style #997
L.tileLayer('http://{s}.tile.cloudmade.com/[API-key]/997/256/{z}/{x}/{y}.png', {
    attribution: 'Map data'
}).addTo(map);
Run Code Online (Sandbox Code Playgroud)

离线 :


L.tileLayer('file://path_to_your_tiles/{z}{x}{y}.png', {
    attribution: 'Map data'
}).addTo(map);
Run Code Online (Sandbox Code Playgroud)

只需确保您的图块以相同的模式命名(例如:6_17_15.png)。您可以将图案更改为。

您可以使用与服务器相匹配的目录结构在本地存储地图图块,并将您的tileLayer 指向图块的本地位置。但需要记住的一件事是,如果您将他们的图块全部刮掉然后存储在本地,一些地图图块提供商会感到不安。如果您编写的应用程序鼓励许多使用该应用程序的人这样做,他们会特别沮丧。这样的应用程序很可能很快就会被屏蔽。例如,请参阅http://wiki.openstreetmap.org/wiki/Tile_usage_policy 。您始终可以渲染自己的图块以在本地保存。