2

我正在使用 PhoneGap 使用 OpenLayers 和 WMS 服务在 HTML/JS (TypeScript) 中开发移动应用程序。我需要预先缓存某些区域,以便应用程序离线工作。

我在 OpenLayers 中使用了来自 CacheWrite 和 CacheRead 控件的代码来实现我自己的自定义处理程序。这使我可以控制要使用的存储(SQLite 而不是 localStorage),具有循环缓存大小限制而不是基于配额(在缓存中保留 x 最后一个切片),并为存储选择“容器”,这样我就可以区分“普通缓存”和“预加载缓存”。这个想法是让用户选择特定于预缓存的区域。

为了预缓存区域,我尝试将带有“visible:false”的 WMS 图层添加到现有地图并连接到该图层的“loadend”事件。我还尝试使用“OpenLayers.Strategy.Fixed”并将其“preload”属性设置为 true。

我的问题是 OpenLayers 不下载(不可见)层。它在其他层上运行良好。

我的地图中有一个“切换地图”按钮(与隐藏的预缓存层无关),如果我使用它,则会触发“加载结束”事件。“切换地图”本质上是删除显示地图的旧 WMS 图层,然后添加具有新 URL 的新图层(新 WMS 图层)。

如何使用 OpenLayers 预加载(预缓存)地图?

4

0 回答 0