2016-07-21 1 views

답변

0

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(); 
    } 
    } 
    // ... 
}); 
+0

는 실제로 우리가 하이브리드 응용 프로그램을 구축하고 오프라인 타일로드 기능을 추가하기 위해 노력하고 있습니다. 모바일 장치에서 로컬 타일에 액세스하는 방법. 우리는 SD 카드에서 로컬 타일을로드 할 계획입니다. 오픈 레이어 SRc에는 서브 주소가 필요합니다. –

+0

'localStorage'에'getItem'과'setItem'을 사용합니다. SD 카드에서 타일에 액세스하는 방법은 다른 이야기이며 플랫폼과 OS에 따라 다릅니다. – ahocevar