ArcGIS
文章平均质量分 71
秋漓
这个作者很懒,什么都没留下…
展开
-
Arcgis中创建自定义脚本工具
arcgis面对特殊场景创建个性化工具原创 2022-11-16 22:36:05 · 4834 阅读 · 0 评论 -
利用Arcpy批量图斑生成图片
批量生成图片任务需求环境与数据准备代码实现运行结果任务需求实际作业中,往往需要导出一些经典的案例图斑用作参考。而能称之为经典的图斑大部分都会来源于多个不同的数据源中。接下来就实现跨数据源导出指定图斑图片:环境与数据准备1、arcgis10.2.22、准备一份数据源,此处使用GDB作为数据源。3、准备提供地图要素参考信息的地图文档.mxd文件,可以在里面设置图斑信息。代码实现# encoding:utf-8import os.pathimport arcpyimport sysimp原创 2022-05-10 16:18:43 · 1420 阅读 · 0 评论 -
ArcEngine按自定义网格切割面
数据准备:一个gdb中存在面图层Source与Result结构完全一致,其中图层Source中有一个图斑。代码:public static void Test(){ using (var comReleaser = new ESRI.ArcGIS.ADF.ComReleaser()) { var pWorkspaceFactory = new FileGDBWorkspaceFactoryClass(); var pWor...原创 2021-07-16 16:58:10 · 372 阅读 · 0 评论 -
ArcGIS中线分割面
1、在ArcMAP中操作。 在编辑状态下,选中所有的线,然后使用高级编辑工具条上的Split Polygons即可,参见下图。2、IFeatureConstruction接口该接口发布与适用于ArcGIS 9.3中,9.2 版本也存在。以下是IFeatureConstruction接口参数: IEnumFeature:它将是构造多边形的线源。 ...转载 2019-12-24 16:51:22 · 4970 阅读 · 0 评论 -
ArcGIS Geometry对象介绍
Geometry是一种基本类。它是一种抽象类。是ArcGIS Engine中使用最为广泛的对象集之一,用户在创建、删除、编辑和进行地理分析的时候,就是处理一个包含几何形体的矢量对象;除了显示要素以外,控件对象选择,要素符号化,标注要素,编辑要素都需要Geometry参与。 在Geometry模型中的几何对象分为两种类型,一类是用来直接构建要素类的称为高级...转载 2019-12-22 17:14:39 · 3460 阅读 · 0 评论 -
ArcGIS之更新数据
某个有20万数据的图层,更新一个字段,将DLMC 内的值“水田”修改为“田地”,其中“DLMC='水田'”的数据有1.5万。做如下测试一、IWorkspace.ExecuteSQL 在更新大数据量时挺快,但不支持空间筛选。某些情況下可能不支持IWorkspace.ExecuteSQL这个方法,执行前最好先使用IWorkspaceProperty判断是否支持Ex...原创 2019-12-07 17:10:40 · 4696 阅读 · 0 评论 -
ArcGIS修复几何错误
几何错误常存在于shapefile以及存储在个人地理数据库或文件地理数据库的要素类,而当数据不满足ArcGIS的规范时,就会遇到各种无响应和奔溃。 几何错误通常有:(查看原帮助文档) 1、短线段-有些线段短于与几何关联的控件参考的系统单位所允许的长度。 2、空几何 - 该要素不具有几何或则SHAPE字段为空 3、不正确的环走向-面的拓扑结构比较简...原创 2019-06-02 17:23:17 · 19560 阅读 · 0 评论 -
IFeatureClass.Search(IQuery Filter,bool Recycling)中的Recycling
IFeatureClass的Search方法在AE开发中经常用到,但是对Search方法的其中一个参数bool Recycling一直不是很理解,用的时候也很随意,感觉true与false没啥区别。ArcObjects API Reference for .NET帮助文档上这么解释:The recycling parameter controls row object alloca...原创 2019-04-14 21:27:28 · 488 阅读 · 0 评论 -
ArcGis中IQueryDef接口查询
IQueryDef用于属性查询。它支持复杂的SQL查询并且能在同一工作空间内做连表查询。但是查询后的结果不支持编辑。且不能在Shapefile 和Coverage 数据中使用,而仅仅可以使用在GeoDatabase数据库中。若要执行空间查询或编辑查询后结果可用IQueryFilter或ISpatialFilter接口。官网地址:转至官网测试数据准备:ABC ...转载 2019-04-28 21:37:57 · 2055 阅读 · 0 评论 -
IFeatureClass——删除记录
ArcGIS的删除要素方法主要有以下几种:1、转成ITable 删除大量数据时建议用此方式(推荐)/// <summary>/// 转为Table删除/// </summary>/// <param name="featureClass">源要素集</param>/// <param name="spatialFil...转载 2019-04-24 21:57:41 · 785 阅读 · 0 评论 -
IQueryFilter与ISpatialFilter接口的使用
在ArcGIS二次开发中,IQueryFilter和ISpatialFilter是最常用的查询接口。一、IQueryFilter接口 IQueryFilter接口用于属性查询。该接口提供了1个方法和3个属性。如AddField方法用于向输出字段集中添加一个字段,OutputSpatialReference属性用于获取给定字段的输出几何图形的空间参考,SubFie...转载 2019-05-07 15:29:45 · 4009 阅读 · 0 评论 -
ArcGIS消除叠加操作生成的碎图斑或狭长面
在ArcGIS中叠加操作会带来碎图斑或狭长面,而这些碎图斑或狭长面又会影响后续的判断。所以就需要消除。 例如:具体操作有以下方式:1、最简单的的方法就是使用ArcGIS提供的“消除工具”。在"数据管理工具"——“制图综合”——“消除”。2、使用Python脚本# -*-coding:gbk-*-import arcpyfrom arcpy import...原创 2019-05-18 15:34:54 · 15301 阅读 · 0 评论 -
C#+ArcGIS修改图层名称和别名
据帮助文档: Object classes in a Geodatabase can have between one and three names. The name of the object class, which is the same as the name of the table in the DBMS in which the objects in the o...转载 2019-07-12 15:47:24 · 4010 阅读 · 0 评论 -
ArcGIS获取工作空间内所有图层
/// <summary>/// 获取工作空间中所有图层要素/// </summary>/// <param name="pWorkspace">工作空间</param>/// <returns></returns>public static List<string> GetAllFeatureClas...原创 2019-08-26 19:27:09 · 1199 阅读 · 0 评论 -
ArcGIS中转换和传输数据
在ArcGIS Engine开发中,难免会遇到数据的转移,例如将shp文件、mdb、gdb中图层导入SDE,从SDE中导出图层。尝试了下有以下几种方式:一、普通方法 通过源数据集新建空数据集,并以IFeatureBuffer将源数据集中要素逐条插入新数据集。个人认为有以下优势:1、可控制新建数据集的字段2、可在插入记录时更改记录。如某个字段的映射/...转载 2019-04-03 17:04:31 · 2076 阅读 · 0 评论 -
ArcGIS Engine创建要素类
一、创建独立要素类1、由FeatureClassDescriptionClass创建最简单的图层/// <summary>/// 使用要素类描述对象创建最简单的要素类,只包含2个必要字段“SHAPE”和“OBJECTID”,无空间参考/// </summary>/// <param name="featureWorkspace">目标工作空间&l...转载 2019-04-07 20:50:30 · 2015 阅读 · 0 评论 -
无法加载 DLL“ArcGISVersion.dll”: 找不到指定的模块。
AE绑定产品时报错:RuntimeManager.BindLicense(ProductCode.EngineOrDesktop, LicenseLevel.GeodatabaseUpdate); 解决方案:在 .NET 4.0框架下将目标平台改为X86就好了 在 .NET 4....转载 2019-01-26 11:13:16 · 7805 阅读 · 4 评论 -
GIS坐标系
最近GIS开发中遇到两个图层坐标系的对比是否相同。在GIS开发中总会接触到坐标系,如:地理坐标系、投影坐标系等,既然用到了,那就在这里记下一笔。那么当然先要了解一下坐标系的基本概念了。基本概念1、坐标系用来表达和确定空间位置。没有坐标系,坐标值就无从谈起,也就无法描述空间位置。 2、在GIS中,我们遇到的坐标系一般有两种:地理坐标系(GCS) 和投影坐标系(PCS)。...原创 2019-03-03 16:56:46 · 4962 阅读 · 0 评论 -
GIS空间查询(SpatialFilter)时各种空间关系总结
在使用ISpatialFilter接口进行空间关系查询时,使用esriSpatialRelEnum枚举类型来判断空间关系。1、esriSpatialRelContains(包含)和esriSpatialRelWithin(包含于)应用范围: 所有要素类之间均具有该关系描述:可细分为一个要素完全包含另一个要素和一个要素被另一个要素完全包含。它们是相对的关系,若果说...原创 2019-03-03 18:54:00 · 12064 阅读 · 1 评论 -
FeatureClass获取多字段唯一记录
测试数据:20万记录的图层,30个字段1、常规方式 gdb:耗时2846ms mdb:3293ms shp:5769ms/// <summary>/// 得到要素类某字段的唯一值/// </summary>/// <param name="FClass">要素类</param>/// <param n...原创 2019-03-23 21:50:00 · 701 阅读 · 0 评论 -
AE创建个人地理数据库MDB及文件地理数据库GDB
在ArcGIS二次开发中,不可避免的需要创建或打开工作空间用于存放要素类、栅格数据集和表。例如文件系统工作空间有Shapefile工作空间、文件地理数据库(gdb)、个人地理数据库(mdb);附上代码,打开工作空间,若不存在则创建:/// <summary>/// 打开临时地理数据库若不存在则创建/// </summary>/// <p...原创 2018-10-30 22:52:24 · 3781 阅读 · 0 评论 -
AE释放打开资源
在GDB中插入数据后记得释放相关Com组件,否则表会一直被锁着。(IFeatureBuffer,IFeatureCursor,IFeatureClass) 今天在用AE操作mdb数据库时,发现程序运行完毕,去打开mdb文件时总提示“文件已在使用中”,且ldb文件也无法删除。找了资料是因为打开MDB数据库操作后没有及时释放资源。ae的com对象是需要释放的,不然就可能会...转载 2018-10-29 23:58:32 · 536 阅读 · 0 评论 -
ArcGIS Engine中IGeoDataset接口
IGeoDataset接口仅有两个属性,用于管理地理要素集,其中Extent属性用于返回当前数据集的范围,SpatialReference属性用于获取这个数据集的空间参考。所有图层都实现这个接口。 //this function uses the Geodatasets extent to refersh the active view of a map control. ...原创 2018-03-20 09:46:51 · 2028 阅读 · 0 评论 -
ArcGIS Engine使用GP工具
在ArcGIS Engine的开发过程中也必不可少的会遇到调用GP工具的问题,调用GP工具的方式有两种:一种是使用Geoprocessing类;另一种是使用Geoprocessor托管类。两者也可能混合使用。一、GP工具的调用方式以调用系统工具Dissolve为例:准备数据:1、使用Geoprocessing类 工具参数使用IVariantArray方式输入;...转载 2019-03-31 14:09:11 · 3718 阅读 · 0 评论 -
ARCGIS Engine创建连接SDE的.sde文件
在使用ArcMap中设置数据库连接后,系统会自己生成一个用来连接空间库的.sde文件。一般存在于@”C:\Users\Feng\AppData\Roaming\ESRI\Desktop10.2\ArcCatalog文件夹下。在很多情况下我们会用到这个sde文件去操作SDE库。例如:GP工具输出结果到SDE时。/// <summary>/// 创建SDE连接文件/...原创 2019-03-31 18:22:07 · 2305 阅读 · 0 评论 -
C#连接ArcSDE的几种方式
一、文件连接IWorkspaceFactory sdeFac = new SdeWorkspaceFactory();IWorkspace workspace = sdeFac.OpenFromFile(@"F:\GIS测试数据\aa.sde", 0); //通过文件连接二、字符串连接string connectionString = "DATABASE=orcl;INSTAN...原创 2019-03-31 20:22:58 · 1078 阅读 · 0 评论 -
ArcGis Engine字段
一、获取字段信息/// <summary>/// 获取字段信息/// </summary>/// <param name="pField"></param>public static void GetMsgFromField(IField pField){ var name = pField.Name; //字段...原创 2019-04-07 20:45:14 · 1422 阅读 · 0 评论 -
ArcGIS读取DBF属性表中文乱码
环境win10,ArcGIS desktop 10.2 再ArcGis中打开dbf文件时,表中的中文显示为乱码了。百度找了好多资料,得知使用 ArcGIS for Desktop 打开 dBase 表文件时,程序先去读头文件中的 Language Driver ID (LDID) 或者是同名 *.CPG文件。前面二者都是用来在读文件之前,决定用什么编码类型来正确读出文件。如果有必...转载 2018-10-30 00:37:15 · 16249 阅读 · 4 评论