6

是否有一个很好的教程,介绍如何使用TileCache预先缓存地图的已知部分,将它们存储在PhoneGap移动应用程序数据库中并使用OpenLayers加载它们?使用OpenLayers和TileCache在PhoneGap上离线地图

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

回答

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)。您可以将模式更改为。

您可以使用目录结构在本地存储地图切片,以匹配服务器切片并将tileLayer指向切片的本地位置。有一件事需要记住,但是如果你把他们的瓷砖全部擦去然后存储在本地,一些地图瓷砖供应商会感到不安。如果您编写的应用鼓励大量使用该应用的人执行此操作,他们将会感到特别不安。这样的应用很可能会很快被阻止。例如,请参阅http://wiki.openstreetmap.org/wiki/Tile_usage_policy。您始终可以将自己的图块呈现在本地。