为什么大的 eojson 没有显示在 Here Map 上?
Why does large eojson not get displayed on Here Map?
我正在尝试使用 VueJs 应用程序中的 JavaScript API 在 Here 地图上解析和显示英国邮政编码区的 geojson 表示。
代码比较简单——districtGeojson就是JSON文件。初始化并显示地图后调用以下函数:
processGeojson() {
const reader = new H.data.geojson.Reader(districtGeojson, {
disableLegacyMode: true
});
reader.parse();
const layer = reader.getLayer();
this.shapes = layer;
console.log(layer.isValid(7));
try {
this.map.addLayer(layer);
} catch (err) {
console.log('err adding layer', err);
}
}
如您所见,其中有一个 console.log() 用于检查图层在默认缩放级别下的有效性,它 returns 为真。
我只看到地图闪烁了一下,然后显示了普通地图。有没有办法从 API 那里得到一些关于出了什么问题的反馈,它似乎只是默默地失败了 - addLayer 没有抛出异常?
如有必要,我可以分享 JSON 文档,但由于它很大 (5Mb),我想先看看这段代码是否有明显的错误。
因此,此处的文档中似乎可能存在错误:https://developer.here.com/documentation/maps/3.1.17.0/api_reference/H.data.geojson.Reader.html#getLayer
其中指出:
var reader = new H.data.geojson.Reader('/path/to/geojson/file.json');
reader.parse();
// Assumption: map already exists
map.addLayer(reader.getLayer());
而对我有用的是调用 parseData() 而不是 parse() 来传递源数据。我能做到:
var reader = new H.data.geojson.Reader('');
reader.parseData(districtGeojson);
// Assumption: map already exists
map.addLayer(reader.getLayer());
但不是
var reader = new H.data.geojson.Reader('./Districts.json');
reader.parse();
// Assumption: map already exists
map.addLayer(reader.getLayer());
这就引出了为什么构造函数中需要文件路径的问题,因为我无法让 reader 解析在构造函数中作为路径传递的数据。
我正在尝试使用 VueJs 应用程序中的 JavaScript API 在 Here 地图上解析和显示英国邮政编码区的 geojson 表示。
代码比较简单——districtGeojson就是JSON文件。初始化并显示地图后调用以下函数:
processGeojson() {
const reader = new H.data.geojson.Reader(districtGeojson, {
disableLegacyMode: true
});
reader.parse();
const layer = reader.getLayer();
this.shapes = layer;
console.log(layer.isValid(7));
try {
this.map.addLayer(layer);
} catch (err) {
console.log('err adding layer', err);
}
}
如您所见,其中有一个 console.log() 用于检查图层在默认缩放级别下的有效性,它 returns 为真。
我只看到地图闪烁了一下,然后显示了普通地图。有没有办法从 API 那里得到一些关于出了什么问题的反馈,它似乎只是默默地失败了 - addLayer 没有抛出异常?
如有必要,我可以分享 JSON 文档,但由于它很大 (5Mb),我想先看看这段代码是否有明显的错误。
因此,此处的文档中似乎可能存在错误:https://developer.here.com/documentation/maps/3.1.17.0/api_reference/H.data.geojson.Reader.html#getLayer
其中指出:
var reader = new H.data.geojson.Reader('/path/to/geojson/file.json');
reader.parse();
// Assumption: map already exists
map.addLayer(reader.getLayer());
而对我有用的是调用 parseData() 而不是 parse() 来传递源数据。我能做到:
var reader = new H.data.geojson.Reader('');
reader.parseData(districtGeojson);
// Assumption: map already exists
map.addLayer(reader.getLayer());
但不是
var reader = new H.data.geojson.Reader('./Districts.json');
reader.parse();
// Assumption: map already exists
map.addLayer(reader.getLayer());
这就引出了为什么构造函数中需要文件路径的问题,因为我无法让 reader 解析在构造函数中作为路径传递的数据。