ArcEngine
默而识之者
帮助别人,快乐自己
展开
-
ARCGIS add-in导入shp文件
点击“道理”原创 2014-08-27 21:01:13 · 3349 阅读 · 0 评论 -
GP工具FeatureVerticesToPoints报HRESULT E_FAIL
用GP工具要素转点时无论参数怎么设置都会报HRESULT E_FAIL。检查发现该GP工具需要最高权限,在liscenceControl里设为Advanced即可顺利使用。原创 2016-04-21 09:34:06 · 2214 阅读 · 5 评论 -
ArcEngine渲染面图层
/// /// 简单渲染面图层 /// /// 要渲染的面图层 /// 轮廓颜色 /// 填充颜色 /// 轮廓宽度 private void PRV_LayerRender(IGeoFeatureLayer IN_Layer,IRgbColor IN_BoundaryColor,I原创 2016-05-08 20:30:16 · 1996 阅读 · 0 评论 -
ArcEngine面要素转线要素
/// /// 面转线(GP法)(获取相邻面)需要最高ArcEngine权限 /// /// 要转换的要素类 /// 是否保存相邻区域信息 /// 转换后的要素名 /// 转换后的要素 private IFeatureClass PRV_PolyGonToLine_GP(IFeatu原创 2016-05-08 21:09:59 · 5553 阅读 · 7 评论 -
ArcEngine输出当前显示范围为JPG图像
实现函数如下: /// /// 输出当前显示范围为JPG图像 /// /// 显示范围 /// 保存路径 /// 显示控件 private void PRV_ExportToJPG(IEnvelope IN_Envolope, string IN_SaveFile,MapContr原创 2016-05-08 21:04:05 · 3347 阅读 · 1 评论 -
ArcEngine定义查询
在Arcgis中很容易就能实现对图层的定义查询显示。在ArcEngine中用代码也非常容易实现。 /// /// 定义查询图层 /// /// 要进行定义查寻的图层 /// 定义查询命令 /// 显示控件 private void PRV_DefinitionQuery原创 2016-05-08 20:18:31 · 2348 阅读 · 6 评论 -
ArcEngine 分类标注
arcgis中可以在同一个图层中定义不同的标注方式。在ArcgisEngine中实现起来如下(以按OID为条件区分为例): /// /// 标注特定图层 /// /// 要标注的图层 /// 要标注的地图控件 public void PUB_ShowTargetFeature(ILayer IN_L原创 2016-05-08 13:58:32 · 2271 阅读 · 0 评论 -
ArcEngine在AxMapControl上绘制
在AxmapControl上绘制点(point)线(line,polyline)都是比较方便的,函数如下: /// /// 在地图控件上绘制点或线 /// /// 绘制符号 /// 绘制的图形 /// 地图控件 public void PRV_DrawOnMapControl(IS原创 2016-05-08 21:58:21 · 3364 阅读 · 0 评论 -
拓扑规则翻译函数
把拓扑规则翻译成中文的函数: private string PRV_Translate(string IN_RuleName) { switch (IN_RuleName) { case "esriTRTAreaNoGaps" : return "面要素之间原创 2016-06-28 17:44:52 · 1216 阅读 · 0 评论 -
ArcGis Engine 要素折点转点的代码实现
ArcGIS中的GP工具要素折点转点使用起来十分方便,速度也十分快,但是也存在一些问题,比如要求最高权限,转点时会对一些过近的点进行合并(待深入考察)。因此在某些时候需要用代码实现该功能,在以前因为代码缺陷未实现该功能,只能用GP去实现。原创 2016-07-28 15:29:44 · 4030 阅读 · 0 评论 -
获取独立的要素类
有一些要素数据集是放到特定的要素数据集中的,而有些则直接位于工作空间中。如下图。获取独立于要素数据集的要素类很简单,方法如下: /// /// 获取独立的要素类 /// /// 工作空间下任意一个要素数据集 /// 独立要素类的名称 /// 找的的独立要素类 p原创 2016-08-01 10:33:34 · 1109 阅读 · 0 评论 -
根据图层名获取图层和图层序号
很普遍的一个函数,留作备用,以后懒得写了 //根据图层名获取图层 private ILayer PRV_GetLayersByName(string IN_Name) { IEnumLayer Temp_AllLayer=axMapControl.Map.Layers; ILayer Each_Layer原创 2016-08-01 16:09:43 · 2850 阅读 · 0 评论 -
提取面狭长角
提取面要素类中出现狭长角的要素private void PRV_CheckSliver(IFeatureClass IN_Featureclass) { List Temp_AllError = new List();//记录所有错误OID //提取所有要素 IFeatureCursor Temp_GetEachFeature = IN_F原创 2016-08-20 16:41:36 · 2306 阅读 · 5 评论 -
C#中oracleClient操作空间数据库报“遇到不支持的 Oracle 数据类型 USERDEFINED”
用C#自带控件oracleClient操作arcsde的Oracle数据库,操作普通表时不会出错,而查询arcsde中要素类的表,有时会报“遇到不支持的 Oracle 数据类型 USERDEFINED”比如如下查询语句:select * from Area_A会提示“遇到不支持的 Oracle 数据类型 USERDEFINED”.这是因为该表里含有空间数据,在c#里无法处理。因此需要对原创 2016-04-22 10:42:37 · 1754 阅读 · 0 评论 -
ArcgisEngine中featurecursor的“无效的参数量问题”
最近用ifeaturecursor给要素类插入要素时 IFeatureCursor Temp_FeatureCursor = Temp_TargetFeatureClass.Insert(true);在这里只有一个要素类会报错“无效的参数量”,其他的没有报错。检查后发现该类文件名过长,修改文件名后无报错。原创 2016-04-21 09:26:40 · 2695 阅读 · 0 评论 -
Arcgis Engine的拓扑检查类
主要有添加构建拓扑,拓扑中添加要素,添加规则,输出拓扑错误的功能。使用: TopologyChecker topocheck = new TopologyChecker(mainlogyDataSet);//传入要处理的要素数据集 topocheck.PUB_TopoBuild("testTopo2");//构建拓扑的名字原创 2016-03-18 10:03:40 · 5392 阅读 · 7 评论 -
Shape文件导入featuredataset要素数据集
大体思路就是:1.获取shape文件的空间参考,在mdb中根据该空间参考新建要素数据集: private void PRV_CreatFeatureDataset(string IN_FeatureDataSetName,string IN_ShapePath) { string Temp_Direction = System.IO.Path.Ge原创 2016-03-23 13:30:58 · 4767 阅读 · 0 评论 -
获取GP工具状态进度
GP工具如果运行时间过长,会自动开辟新线程,将主线程还给程序,这样就难以获取其运行状态。不过gp工具似乎没有内置能实时获取进度的参数。可以通过开辟一个查询线程,实时获取其当前状态。 private void PRV_GetStatus() { WATCH_StopWatch.Start(); // 开始监视代码运行时间原创 2016-03-23 13:36:52 · 2289 阅读 · 2 评论 -
提取拓扑错误并导出
将Arcengine拓扑错误的要素提取出来并导出为shape文件拓扑错误提取: private void PRV_GetErrorFeature(ITopologyRule IN_TopologyRule) { IEnvelope Temp_Envolope = (TP_MainTopology as IGeoDataset).Extent原创 2016-03-24 15:03:31 · 5358 阅读 · 0 评论 -
ArcSDE直连出错
直连ArcSDE出错,报 Entry for SDE instance not found in services file肯定是参数填错了。一般三个参数即可: propertySet.SetProperty("USER", "user"); //用户名 propertySet.SetProperty("PASSWORD", "pas原创 2016-03-24 16:58:31 · 799 阅读 · 0 评论 -
根据要素创建要素类
//根据模型构建要素类 private IFeatureClass PRV_FeatureClassBuild(IFeature IN_Feature,string IN_FeatureCLassName,IFeatureDataset IN_FeatureDataset) { //作为搭建模型的要素 IFeature原创 2016-03-25 08:52:50 · 1330 阅读 · 0 评论 -
shape文件导入mdb文件
构造mdb,并在其中构造要素数据集,将shape文件都导入该要素数据集中using System;using System.Collections.Generic;using System.IO;using System.Threading;using ESRI.ArcGIS.Geodatabase;using ESRI.ArcGIS.DataSourcesGDB;usin原创 2016-03-25 15:47:33 · 9038 阅读 · 1 评论 -
Arcgis engine编程报错查询
今天编程拓扑检测遇到错误 提示{"异常来自 HRESULT:0x8004195F"}百度一番无从下手。其实arcgis可以查询错误代码对应的错误。点击“查看详细信息”,找到“errorcode”对应的代码,即可在http://edndoc.esri.com/arcobjects/8.3/?URL=/arcobjectsonline/componenthelp/esricore/fdoerr原创 2016-04-10 17:29:35 · 1126 阅读 · 0 评论 -
ArcEngine错误提示
错误代码 错误名称 错误描述 HRESULT:0x80040201 FDO_E_LOADING_RESOURCE “Failed to load a resource (string, icon, bitmap, etc).” HRESULT:0x80040202 FDO_E_INDEX_OUT_OF_RANGE The index passed was not wit原创 2016-04-14 21:19:36 · 18759 阅读 · 0 评论 -
ArcEngine设置有牵引线的标注
在ArcGIs中很容易就能设置带有牵引线的标注。在ArcEngine中实现方法也很简单。如下: /// /// 设置有引线的标注 /// /// 要标注的图层 /// 显示控件 private void PRV_SetLabelWithCallout(IFeatureLayer IN_原创 2016-05-11 11:20:19 · 10996 阅读 · 0 评论 -
ArcEngine要素转点,要素节点转点
虽然有方便的GP工具FeatureVerticesToPoint。然而其需要最高权限,某些时候没法使用,可以用下面的函数作为替代。 //要素转点 private IFeatureClass PRV_FeatureVerticesToPoints(IFeatureClass IN_Featureclass,IFeatureDataset IN_FeatureData原创 2016-04-29 16:57:09 · 4358 阅读 · 2 评论 -
ArcSDE转本地MDB数据库
一个转换类,将ArcSDE上特定要素数据集转到本地的MDB中using System;using System.Collections.Generic;using System.IO;using System.Threading;using ESRI.ArcGIS.Geodatabase;using ESRI.ArcGIS.DataSourcesGDB;using ESRI原创 2016-05-03 11:47:59 · 1398 阅读 · 0 评论 -
Arcsde报ora-29861: 域索引标记为loading/failed/unusable错误
连接数据库的软件在编辑要素时突然报出这个错误:解决方法很简单,找出错误索引,再删除这个错误索引.先执行 select owner,index_name from all_indexes where domidx_status != 'VALID' or domidx_opstatus !='VALID'; 找出所有错误的,然后删除它们 drop index CONTR原创 2016-12-27 11:53:51 · 1763 阅读 · 0 评论