博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
ArcEngine编辑功能(一)
阅读量:7208 次
发布时间:2019-06-29

本文共 1622 字,大约阅读时间需要 5 分钟。

  我已经出离的愤怒了,对于这个问题一年半以前曾经研究过,上过学期又回过头来弄过,但是到现在我仍然没有像样的把这个问题解决掉!所以下定决心抽一点时间把这个问题解决一下。不求做出来的东西功能多么全面,但求弄够实现基本功能!

  参考了一些代码,但是还是没有完全得到要领!目前开发ArcGIS编辑模块有两种方式:一种是用IEngineEditor接口。

  先来实践混合用的,  文中提出:

EditTool用ControlsEditingEditToolClass

SketchTool用ControlsEditingSketchToolClass
复制:ControlsEditingCopyCommandClass
粘贴:ControlsEditingPasteCommandClass
剪切:ControlsEditingClearCommandClass

  分析ArcGIS编辑工具条的功能,发现Edit Tool单击时当前的任务为Create New Feature,双击时为Modify Feature。仔细观察:

起始:开始编辑高亮,其他按钮全灰。默认任务状态“Create New Feature新建要素”。
开始编辑:停止编辑,保存编辑高亮,Edit和Sketch按钮高亮。Edit按钮选中,当前图层和当前任务选择框高亮,当前图层为第一个图层。
创建要素状态:选择Sketch创建要素;选择Edit按钮,单击选择要素,双击进入“Modify Feature”。
修改要素状态:Edit按钮默认选中。点击要素,Sketch按钮高亮,可以移动节点。选择Sketch可以接着最后节点绘制。

  在帮助文档中知道EngineEditor是singleton object,这个很重要啊!

  在How to listen to edit events帮助可以看到下面一句话:

In .NET, event interfaces are automatically suffixed with _Event by the type library importer.

  IEngineEditEvents_Event事件接口,通过Iengineditor接口跳转访问。这里思考一下“事件”,“事件”起作用关建还是他订阅的方法不是吗?那么我如果将事件订阅自己定义的方法不是可以实现很多东西吗?“事件”可不是单单用户点击鼠标键盘这样的才叫事件啊,类也可以定义“事件”,可以定义“事件”订阅的方法。EngineEditor的事件应该包装了AxMapControl的MouseDown、MouseMove、DoubleClick等事件(个人理解)。EngineEditor实际应该是和界面分离的,如何实现编辑功能与编辑工具条的状态的联动是很关键的,所以一个思路就是将IEngineEditor的事件订阅自己定义的方法来实现界面状态的联动。(计划重新学习委托和事件):

  IEngineEditEvents内部接口,实现了事件订阅的方法(个人理解!)

  通过EngineEditor完全可以实现编辑的所有功能。IEngineEditor可能对IWorkspaceEdit接口进行了调用(个人理解,以后如果有新的想法在说。)开发工作正在进行,参考引文撤销和重做功能按钮就是通过IWorkspaceEdit来实现的,这样只能在绘制新要素完成和编辑完成之后进行重做和撤销,而ArcGIS中可以实现在编辑中的撤销操作。所以有用ToolBar的OperateStack来实现撤销和重做的,目前撤销和重做采用IWorkspaceEdit实现,所以是混合了IEngineEditor和IWorkspaceEdit。而且按照自己的思路开发是可行的。(2012-02-26——11:30:12)

  另外一种是用IWorkspaceEdit接口,决定尝试一下。

转载地址:http://fzlum.baihongyu.com/

你可能感兴趣的文章
hdu 1300(dp)
查看>>
POJ 1159 - Palindrome 优化空间LCS
查看>>
CH BR8(小学生放假了-clock()/CLOCKS_PER_SEC-斜率优化常错集锦)
查看>>
N!末尾有多少个零
查看>>
【优先队列】HDU 1873——看病找医生
查看>>
SQL 时间处理
查看>>
HF Reader
查看>>
eclipse项目中关于导入的项目里提示HttpServletRequest 不能引用的解决办法
查看>>
Css 常用属性
查看>>
GRIDVIEW多行多列合并单元格(合并列)
查看>>
sharepoint2010问卷调查(3)-实现问卷的开始和结束时间(采用自定义字段类型)...
查看>>
java final
查看>>
【吐槽】VS2012的安装项目只能用InstallShield Limited Edition
查看>>
win7重装系统时,使用PE工具箱进入系统看到的“C盘变成0.2G,D盘变成48G左右”这是什么回事?...
查看>>
JQuery URL的GET参数值获取方法
查看>>
关于Char* ,CString ,WCHAR*之间的转换问题
查看>>
第十二天--Property List和NSUserDefaults
查看>>
JS Bin Tips and Bits • About
查看>>
Sharepoint学习笔记—习题系列--70-576习题解析 -(Q40-Q44)
查看>>
nodejs发展
查看>>