实现空间编辑,主要是为了手动的纠偏不在道路上的设备设施。
首先FLEX的右键功能是不能够实现开启空间编辑的功能,因为flex右键开启的时候,会导致键盘的输入法不能够切换成汉字,还有一系列的问题。
所以,后来我采用了左键弹出一个界面,界面上有开启空间编辑,和关闭空间编辑两个按钮。这两个按钮实际上对应的editor变量。
当开启编辑的时候 我们需要修改在图层添加GRAPHIC_ADD事件中代码
if(Config.editor ==true){
//添加图层事件
event.graphic.addEventListener(MouseEvent.CLICK, function (e:MouseEvent):void{
if(null!=historygraphic){
historygraphic.filters=null;
}
//然后获取graphic对象
selectedGraphic = Graphic(e.currentTarget);
selectedGraphic.filters= [filters];
historygraphic =selectedGraphic;
var editTool:EditTool = new EditTool();
editTool.map=map;
editTool.activate(EditTool.EDIT_VERTICES | EditTool.MOVE,[selectedGraphic]);
editTool.addEventListener(EditEvent.VERTEX_ADD,editTool_vertexAddDeleteMoveHandler);
editTool.addEventListener(EditEvent.VERTEX_DELETE,editTool_vertexAddDeleteMoveHandler);
editTool.addEventListener(EditEvent.VERTEX_MOVE_STOP,editTool_vertexAddDeleteMoveHandler);
editTool.addEventListener(EditEvent.GRAPHICS_MOVE_STOP,editTool_graphicsMoveHandler);
然后创建编辑图层的工具。
function applyEdits(gr:Graphic):void
{
selectedGraphic=gr;
然后在这里面调用后台方法,
FeatureLayer(gr.graphicsLayer).applyEdits(null, [ gr ], null);
}