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

时间:2012-02-29 13:27:59

标签: cordova openlayers mobile-application offline-caching tilecache

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

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

1 个答案:

答案 0 :(得分:1)

如果您有自己的图块并将它们嵌入到应用程序存档中,则可以使用Leaflet呈现本地图块。 http://leafletjs.com/
如果您的自定义磁贴是远程的(托管在服务器上),那么您仍然无法在脱机方案中使用它们。
请查看this博客。

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

例如:
默认值:

// 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);

离线:


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

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

您可以使用目录结构在本地存储地图图块以匹配服务器1,并将tileLayer指向图块的本地位置。但有一点需要注意的是,一些地图图块的提供者如果你把他们的瓷砖集中在一起然后在本地存储就会感到不安。如果您编写的应用程序鼓励使用该应用程序的许多人执行此操作,他们将特别沮丧。这样的应用程序可能会很快被阻止。例如,请参阅http://wiki.openstreetmap.org/wiki/Tile_usage_policy。您始终可以渲染自己的图块以在本地保存。