【发布时间】:2016-07-27 12:32:25
【问题描述】:
我正在尝试通过 Cordova 在 iOS 应用程序中实现 TileJSON 的本地副本。我遇到的问题是 OpenLayers 似乎没有将 JSON 文件识别为有效,因此没有显示任何图块。我已经尝试过相同 TileJSON 的本地和远程版本,并查看了控制台日志,本地版本的状态为“错误”(但没有解释该错误可能是什么......)。
我认为问题在于 JSON 文件是使用file: URL 加载的,而不是http:。我已将 JSON 文件放在远程服务器上,这不仅可以正常加载,而且实际上可以从本地路径加载图块。
可以欺骗 OpenLayers 接受本地文件作为有效的 JSON 文件吗?是否可以强制 Cordova 通过 HTTP 加载本地文件?我认为这些选项中的任何一个都可以解决问题。
谢谢
编辑:这是我用来加载 TileJSON 的代码:
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;
}
getPhoneGapPath() 函数用于获取 Cordova 应用程序的 webroot 的路径。
【问题讨论】:
-
请告诉我你的代码,你是通过它读取 tilejson 文件的。
-
我是哈桑,我已经用加载本地 TileJSON 的代码更新了问题。这段代码并没有什么特别之处(除了加载 JSON 文件的路径函数,它只是不被 OpenLayers 处理)。
标签: ios json cordova openlayers-3