Openlayers 开放层3是否具有与开放层2类似的OL.Control.CacheWrite,如果在我们预期开放层3中可用时它现在不可用
我有使用开放层2的缓存写和读代码,现在我正在升级开放层3。请帮助OpenLayers 3使用不同的方法。您可以为平铺层配置自定义的Openlayers 开放层3是否具有与开放层2类似的OL.Control.CacheWrite,如果在我们预期开放层3中可用时它现在不可用,openlayers,openlayers-3,Openlayers,Openlayers 3,我有使用开放层2的缓存写和读代码,现在我正在升级开放层3。请帮助OpenLayers 3使用不同的方法。您可以为平铺层配置自定义的tileLoadFunction:不必直接在图像上设置src,您可以在首选存储(LocalStorage,IndexDB,…)中查找url,并在可用时提取它,或者在需要时存储它 大概是这样的: new ol.source.TileImage({ tileLoadFunction: function(tile, src) { // try to fetch
tileLoadFunction
:不必直接在图像上设置src
,您可以在首选存储(LocalStorage,IndexDB,…)中查找url,并在可用时提取它,或者在需要时存储它
大概是这样的:
new ol.source.TileImage({
tileLoadFunction: function(tile, src) {
// try to fetch from local storage
var dataURI = localStorage.getItem(src);
if (dataURI) {
// use cached version
tile.getImage().src = dataURI;
} else {
// load image data
var client = new XMLHttpRequest();
client.open('GET', src);
client.onload(function() {
var data = 'data:image/png;base64,' +
btoa(unescape(encodeURIComponent(this.responseText));
// use the image data we just loaded
tile.getImage().src = data;
// save image data to the cache for later reuse
localStorage.setItem(src, data);
});
client.send();
}
}
// ...
});
实际上,我们正在构建一个混合应用程序,并致力于添加离线磁贴加载功能。如何在移动设备中访问本地磁贴。我们计划从SD卡加载本地磁贴。开放层SRc需要服务地址。您可以在localStorage
上使用getItem
和setItem
。如何访问SD卡上的磁贴是另一回事,取决于平台和操作系统。