0
오픈 코드 2를 사용하여 캐시 쓰기 및 읽기 코드를 가지고 있습니다. 오픈 레이어 3을 업그레이드 중입니다. 도와주세요오픈 레이어 3는 오픈 레이어 2와 같은 OL.Control.CacheWrite를 가지고 있으며, 오픈 레이어 3에서 사용할 수있을 때 사용할 수없는 경우
오픈 코드 2를 사용하여 캐시 쓰기 및 읽기 코드를 가지고 있습니다. 오픈 레이어 3을 업그레이드 중입니다. 도와주세요오픈 레이어 3는 오픈 레이어 2와 같은 OL.Control.CacheWrite를 가지고 있으며, 오픈 레이어 3에서 사용할 수있을 때 사용할 수없는 경우
OpenLayers 3는 다른 접근 방식을 사용합니다. 타일 레이어에 대해 맞춤 tileLoadFunction
을 구성 할 수 있습니다. Image
에 직접 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 카드에서 타일에 액세스하는 방법은 다른 이야기이며 플랫폼과 OS에 따라 다릅니다. – ahocevar