私はCordovaを使ってiOSアプリケーションにTileJSONのローカルコピーを実装しようとしています。私が抱えている問題は、OpenLayersがJSONファイルを有効であると認識せず、タイルを表示しないということです。私は同じTileJSONのローカルとリモートバージョンを試して、コンソールログを見ましたが、ローカルのものは "エラー"のステータスを持っています(しかし、そのエラーが何であるかについての説明はありません...)。OpenLayers:ローカルファイルからTileJSONをロードする
http:
ではなく、file:
というURLを使用してJSONファイルがロードされているという問題が発生していると思います。 JSONファイルをリモートサーバーに配置しましたが、これは正常にロードされるだけでなく、実際にはローカルパスからタイルをロードします。
OpenLayersはローカルファイルを有効なJSONファイルとして受け入れることを騙されますか? CordovaはHTTP経由でローカルファイルを強制的にロードできますか?私はこれらのオプションのいずれかが問題を解決すると思います。
おかげ
EDIT:getPhoneGapPath()
機能はコルドバアプリのWebルートへのパスを取得するために使用され
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;
}
:ここで私はTileJSONをロードするために使用しているコードがあります。
私はtilejsonファイルを読むあなたのコードを教えてください。 –
私はハッサン、ローカルのTileJSONをロードするコードで質問を更新しました。 JSONファイルをロードするパス関数を除いて、このコードでは本当に普通のことは何もありません.OpenLayersでは処理されません。 –