ArcGIS
文章平均质量分 52
Prince_Treasure
本人很懒,啥都不想写
展开
-
基于C#的AE二次开发之IQueryFilter接口、ISpatialFilter接口、IQueryDef 接口的查询接口的介绍
基于C#的AE二次开发之IQueryFilter接口、ISpatialFilter接口、IQueryDef 接口的查询接口的介绍原创 2023-09-21 17:20:43 · 947 阅读 · 0 评论 -
C# 判断电脑是否装Arcgis软件
C# 判断电脑是否装Arcgis软件原创 2023-03-06 19:24:27 · 169 阅读 · 0 评论 -
AE二次开发异常HRESULT:0x80041051解决办法
问题:用featureclass定义featurecursor使用search,执行UpdateFeature时,出现一个“未处理COMException,异常来自HRESULT:0x80041051”。解决:将search换成update;原创 2021-05-18 15:58:31 · 449 阅读 · 0 评论 -
ArcGIS Add-in插件开发问题—VS中“未命中断点,还没有为该文档加载任何符号”解决办法
在AE10.2中开发ArcMap插件是AE开发的一个重要分支。但在VS中设置断点调试程序,在ArcMap跑起来后,发现之前设置的断点变成白色,并提示“未命中断点,还没有为该文档加载任何符号”。如下图:这个问题出现的原因网上众说纷纭。其实就是ArcGIS的supportRutime version的版本设置问题。在ArcGIS10.2 DeskTop的bin文件夹下,找到ArcMap.exe.config文件,并用记事本打开它:将红色圈内的版本号改成:v4.0 ,然...原创 2021-03-10 14:09:13 · 537 阅读 · 0 评论 -
C# ArcGIS | IRasterGeometryProc
栅格影像加载到MapControl中以后,如果想更改影像的旋转、扭曲等形状,接口IRasterGeometryProc是个不错的选择。RemarksTheRasterGeometryProcmanipulates onlyRasterobjects, notRasterBandorRasterDatasetobject. This is because theRasteris transient, as are the effects of theRasterGeometryP...原创 2020-07-30 09:51:29 · 462 阅读 · 0 评论 -
.NET+AE/AO开发中常见几种非托管对象的释放
尝试读取或写入受保护的内存。这通常指示其他内存已损坏。今天在开发时遇到一个问题:" 未处理 System.AccessViolationExceptionMessage="尝试读取或写入受保护的内存。这通常指示其他内存已损坏。"这通常指示其他内存已损坏。不知大家遇到过没有,这种错误是由于用户反复写入或打开文件, 最终使得内存资源没有及时释放导致此错误。这种错误是无法跟踪的,必须强制释放! 没有强制的释放方法,底层的com组件根据你进程调用组件的次数来控制对象...原创 2020-07-03 14:46:51 · 848 阅读 · 0 评论 -
ArcGIS UID的用法
{6CA416B1-E160-11D2-9F4E-00C04F6BC78E} IDataLayer{40A9E885-5533-11d0-98BE-00805F7CED21} IFeatureLayer{E156D7E5-22AF-11D3-9F99-00C04F6BC78E} IGeoFeatureLayer{34B2EF81-F4AC-11D1-A245-080009B6F22B} IGraphicsLayer{5CEAE408-4C0A-437F-9DB3-054D83919850} IFDO原创 2020-06-22 10:26:53 · 940 阅读 · 0 评论 -
C# ArcGIS AO | 判断要素是否处于编辑状态
如下代码演示了判断要素类是否处于编辑状态:1 private void IsEditing() {2 ESRI.ArcGIS.Carto.ILayer lyr = mapCtrl_main.get_Layer(0);3 ESRI.ArcGIS.Carto.IFeatureLayer flyr = (ESRI.ArcGIS.Carto.IFeatureLayer)lyr;4 5 ESRI.ArcGIS.Geodatabase.IFeatureClass fclass =原创 2020-06-10 14:00:22 · 577 阅读 · 0 评论 -
ArcGIS 地理数据库(GDB)/Tolerance/Resolution简介
ArcGIS地理数据库(Geodatabase)是ESRI公司在ArcGIS 8版本引入的一个全新的空间数据模型,是建立在关系型数据库管理信息系统之上的统一的、智能化的空间数据库。它是在新的一体化数据存储技术的基础上发展起来的新数据模型。实现了Geodatabase之前所有(包括Coverage/shapefile)空间数据模型都无法完成的数据统一管理,即在一个公共模型框架下对GIS通常所处理和表达的地理空间特征如矢量、栅格、TIN、网络、地址进行同一描述。同时,Geodatabase是面向对象的地理数据模原创 2020-06-08 09:23:36 · 3165 阅读 · 0 评论 -
C# ArcEngine获取坐标系、投影类型、计量单位、带号、几度分带、精度
//获取参数IGeoDataset pDataset = TarFealyr.FeatureClass as IGeoDataset;ISpatialReference pSpatialReference = pDataset.SpatialReference;IGeographicCoordinateSystem pGeoCoordSys = (pSpatialReference as ...原创 2020-05-12 14:44:32 · 1350 阅读 · 0 评论 -
engine 删除FeatureClass 方法
一、几种删除方法代码1. 查询结果中删除 private void Delete1(IFeatureClass PFeatureclass) { IQueryFilter pQueryFilter = new QueryFilterClass(); pQueryFilter.WhereClause = "object...原创 2020-04-02 09:00:43 · 374 阅读 · 0 评论 -
Lc.exe已退出 代码为-1问题解决方法
1、错误信息2、解决办法方法1:(针对项目中有licenses.licx文件)查看加载的程序项目,找到Properties文件夹licenses.licx文件,然后右键选择删除就可以了,调试运行正常了。END方法2:(针对项目中没有licenses.licx文件) 1 打开你的项目的根目录,不知道在哪里的话,可以选择右键打开,如下图所示。...原创 2020-03-10 17:03:16 · 901 阅读 · 0 评论 -
ArcGIS Engine根据给定距离打断线
private IPolyline BreakLineToTwoPart_new(IPolyline myPolyline, double DisOnLine) { IPolyline[] Lines = new IPolyline[2]; bool isSplit; int splitIn...转载 2019-12-27 17:10:48 · 530 阅读 · 0 评论 -
80040111 解决办法
检索COM类工厂中CLSID为{D20B08DF-4FF4-11D2-AB02-00C04FA334B3}的组件失败,原因是出现以下错误:80040111ClassFactory无法供应请求的类(异常来自HRESULT:0x80040111(CLASS_E_CLASSNOTAVAILABLE))。解决办法在Main方法中加入如下代码:ESRI.Ar...原创 2019-12-26 17:00:57 · 2754 阅读 · 0 评论 -
C# AE 符号选择器加载
在事件中找到双击事件。添加using ESRI.ArcGIS.Display;using ESRI.ArcGIS.DisplayUIprivate esriTOCControlItem toccItem = esriTOCControlItem.esriTOCControlItemNone; private ILayer iLayer = null; ...原创 2019-12-26 16:55:40 · 500 阅读 · 0 评论 -
AE “Error 000824: The tool is not licensed”
写AE 的时候出现如下问题“: The tool is not licensed”已经解决。解决思路回头补上。有需要的可以私我原创 2019-12-25 19:24:02 · 1093 阅读 · 4 评论 -
ArcGIS不同坐标系统的转换
首先,需要特别注意的是,这七个参数都是严格保密的;另外,坐标转换的参数每个区域都不一样,因此假设有一个区域的两张地形图,一张是西安1980坐标系,一张是CGCS2000坐标系,要得到这个区域的西安1980到CGCS2000的转换参数,就需要进行两张地形图的配准,至于怎样操作,网上也有很多教程,我这里就不说了。那么,在知道了七参数或者三参数之后怎样转坐标呢?首先,在ToolBox–>Data...原创 2019-12-24 18:48:21 · 2417 阅读 · 0 评论 -
arcobjects,IRing与Ipolygon转换
C#代码public static IGeometryCreatePolygonfromRing(IRing ExRing){ISegmentCollectionSegCol= ExRing as ISegmentCollection;IPolygonPPolygon =new PolygonCl...原创 2019-11-06 14:56:33 · 364 阅读 · 0 评论 -
ArcGIS中ObjectID,FID和OID字段有什么区别?
ArcGIS Desktop 需要独立的表和属性表都有一个ObjectID字段,这个字段中包含一个唯一的,长整型的数值来指定每一条记录。这个ID是由ESRI的软件来管理的,是不能够手动更改的。在Shapefiles, geodatabase feature classes, 和独立的表格中ObjectID的处理方式不同。---在一个shapefile中, 'FID'字段包含ObjectID,...原创 2019-10-28 09:35:51 · 1288 阅读 · 0 评论 -
C#AE二次开发——使用AE控件创建第一个桌面应用程序
————————————————版权声明:本文为CSDN博主「人生、蜕变」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。原文链接:https://blog.csdn.net/IT_xiao_guang_guang/article/details/89553700使用AE控件创建第一个桌面应用程序VS版本:2015AE版本:10.4(1)...原创 2019-10-25 14:21:04 · 1842 阅读 · 0 评论 -
ITopologicalOperator接口详解
作为空间分析重要部分的拓扑关系运算,ArcGISEngine类库中将拓扑关系运算功能函数方法封装在ITopologicalOperator接口。 属性:Boundary Boundary:几何图形的边界属性。面的边界是多条折线;线的边界是与起始终止点相一致的多点;多点边界是空对象。属性:IsKnownSimple IsKnownSimple:如当前几何图形是简单对象返回true,否则返...转载 2018-02-24 11:45:40 · 563 阅读 · 0 评论 -
arcengine 获得FeatureClass的坐标系SpatialReference
public static ISpatialReferencegetSpatialReference(IFeatureClass pFeatureClass){IGeoDataset pGeoDataset= pFeatureClass as IGeoDataset;return pGeoDataset.SpatialReference;...原创 2019-02-28 17:17:08 · 1111 阅读 · 0 评论 -
IRaster、IRasterlayer、IRasterdataset之间的转换
layer = axMapControl.get_Layer(0);//需要的栅格图层IRasterLayer rasterlayer = layer as IRasterLayer;IRaster raster = rasterlayer.Raster;IRasterBandCollection rasterbandcollection = raster as IRasterB...原创 2019-02-28 14:21:37 · 3035 阅读 · 0 评论 -
不同坐标间的相互转换
二、不同坐标间的相互转换坐标转换主要使用IDisplayTransformation接口,可以通过IScreenDisplay. DisplayTransformation属性获取。MapControl下屏幕坐标与地理坐标的相互转换:1, 屏幕坐标转为地理坐标public IPoint GetMapCoordinatesFromScreenCoordinates(IPoint scr...原创 2019-02-15 14:58:25 · 1536 阅读 · 0 评论 -
ArcGIS Engine中刷新视图总结
ArcGIS Engine中的视图(IActiveView)控制着主程序窗口,二维中的常用视图有Map(数据视图)和PageLayout(布局视图)。IActiveView.ScreenDisplay属性即IScreenDisplay接口用来控制屏幕上图形的显示。ScreenDisplay允许用户创建任意数量的缓存,图像不是直接绘制在屏幕上的,而是先绘制在缓存中,然后再将缓存绘制到屏幕上。当程序窗...原创 2019-02-15 14:52:26 · 1219 阅读 · 0 评论 -
C# Arcgis 中 Point Polyline Polygon 等的操作
//如何构建Point private IPoint ConstructPoint(double x, double y) { IPoint pPoint = new ESRI.ArcGIS.Geometry.Point(); pPoint.PutCoords(x,y); return pPo...原创 2019-01-10 09:47:28 · 2758 阅读 · 0 评论 -
Arcengine 的IEnumFeature接口使用的一个细节
前阵子写一个到处SHP文件的函数不断出现到处后属性为空的问题,后来尝试半天,发现是少了两行代码,虽然解决了,但是其实还是不知道这两行代码是干什么的,后来网上读到前人帖子提到这个。http://blog.csdn.net/brokencar/article/details/6069997API中的REMARK,他是这样写的:When this interface is used to ac...原创 2019-01-03 09:52:20 · 939 阅读 · 0 评论 -
IGeometryBag vs. IGeometryCollection
GeometryBag 是支持 IGeometry 接口的 几何对象引 用的集合, 任何几何对 象都可以通 过 IGeometryCollection 接口添加到 GeometryBag 中,但是在使用拓扑操作的时候,需要注意不同类型的几 何类型可能会有相互不兼容的情况。在向 GeometryBag 中添加几何对象的时候,GeometryBag 对象需要指 定空间参考,添加到其中的几何对象均拥有和...原创 2019-01-10 14:13:43 · 733 阅读 · 0 评论 -
Array / List / Dictionary相互转换的方法
Array / List / Dictionary 是C#中最常用到的数据结构,都是引用类型,有时候为了不影响源数据,可以复制一份利用复件进行一些计算,有些情况下为了便于计算,还需要对数据结构进行转换,下面整理了Array / List / Dictionary两两相互转换的方法一、声明,接下来对数据进行转换 string[] testAarray = new string[] { ...原创 2018-12-13 09:54:33 · 3126 阅读 · 0 评论 -
[Visual Studio] VS2012调试时很慢的解决方案
1、转自http://guooge.com/archives/408.htmlVS2010调试极慢获取出现死机,因为启动了IntelliTraceVisual Studio 2010 Ultimate 版本有个新功能IntelliTrace(智能跟踪),IntelliTrace被引入到Visula Studio中来加速我们对.NET应用程序的调试,它通过对预先设置的事件和方法在运行过程中的...原创 2018-11-22 16:26:40 · 1809 阅读 · 0 评论 -
c# 编写注意事项
持续更新中~~ 1:路径问题在写程序的时候,定义的路径中间不能有空格比如 string Temp_path = "C:\\temp_pa" 是正确的。string Temp_path = "C:\\ temp_pa" 是错误的,程序执行的时候会出错,因为你的路径下面多了一个空格2、将double 类型的数据保留两位小数。double lengh = 0.33333;...原创 2018-09-29 11:32:08 · 605 阅读 · 0 评论 -
利用Arcgis Engine 二次开发的使用和总结
Arcgis Engine 初体验 先放一张第一版系统的图,由于公司机密不能提供源码,但是各个小功能提供源码,为需要的同仁提供些许帮助。 接下来进入正题,将逐一展示利用Arcgis Engine开发的程序小例子。Arcgis Engine小程序们 一、较完全编辑功能GIS程序 开发原理:通过隐藏Arcgis Engine工具条开发的较全编辑功能GIS小程序,调用Ar...转载 2018-09-04 09:38:29 · 2724 阅读 · 0 评论 -
ArcGIS Engine栅格数据使用总结
1、栅格数据的存储类型栅格数据一般可以存储为ESRI GRID(由一系列文件组成),TIFF格式(包括一个TIF文件和一个AUX文件),IMAGINE Image格式 在AE中一般调用ISaveAs接口来保存栅格数据2、栅格数据集和栅格编目的区别一个栅格数据集由一个或者多个波段(RasterBand)的数据组成,一个波段就是一个数据矩阵。对于格网数据(DEM数据)和单波段的影像数据,表现为仅...原创 2019-03-11 10:28:15 · 1176 阅读 · 0 评论 -
ArcGIS Engine中的Symbols详解
Symbols ArcObjects用了三种类型的Symbol(符号样式)来绘制图形特征:marker symbols(标记符号),line symbols(线符号),和fill symbols(填充符号)。这些样式同样可以用来绘制elements(元素)图形,比如在地图或制版视图上的图表边线和指北针箭头。第四个样式text symbol(文字符号)是用来绘制标注和其他文本要素的。第五个...原创 2019-03-28 10:31:30 · 2881 阅读 · 0 评论 -
c# arcgis IRing与Ipolygon转换
public static IGeometry CreatePolygonfromRing(IRing ExRing) { ISegmentCollection SegCol= ExRing as ISegmentCollection; IPolygon PPolygon =new PolygonCl...原创 2019-09-02 11:10:41 · 735 阅读 · 0 评论 -
c# ArcEngine/AO 释放锁,解除锁定方法
ArcEngine /AO创建IWorkSpaceFactory的两种方式:第一种使用ae的工厂方法:IWorkspaceFactory pWsFactory = new ShapefileWorkspaceFactoryClass();IFeatureWorkspace pWorkSpace = pWsFactory.OpenFromFile(path, 0) as IFeatu...原创 2019-08-05 16:01:00 · 1727 阅读 · 0 评论 -
c# Arcobject ArcGIS 获得栅格影像的边界IRasterDomainExtractor 使用方法
一般的各种遥感影像都是采用某种地理或投影坐标的栅格影像,对于从事影像相关工作的人来说,得到现有影像的覆盖范围是确定研究内容,购买遥感影像的基础。怎么得到这个覆盖范围呢?当然我们可以在ArcGIS或ERDAS中打开,就可以看到影像范围了。不过当影像数量达到TB级时,这种方式显然是行不通的。这里我们就需要通过一定的办法将每幅影像的范围以矢量图形的方式表示出来。一般来说,如果需要的精度不高,可以采用...原创 2019-07-25 14:51:43 · 1912 阅读 · 3 评论 -
在C#中调用Python方法
1. 安装IronPython到http://ironpython.codeplex.com/下载IronPython。安装下载下来的安装包(先装VS)。2. 创建项目创建一个C#的控制台应用程序。添加引用: 浏览到IronPython的安装目录中,添加对IronPython.dll,Microsoft.Scripting.dll 两个dll的引用。3. 添...原创 2019-07-30 09:18:59 · 439 阅读 · 0 评论 -
vs2012添加现有项窗体时*.Designer不在窗体下解决办法
一、问题二、解决办法1.把FmMain.cs和FmMain.Designer.cs和FmMain.resx三个文件复制到程序目录下,2.在vs里面添加现有项,选择FmMain.cs,其他文件不要选,完成操作再打开窗口出现这个问题是因为vs改变了,记得在vs2008版是要选择3个文件添加的,vs2012,vs2013就改为选择FmMain.cs一个文件...原创 2019-07-18 16:24:01 · 1228 阅读 · 0 评论 -
ArcGIS Engine 节点编辑,实现要素拖动、编辑、节点删除
首先,说一下,所有的要素的更新、插入、删除最好放在编辑的Session 里面,即以一对StartEditing和StopEditing包裹。一开始我的疑问在于,为什么我用IWorkspaceEdit的StartEditing方法后,怎么鼠标不会变成AcrMap里面Editor的开始编辑那样呢,为什么不能选中要素,为什么不能双击后编辑要素?原来,选中要素和使要素处于编辑状态还是要自己写...转载 2019-06-28 16:02:37 · 2592 阅读 · 0 评论