cordova - 使用 OpenLayers 和 TileCache 在 PhoneGap 上离线 map

标签 cordova openlayers mobile-application offline-caching tilecache

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

我经历了很多教程,但我仍然没有找到将所有这些一起做的方法。

最佳答案

如果您有自己的磁贴并将它们嵌入到您的应用程序存档中,则可以使用 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)。您可以将模式更改为。

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

关于cordova - 使用 OpenLayers 和 TileCache 在 PhoneGap 上离线 map ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9500020/

相关文章:

jquery - 如何将 jquery 库添加到 Netbeans 8.1 项目

javascript - 如何在 OpenLayers 中动态调整 Heatmap.js 中的缩放

openlayers - ZoomToExtent OpenLayers 3

google-maps - 适用于移动设备的 openlayers

java - Android 是否允许后台应用程序在正在运行的应用程序上打开 View ?

android - 支持可穿戴设备的应用程序未出现在 Play 商店中,并且所有设备都不兼容

android - ionic 清新剂无法正常工作

cordova - 如何在 Ionic 框架中添加自定义 Gulp 任务和指令

css - Phonegap 移动应用程序的独立 CSS 模板

ajax - 防止 iOS 6 缓存 Ajax POST 请求