2016-07-21 6 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

'getItem'と' setItem'を 'localStorage'で使います。 SDカードのタイルにアクセスする方法は、別の話ですが、プラットフォームとOSによって異なります。 – ahocevar

関連する問題