Openlayers ol.interaction.Modify
背景
在Openlayers中, 我们可以添加可编辑的点, 线, 多边形对象, 也可以拿到编辑结束后的回调事件, 但是在官方文档中, (应该是我疏忽)并没有找到在编辑完成的事件中, 怎么获取到编辑之后的经纬度数据, 经过自己调试, 找到了对应的取值地方.
添加修改对象
this.modify = new ol.interaction.Modify({source: this.modify_source});
map.addInteraction(this.modify);
this.modify.on('modifyend', this.ModifyIconEnd);
都是在modifyend对应的回调方法中,获取到修改之后的经纬度数据
点
this.ModifyIconEnd =function(evt){
var extent = evt.features.item(0).getGeometry().getExtent();
}
其中extent[0], extent[1]就是修改后的经纬度坐标
线
this.ModifyLineEnd = function(evt){
var APoint = evt.features.item(0).getGeometry().A;
var arrPoints = [];
var cnt = APoint.length;
for(var i = 0; i < cnt; i++)
{
if (i == cnt - 1)
break;
arrPoints.push([APoint[i], APoint[i+1]]);
i++;
}
}
其中arrPoints就是修改后的经纬度坐标
多边形
多边形跟线的处理方法一样