OpenLayers 3:“无法获取未定义或空引用的属性'leaf'。”

时间:2015-08-21 13:32:06

标签: add layer openlayers-3

使用Open layers 3.7.0。 我有图层功能。我删除一个,构建一个新的类似的,添加新的,我收到错误消息 “无法获取未定义或空引用的属性'leaf'。”

我搜索了可能导致这种情况的原因,但搜索没有给出任何结果。

来自同一错误的更多内容(我在这里使用v3.8.2但完全相同:    在rbush.prototype._chooseSubtree(http://openlayers.org/en/v3.8.2/build/ol-debug.js:70778:13)    在rbush.prototype._insert(http://openlayers.org/en/v3.8.2/build/ol-debug.js:70815:9

在rbush.prototype.insert(http://openlayers.org/en/v3.8.2/build/ol-debug.js:70623:19) 在ol.structs.RBush.prototype.insert(http://openlayers.org/en/v3.8.2/build/ol-debug.js:71178:3) at ol.source.Vector.prototype.addFeatureInternal(http://openlayers.org/en/v3.8.2/build/ol-debug.js:71589:7) 在ol.source.Vector.prototype.addFeature(http://openlayers.org/en/v3.8.2/build/ol-debug.js:71566:3

进度

在我们构建该功能的地方,我们有一个投影。

var lineString = new ol.geom.LineString(coordinates);
lineString.transform("EPSG:4326", "EPSG:3857");
var feature = new ol.Feature(lineString);
(...)

如果我们评论/删除

//lineString.transform("EPSG:4326", "EPSG:3857");

然后没有错误。顺便说一句,这是一个提示,而不是解决方案,因为这些功能不在应有的位置。

找到解决方案

我不认为这是一个完美的解决方案,但我通过将LineStrings保存在内存而不是重新创建它来解决了有关或应用的问题。 然后我仍然从现有的LineString重新创建特征。

1 个答案:

答案 0 :(得分:0)

我在控制台上遇到了同样的错误,如果功能有一个有效的几何(坐标),我就解决了这个测试,所以我放弃了在图层源上包含无效功能。