2016-07-21 13 views

Antwort

0

OpenLayers 3 verwendet einen anderen Ansatz. Sie können eine benutzerdefinierte tileLoadFunction für Kachel-Layer konfigurieren: Statt die src direkt auf Image zu setzen, können Sie die URL in Ihrem bevorzugten Speicher (LocalStorage, IndexDB, ...) suchen und sie holen, falls verfügbar oder speichern Sie sie wenn Sie möchte.

Etwas wie folgt aus:

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

Eigentlich bauen wir eine Hybrid-App und offline arbeiten Kachel Die Funktionen zum Laden auf Hinzufügen. Wie können wir im Mobilgerät auf lokale Kacheln zugreifen? Wir planen, lokale Kacheln von der SD-Karte zu laden. Open Layer SRc benötigt die Serving-Adresse. –

+0

Sie verwenden 'getItem' und' setItem' in 'localStorage'. Wie Sie auf Kacheln auf SD-Karten zugreifen, ist eine andere Geschichte und hängt von der Plattform und dem Betriebssystem ab. – ahocevar