Ich versuche eine lokale Kopie eines TileJSON in einer iOS App durch Cordova zu implementieren. Das Problem, das ich habe, ist, dass OpenLayers die JSON-Datei nicht als gültig erkennt und somit keine Kacheln anzeigt. Ich habe versucht, lokale und Remote-Versionen der gleichen TileJSON und schaute auf die Console Logs, die lokale hat den Status "Fehler" (aber keine Erklärung, was dieser Fehler sein könnte ...).OpenLayers: Laden eines TileJSON aus einer lokalen Datei
Ich denke, das Problem liegt an der Tatsache, dass die JSON-Datei mit einem file:
URL statt http:
geladen wird. Ich habe die JSON-Datei auf einen Remote-Server gestellt und das lädt nicht nur gut, sondern lädt die Kacheln aus dem lokalen Pfad.
Können OpenLayers dazu verleitet werden, die lokale Datei als gültige JSON-Datei zu akzeptieren? Kann Cordova gezwungen werden, lokale Dateien über HTTP zu laden? Ich denke, dass eine dieser Optionen das Problem beheben würde.
Dank
EDIT: Hier ist der Code, den ich die TileJSON laden bin mit:
var mapLayer = new ol.layer.Tile({
source: new ol.source.TileJSON({
url: getPhoneGapPath() + 'tiles.json',
crossOrigin: 'anonymous'
})
});
this.map.addLayer(mapLayer);
function getPhoneGapPath() {
var path = window.location.pathname;
path = path.substr(path, path.length - 10);
return path;
}
Die getPhoneGapPath()
Funktion den Pfad zur Webroot der Cordova App bekommen verwendet wird.
Bitte zeigen Sie mir Ihren Code, durch den Sie Tilejson-Datei gelesen werden. –
I Hassan, ich habe die Frage mit dem Code aktualisiert, der den lokalen TileJSON lädt. Es gibt nichts wirklich Außergewöhnliches mit diesem Code (abgesehen von der Pfadfunktion, die die JSON-Datei lädt, sie wird einfach nicht von OpenLayers verarbeitet). –