ArcGIS Engine
技术之家
技术学习
展开
-
ArcgisEngine+C#开发中,对一个图层进行过滤,并只显示符合条件的要素
在二次开发中,经常会对一个图层进行查询,查询出符合条件的要素,我们通常会想到: IQueryFilter queryFilter = new QueryFilterClass();queryFilter.WhereClause = "XZQDM =510113"; IFeatureCursor featureCursor = sourceFeatureClass.Search(quer原创 2013-07-17 15:01:10 · 3218 阅读 · 2 评论 -
Engine中调用Geoprocessing工具相应的许可要求
ArcGIS Engine从ArcGIS 92版本开始可以调用Geoprocessing的工具(ArcToolbox)。但是ArcToolbox中的工具是有严格的许可控制的,例如有些工具是ArcView级别的,有些是ArcEditor级别,而有些是ArcInfo级别。在Engine中相对应的许可可以调用这些工具呢?通过搭建一个纯的Engine开发环境(No Desktop installed)转载 2013-12-04 15:13:20 · 1890 阅读 · 0 评论 -
AE分析工具,代码片段
#region 交集操作设置 try { object o_JqFeatureLayer = m_JqFeatureLayer; object o_XmFeatureLayer = m_XmFeatureLayer;原创 2013-12-04 17:17:05 · 987 阅读 · 0 评论 -
AE开发中,要素类新增字段
/// /// 添加字段,以及计算几何面积 /// /// 矢量图层 /// 添加的字段名称,如:相交面积 private void AddCalculateField(IFeatureLayer pFeatureLayer, string fieldName) {原创 2013-12-30 08:58:03 · 2077 阅读 · 0 评论 -
AE10.0开发中,要素类出现乱码问题
ESRI.ArcGIS.RuntimeManager.BindLicense(ESRI.ArcGIS.ProductCode.Engine); //IAoInitialize m_aoinitialize = new AoInitializeClass(); //m_aoinitialize.Initialize(esriLicenseProdu原创 2013-12-30 16:10:09 · 1281 阅读 · 0 评论 -
ArcgisEngine+c#二次开发,sde要素类进行GP操作总结
方法一 (注意:主要sde要素类进行gp操作时,需设置gp操作环境,即gp.SetEnvironmentValue("workspace", sWorkPath);所以首先创建并获取本地临时sde工作空间, 其中Temp.sde可随意命名,但是只能创建一次Temp.sde,所以建议根据需要在合适位置创建) IProperty原创 2013-12-19 12:45:14 · 2902 阅读 · 1 评论 -
AE二次开发中,打开本地shp文件后,出现文件锁定状态,即后缀为 .sr.lock
解决方法如下: string dkpath = System.IO.Path.GetDirectoryName(dkPath); string dkname = System.IO.Path.GetFileName(dkPath); IWorkspaceFactory pwf = new ShapefileWorkspac原创 2014-01-07 15:27:35 · 9653 阅读 · 1 评论 -
AE+c#要素类,地理坐标系和投影坐标系的设置
1.空坐标系 ISpatialReferenceFactory spatialReferenceFactory = new SpatialReferenceEnvironmentClass(); ISpatialReference spatialReference = new UnknownCoordinateSystemClass();原创 2014-01-01 09:06:26 · 3851 阅读 · 1 评论 -
ArcGIS Engine + C# 开发过程中,鼠标在地图上滑过时,显示地图相关信息
ArcGIS Engine + C# 开发过程中,鼠标在地图上滑过时,显示地图相关信息,可以使用axMapControl1的OnMouseMove事件。相关代码如下:显示鼠标所在位置比例尺:添加axMapControl1的OnMouseMove事件,其代码如下:private void axMapControl1_OnMouseMove(object sender, IMapCon原创 2013-07-02 09:12:39 · 4582 阅读 · 0 评论 -
根据要素选择集,创建新图层
IFeatureLayer featureLayer = new FeatureLayerClass(); featureLayer.FeatureClass = featureClass; IFeatureSelection featureSelection = featureLayer as IFeatureS原创 2013-10-08 15:30:44 · 3558 阅读 · 0 评论 -
AE中开发中,读取mdb或gdb中图层时,判断图层是否存在
AE开发中,遍历大量数据时,调用gdb或mdb中的某个图层时,首先保证图层存在,下面是判断所需图层是否存在,获取要素类。原创 2015-09-13 10:46:39 · 4901 阅读 · 0 评论 -
ArcGIS Engine+C#二次开发中队加载的shp文件进行投影
/// /// 输入shp文件进行投影 /// /// /// /// /// /// /// /// public void ConvertFeatureClass( String _pSourceFilePath, string _pS原创 2016-03-16 13:43:02 · 2617 阅读 · 1 评论 -
AE开发中,对 COM 组件的调用返回了错误 HRESULT E_FAIL,在地理处理中,即GP工具处理时出错
ArcgisEngine二次开发中,进行地理处理,即:相交操作,交集取反操作,擦除操作等过程中,如果权限分配不当,就会出现上面对 COM 组件的调用返回了错误 HRESULT E_FAIL 的错误 原因如下:在进行擦除,交集取反等高级操作时,必须是ArcgisInfo级别的许可授权,否则无法进行操作,而相交操作用ArcgisEngine级别即可。 解决如下:1.如何使用li原创 2013-12-02 15:03:18 · 10466 阅读 · 6 评论 -
AE二次开发,选择本地shp文件添加到AxMapControl控件中
其中mcView即AxMapControl控件 private void addshp_Click(object sender, EventArgs e) { try { IWorkspaceFactory pWorkspaceFactory = new ShapefileWo原创 2013-11-12 16:51:23 · 2683 阅读 · 0 评论 -
arcgis二次开发时,c#代码实现鼠标点击地图时,获取地图的表的字段的信息
当鼠标点击地图时,可以获取点击位置的字段信息,类似arcgis中的 “标识” 功能。 private void axMapControl1_OnMouseDown(object sender, ESRI.ArcGIS.Controls.IMapControlEvents2_OnMouseDownEvent e) { IFeatureLayer p原创 2013-07-02 10:34:55 · 4873 阅读 · 1 评论 -
AE开发中实现Control中的各种图形工具的方法
Controls中的工具基本可以分为两类:第一类:点击工具图标或按钮后,当前axMapControl的工具即为所点击的工具命令。 前面有Controls 后面有tool的工具都可以用同一类的代码实现(最后的tool或toolclass都可以)private void 放大ToolStripMenuItem_Click(object sender, Even转载 2013-07-26 10:27:18 · 2372 阅读 · 1 评论 -
Arcgis Engine二次开发,如何获取符号库文件中的符号
可根据传入参数获取符号库中的样式符号,简单实例如下: ISymbol pSymbol = GetSymbol(@"F:\Users\Administrator\Desktop\makeServerStyle\test.ServerStyle", "Fill Symbols", "城镇用地"); /// ///获取符号库中符号原创 2013-09-06 10:01:38 · 3180 阅读 · 1 评论 -
Aragis Engine 二次开发中,如何根据符号库文件 设置图层样式
设置图层样式时,可传入参数设置图层样式,可直接调用该方法。 /// /// 根据符号库文件,设置图层样式 /// /// ServerStyle的路径 /// 样式中的类文件(如:Fill Symbols) /// 匹配字段名 /// 设置的图层原创 2013-09-06 09:54:54 · 1238 阅读 · 0 评论 -
AE二次开发,空间分析图层相交操作代码
private void btnIntersect_Click(object sender, EventArgs e) { ESRI.ArcGIS.Geoprocessor.Geoprocessor GP = new ESRI.ArcGIS.Geoprocessor.Geoprocessor(); ESRI.ArcGIS.Ana原创 2013-09-03 14:43:11 · 4530 阅读 · 4 评论 -
关于IFeatureLayerDefinition
IFeatureLayerDefinition--自定义要素层接口实现该接口的主要组件类(CoClass)--FeatureLayer项目中使用该接口实现的方法:将某个图层的选择集提取出来新建临时图层: 1 IFeatureLayer pFeatureLayer = _myMap.get_Layer(0) as IFeatureLayer;转载 2013-10-08 08:51:17 · 2979 阅读 · 0 评论 -
AE二次开发常用代码片段
//中心放大 IClone pIClone = (IClone)mcView.ActiveView.Extent; IEnvelope pIEnvelope = (IEnvelope)pIClone.Clone(); pIEnvelope.Expand(0.5, 0.5, tr原创 2013-10-10 13:40:43 · 2182 阅读 · 0 评论 -
TOC右键菜单的两种实现方式
(1)使用 contextMenuStrip 实现 可在toc的OnMouseDown事件中写if (e.button != 2) return; esriTOCControlItem pItem = esriTOCControlItem.esriTOCControlItemNone; IBasicMap pMap = null;原创 2013-10-15 12:34:28 · 1954 阅读 · 0 评论 -
AE二次开发,右键图层,设置图层要素标注
#region 成员变量 private string m_zttName = string.Empty; private string m_sqlCondition = ""; private ITool m_tool; private ITOCControl2 tocControl; private原创 2013-10-15 13:52:37 · 2056 阅读 · 0 评论 -
AE二次开发,通过代码向axPageLayout控件,插入图例和指北针的方法
1.插入图例的方法如下: /// /// 给页面布局控件添加图例 /// /// public static void InsertLegend(AxPageLayoutControl axPageLayout) { IEle原创 2013-10-30 11:40:36 · 3478 阅读 · 0 评论 -
AE二次开发中,AxMapControl中地图复制到AxPageLayout控件中的代码
调用该方法即可实现 /// /// 显示页面布局控件 /// public void ShowMapPageLayout() { //给页面布局控件复制地图 IObjectCopy objectCopy = new ObjectCopyClass();原创 2013-11-01 10:14:51 · 1675 阅读 · 0 评论 -
AE二次开发中,过滤后的图层,实现缩放至图层效果(2016更新)
Ae二次开发中,实现图层过滤效果,同时实现了过滤后的图层缩放至图层的效果。原创 2013-10-10 11:41:33 · 9108 阅读 · 1 评论