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 ...
随机推荐
- 《Win10——常用快捷键》
Win10--常用快捷键 Ctrl+C:复制 Ctrl+V:粘贴 Ctrl+A:全选 Ctrl+X:剪切 Ctrl+D:删除 Ctrl+Z:撤销 Ctrl+Y:反撤销 Ctrl+Shift ...
- 云原生之旅 - 2)Docker 容器化你的应用
前言 上文中我们用Golang写了一个HTTP server,本篇文章我们讲述如何容器化这个应用,为后续部署到kubernetes 做准备. 关键词:Docker, Containerization, ...
- tomcat的catalina.out日志按自定义时间格式进行分割
默认情况下,tomcat的catalina.out日志文件是没有像其它日志一样,按日期进行分割,而是全部输出全部写入到一个catalina.out,这样日积月累就会造成.out日志越来越大,给管理造成 ...
- Kubernetes HPA 使用详解
文章转载自:https://www.qikqiak.com/post/k8s-hpa-usage/ Kubernetes 提供了这样的一个资源对象:Horizontal Pod Autoscaling ...
- alertmanager配置文件详解
global: smtp_smarthost: 'localhost:25' smtp_from: 'alertmanager@example.org' #用于邮件通知的P发件人 route: #每个 ...
- MongoDB $type 操作符
描述 $type操作符是基于BSON类型来检索集合中匹配的数据类型,并返回结果. MongoDB 中可以使用的类型如下表所示: 类型 数字 备注 Double 1 String 2 Object 3 ...
- 报时机器人的rasa shell执行流程分析
本文以报时机器人为载体,介绍了报时机器人的对话能力范围.配置文件功能和训练和运行命令,重点介绍了rasa shell命令启动后的程序执行过程. 一.报时机器人项目结构 1.对话能力范围 (1)能够 ...
- C# 内存泄漏之 Internal 关键词代表什么?
一:背景 1. 背景 前段时间有位朋友咨询说他的程序出现了非托管内存泄漏,说里面有很多的 HEAP_BLOCK 都被标记成了 Internal 状态,而且 size 都很大, 让我帮忙看下怎么回事? ...
- CentOS 7.9 安装 kafka_2.13
一.CentOS 7.9 安装 kafka_2.13 地址 https://kafka.apache.org/downloads.html 二.安装准备 1 安装JDK 在安装kafka之前必须先安装 ...
- 驱动开发:内核枚举IoTimer定时器
今天继续分享内核枚举系列知识,这次我们来学习如何通过代码的方式枚举内核IoTimer定时器,内核定时器其实就是在内核中实现的时钟,该定时器的枚举非常简单,因为在IoInitializeTimer初始化 ...