OpenLayers 2.13.1:从多几何特征中删除一个几何
OpenLayers 2.13.1: deleting a geometry from a multigeometry feature
例如,我有一个由两个多边形组成的多多边形。我可以用modifyFeature控件和delete键删除顶点。然而,modifyFeature控件不允许我完全删除一个多边形,因为它必须包含至少3个顶点。如何从多多边形特征中完全删除多边形(使用delete键)?是否有适当的控件或插件可用于OpenLayers?
我试着自己修补控件,但这导致了多个小错误。所以我想在我花大量时间解决问题之前,我应该先问一下是否有人已经这样做了。
removeComponent: function(point) {
var removed = this.components && (this.components.length > 3);
if (removed) {
//remove last point
this.components.pop();
//remove our point
OpenLayers.Geometry.Collection.prototype.removeComponent.apply(this,
arguments);
//append copy of first point
var firstPoint = this.components[0];
OpenLayers.Geometry.Collection.prototype.addComponent.apply(this,
[firstPoint]);
//bm extension: possibility to delete geometry from multigeometries
} else if (this.components && this.parent && this.parent.parent && this.parent.parent.CLASS_NAME === "OpenLayers.Geometry.MultiPolygon") {
//polygon with hole
if (this.parent.components.length > 1) {
for (var i = 0; i < this.parent.components.length && this.parent.components.length > 1; i++) {
if (this.parent.components[i].id === this.id) {
OpenLayers.Util.removeItem(this.parent.components, this.parent.components[i]);
this.parent.clearBounds();
return true;
}
}
}
//seperate polygon
for (var i = 0; i < this.parent.parent.components.length && this.parent.parent.components.length > 1; i++) {
if (this.parent.parent.components[i].id === this.parent.id) {
OpenLayers.Util.removeItem(this.parent.parent.components, this.parent.parent.components[i]);
this.parent.parent.clearBounds();
return true;
}
}
}
return removed;
},
相关文章:
- 使用php或javascript从facebook相册URL中删除多余的部分
- RegEx删除空属性?例如,如果(class=“”||class=“”)移除;否则就下课
- 如何删除多行HTML排列中的空白
- 如何从rails中的代码中删除新行( )
- 删除对HTML元素的拖动
- 当图像转换为本地存储的DataURL时,EXIF被删除
- 按顺序添加和删除类
- iframe正在添加标签,需要删除它们
- 如何在HTML输入字段中添加不可删除的后缀
- addData()从最新图表中删除.js 2.1.3-怎么了
- 如何覆盖锚点元素's href目标,并在我点击转到目标javascript时删除其他错误
- 删除CKEditor工具栏按钮,但不删除功能
- 当浏览器上的后退按钮到达主页时,我需要删除Class
- 正在删除node.js中已验证的网站
- 正在从页面中删除iframe
- 如何从 HTML 查询中删除项目
- 如何在iOS应用程序中从Firebase中删除超过6小时的数据
- 未捕获的类型错误:无法读取属性'删除'的未定义
- 删除数据层的所有特征
- OpenLayers 2.13.1:从多几何特征中删除一个几何