使用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重新创建特征。
答案 0 :(得分:0)
我在控制台上遇到了同样的错误,如果功能有一个有效的几何(坐标),我就解决了这个测试,所以我放弃了在图层源上包含无效功能。