ArcEngine要素编辑遇到的一些问题
1、如何开启编辑
IMap myMap = this._Aplication.ActiveView.FocusMap;
IWorkspace myWorkspace = (myMap25Sheet.PointFeatureLayer as IDataset).Workspace;
this._Aplication.EngineEditor.EnableUndoRedo(true);
this._Aplication.EngineEditor.StartEditing(myWorkspace, myMap);
this._Aplication.EngineEditor.StartOperation();
2、如何设置要编辑的目标图层
IEngineEditLayers myEngineEditLayers = this._Aplication.EngineEditor as IEngineEditLayers;
myEngineEditLayers.SetTargetLayer(myMap25Sheet.PointFeatureLayer, 0);
3、编辑的不符合规则,如何回退
IWorkspaceEdit myWorkspaceEdit = this._Application.EngineEditor.EditWorkspace as IWorkspaceEdit;
bool myHasUndo = false;
myWorkspaceEdit.HasUndos(ref myHasUndo);
if (myHasUndo == true)
{
IMap myMap = this._Application.ActiveView.FocusMap;
((IActiveView)myMap).PartialRefresh(esriViewDrawPhase.esriViewGeoSelection, null, null);
myMap.ClearSelection();
((IActiveView)myMap).PartialRefresh(esriViewDrawPhase.esriViewGeoSelection, null, null);
myWorkspaceEdit.UndoEditOperation();
this._Application.ActiveView.Refresh();
}
注意,一定要调用清空选择那块的代码,不然回退后,刷新下地图,又会重新回来,发现这个问题花了好长时间。
4、如何控制只能选择和编辑一个要素
private void EngineEditor_OnSelectionChanged()
{
Map25Sheet myMap25Sheet = this._Application.WorkZone.ActiveMap25Sheet;
if (myMap25Sheet == null)
{
this._Application.SamplePointInfoUI.SetPointFeature(null);
return;
}
IFeatureLayer myFeatureLayer = myMap25Sheet.PointFeatureLayer;
IFeatureSelection myFeatureSelection = myMap25Sheet.PointFeatureLayer as IFeatureSelection;
if (myFeatureSelection.SelectionSet.Count == 0)
{
this._Application.SamplePointInfoUI.SetPointFeature(null);
return;
}
int myID = myFeatureSelection.SelectionSet.IDs.Next();
if (myFeatureSelection.SelectionSet.Count > 1)
{
myFeatureSelection.Clear();
myFeatureSelection.SelectionSet.Add(myID);
}
this._Application.SamplePointInfoUI.SetPointFeature(myFeatureLayer.FeatureClass.GetFeature(myID));
this._Application.ActiveView.PartialRefresh(esriViewDrawPhase.esriViewGeoSelection, null, null);
}
EngineEditor的OnSelectionChanged事件,在这控制下即可。
5、如何只编辑一个图层
控制其他图层不能不能被选择即可。
myFeatureLayer.Selectable = false;
6、ArcEngine中没有保存函数,如何保存编辑
先停止编辑,调用停止的时候,把是否保存参数设置为true,然后再重新开启即可。
ArcEngine要素编辑遇到的一些问题的更多相关文章
- 定制 ArcEngine 要素编辑工具
来自:http://blog.sina.com.cn/s/blog_4d780fc10101d2d5.html 先初步了解到大概用到的下面的接口和类: IEngineEditor IEngineEdi ...
- WebGIS实现在线要素编辑之ArcGIS Server 发布Feature Service 过程解析
WebGIS实现在线要素编辑之ArcGIS Server 发布Feature Service 过程解析 FeatureService也称要素服务,其最大的好处就是支持在线要素编辑,并将编辑同步更新到后 ...
- arcengine 要素类的复制
转自原文arcengine 要素类的复制 using System; using System.Collections.Generic; using System.Text; using ESRI.A ...
- ArcMap10.1无法保存编辑的内容
问题描述:在arcMap10.1中编辑SDE库中要素,保存编辑内容时报错: 无法保存编辑内容.基础DBMS错误[ORA-29877:failed in the execution of the ODC ...
- ArcEngine开发中StartEditing和StartEditOperation的区别
背景: 最近在开发一个管道数据维护系统的新增模块,牵涉到将这个模块的数据编辑统一到整个系统的编辑处理框架内的问题:即这个系统的所有对数据产生的编辑都需要处在整个系统唯一的开始.保存.回滚编辑的入口内. ...
- 《ArcGIS Runtime SDK for Android开发笔记》——(15)、要素绘制Drawtools3.0工具DEMO
1.前言 移动GIS项目开发中点线面的要素绘制及编辑是最常用的操作,在ArcGIS Runtime SDK for iOS 自带AGSSketchLayer类可以帮助用户快速实现要素的绘制,图形编辑. ...
- No edit session in the progress
运行环境:开发环境:Windows7旗舰版64bit.VisualStudio2008 With SP1.ArcEngine10.0.NetFrameWork4.0.IIS7和C#开发语言. 问题描述 ...
- GeoServer中WMS、WFS的请求规范
文章版权由作者李晓晖和博客园共有,若转载请于明显处标明出处:http://www.cnblogs.com/naaoveGIS/ 1.背景 1.1WMS简介 Web地图服务(WMS)利用具有地理空间位置 ...
- Feature Access
在ArcGIS Server中发布支持Feature Access地图服务,你需要知道的几点: 所绘制的mxd地图文件中包含的数据,必须来自企业级数据库链接: mxd中包含的所有图层的数据,必须来自同 ...
- (九)WebGIS中的矢量查询(针对AGS和GeoServer)
文章版权由作者李晓晖和博客园共有,若转载请于明显处标明出处:http://www.cnblogs.com/naaoveGIS/. 1.前言 在第七章里我们知道了WebGIS中要素的本质是UICompo ...
随机推荐
- Windows 11 新材质 Mica Alt 效果展示
本文是 WinUI 3 踩坑记 的一部分,该系列发布于 GitHub@Scighost/WinUI3Keng,若内容出现冲突以 GitHub 上的为准. 微软在 2022-09-02 更新了官方文档, ...
- ACL和NAT
1 ACL 1.1 ACL的作用 1).用来对数据包做访问控制(丢弃或者放弃) 2).结合其他协议,用来匹配范围 1.2 ACL的工作原理 当数据包从接口经过时,由于接口启用了ACL,此时路由器会对报 ...
- 如何使用DBeaver连接Hive
1 DBeaver介绍 DBeaver是一个通用的数据库管理工具和 SQL 客户端,支持多种兼容 JDBC 的数据库.DBeaver 提供一个图形界面用来查看数据库结构.执行SQL查询和脚本,浏览和导 ...
- 基于Containerd安装部署高可用Kubernetes集群
转载自:https://blog.weiyigeek.top/2021/7-30-623.html 简述 Kubernetes(后续简称k8s)是 Google(2014年6月) 开源的一个容器编排引 ...
- Shell脚本中判断字符串是否被包含在内并且使用grep 精确匹配
str1="abcdefgh" str2="def" result=$(echo $str1 | grep "${str2}") if [[ ...
- Nginx配置中一个不起眼字符"/"的巨大作用
文章转载自:https://mp.weixin.qq.com/s/QwsbuNIqLpxi_FhQ5pSV3w Nginx作为一个轻量级的,高性能的web服务软件,因其占有内存少,并发能力强的特点,而 ...
- 苹果手机安装郑好办手机app后给绿城通公交卡充值的步骤
1.苹果手机,需要带有NFC功能 苹果XS手机该功能默认是开启的,不用额外的其他操作 苹果11该功能需要设置开启才行.步骤:设置--通用--NFC,然后开启 2,公交卡 如下这种的公交卡可以充值: 如 ...
- nginx日志输出配置json格式
修改nginx配置文件 http { include mime.types; default_type application/octet-stream; charset utf-8; # 原有日志格 ...
- #Lua:Lua调用C++生成的DLL库
Lua调用C++生成的DLL库 本文参考了某大佬的博客,写得十分详细,推荐!!! 需求: 在之前的求解器中添加了Lua库,使得程序可以在Lua脚本中实现自定义函数功能,考虑到未来可能需要与第三方程序库 ...
- 对vue中的data进行数据初始化
this.$data:是表示当前的改变后的this中的数据 this.$options.data():是表示没有赋值前的this中的数据,表示 初始化的data 一般可以使用Object.assign ...