ArcEngine
文章平均质量分 67
kone666
这个作者很懒,什么都没留下…
展开
-
ArcGIS Engine代码共享-工作空间(workspace)
public class WorkspaceHelper { public static string GISConnectionString; public static IWorkspace GetAccessWorkspace(string sFilePath) { if (!File.Exi转载 2016-03-09 09:41:33 · 1157 阅读 · 0 评论 -
ArcEngine数据导入经验(大数据量)
(一)GIS系统数据是基础,想必大家在做ArcEngine二次开发的过程中都会遇到向MDB和SDE写入数据的工作,我们将会通过几个篇幅,从大数据量导入过程中的问题和解决方式入手带给大家一些实用的经验。1.数据的写入和删除要使用IWorkspaceEdit.StartEditing来开启一个编辑流程,千万别草率的写入和删除。使用该接口,如果数据在处理过程中出现任何异常,可以不对操作结果进行保...转载 2016-02-23 17:35:02 · 3499 阅读 · 0 评论 -
GeoDataBase要素的添加和删除、属性的读取和更新
1. 要素的添加ArcGIS Engine中,主要有两个方法用于要素的添加: Using IFeatureClass.CreateFeature followed by IFeature.Store Using IFeatureClass.CreateFeatureBuffer with an insert cursor 批量插入feature,如果用feature.stor...原创 2015-09-17 13:56:58 · 1739 阅读 · 0 评论 -
通过栅格类型扩展使ArcGIS 支持更多传感器类型
1 WHAT:什么是栅格类型? ArcGIS海量影像管理解决方案推出已经有一年时间了,相信很多朋友已经对ArcGIS中如何管理海量影像数据有了大致了解。ArcGIS 10.0中推出了适用于海量影像管理的镶嵌数据集模型(Mosaic Dataset),单个镶嵌数据集就可以管理数百万景,不同时相、不同分辨率、不同坐标系、不同空间位置的影像。为了将各种来源,形式各异的影像数据导入镶嵌数据集...转载 2016-03-25 11:51:36 · 1334 阅读 · 0 评论 -
Geoprocessor 裁切
private void Clipbyprovince() { Geoprocessor gp1 = new Geoprocessor(); gp1.OverwriteOutput = true; ESRI.ArcGIS.AnalysisTools.Clip Clip = new ESRI.ArcGIS.An转载 2015-09-14 23:07:43 · 1048 阅读 · 0 评论 -
ArcGIS批量添加字段 AddField
前些日子做了一个数据库的修改工作,要为数据添加字段,数据为Geodatabase类型,里面有90多个图层,每个图层添加6个字段,一共要做2个小时左右,而且效率比较低,容易出错,因此想到了通过程序来解决。 实现如下,首先先建立程序主窗体,包括TocControl,AxMapControl和ToolBarControl,设置好他们之间的Buddy属性,在ToolBarControl原创 2016-04-14 09:57:14 · 14673 阅读 · 0 评论 -
IEngineEditor与IWorkspaceEdit,以及相关的事件监听
IEngineEditor适用于直接在图层上的编辑,例如使用“要素编辑”工具菜单上的“开始编辑”等工具进行编辑,相应的事件使用IWorkspaceEdit监听,例如以下的代码:[c-sharp] view plain copyprivate IEngineEditor m_EngineEditor = new EngineEditorClass(原创 2016-04-14 10:26:47 · 1124 阅读 · 0 评论 -
ArcGIS Engine控件运行许可
Runtime绑定:在ArcGIS Engine10.0中,许可方式发生了一定的变化,ArcGis10有一个新的要求---runtime绑定。就是在任何ArcObjects代码(包括许可初始化代码)被执行前,指定相称的ArcGIS产品---ArcGIS Desktop或者ArcGIS Engine应用程序。 建立runtime绑定的APIs位于程序集ESRI.Arc原创 2016-05-12 10:54:35 · 1440 阅读 · 0 评论 -
CreateFeature
1.Using the CreateFeature and Store methodspublic static void CreateFeature(IFeatureClass featureClass, IPolyline polyline){ // Build the feature. IFeature feature = featureClass.CreateFe原创 2016-03-09 15:59:42 · 1509 阅读 · 0 评论 -
UpdateFeature
Updating featuresThis topic explains how to updates features in a geodatabase feature class. Two approaches are shown, one that updates an individual feature using the IFeature.Store method, and o原创 2016-03-10 09:28:18 · 1646 阅读 · 0 评论 -
Editing with the geodatabase API
This topic discusses how to use edit sessions and edit operations to manage the creation, modification, and deletion of data in a geodatabase.Starting and stopping edit sessions and operations原创 2016-03-10 09:22:15 · 659 阅读 · 0 评论 -
DeleteFeature
一、 几种删除方法代码1. 查询结果中删除 private void Delete1(IFeatureClass PFeatureclass) { IQueryFilter pQueryFilter = new QueryFilterClass(); pQueryFilter.WhereClause = "obje转载 2016-03-09 13:54:41 · 1677 阅读 · 1 评论 -
ArcGIS License初始化
IAoInitialize m_AoInitialize = null; ESRI.ArcGIS.RuntimeManager.Bind(ESRI.ArcGIS.ProductCode.EngineOrDesktop); if (!RuntimeManager.Bind(ProductCode.EngineOrDesktop))原创 2016-05-06 15:00:27 · 2979 阅读 · 0 评论 -
空间分析相关接口(ITopologicalOperator,IRelationalOperator,IProximityOperator)
空间分析功能是GIS的主要功能之一,本章将为读者介绍一些GIS开发常用的功能涉及到的空间拓扑运算,空间关系运算,空间临近运算所使用到的接口。6.1 目标 熟悉ITopologicalOperator接口(用于空间拓扑运算)的使用; 熟悉IRelationalOperator接口(用于空间拓扑运算)的使用; 熟悉IProximityOperator接口(用于空间拓扑运算原创 2016-05-31 20:08:18 · 2377 阅读 · 0 评论 -
Querying data
Geodatabase应用程序编程接口(API)提供了许多不同的方式来查询表和要素类。本主题介绍如何使用query filters, spatial filters, and QueryDefs对数据进行查询。1.IQueryFilter interface// Create the query filter.IQueryFilter queryFilter = new Quer原创 2016-06-08 13:38:23 · 553 阅读 · 0 评论 -
Executing spatial queries
空间查询是基于与某几何要素的空间关系的查询。1.Finding features within a polygon// Get the feature and its geometry given an ObjectID.IFeature stateFeature = stateFeatureClass.GetFeature(14);IGeometry queryGeometr原创 2016-06-08 14:48:10 · 829 阅读 · 0 评论 -
Sorting tables
本主题演示使用ITableSort接口的工作流程。1.Implement a custom comparison methodITableSort tableSort = new TableSortClass();tableSort.Compare = new StreetNumberSort();tableSort.Table = table;tableSort.Fields =原创 2016-06-08 15:16:21 · 541 阅读 · 0 评论 -
Joining data
Joining data追加的字段来自一个或多个表。ArcGIS提供加入数据的几种方法,这取决于数据的来源和数据的基数。本主题介绍了可用的选项,以及如何决定哪个选项是最好的应用程序。// Create the query definition.IQueryDef queryDef = featureWorkspace.CreateQueryDef();// Provide原创 2016-06-08 15:22:22 · 604 阅读 · 0 评论 -
Converting and transferring data
1.Copying and pasting geodatabase datasets// Create workspace name objects.IWorkspaceName sourceWorkspaceName = new WorkspaceNameClass();IWorkspaceName targetWorkspaceName = new WorkspaceNameClass原创 2016-06-08 16:18:42 · 882 阅读 · 0 评论 -
ArcGIS Engine中 IGeometry和Json字符串的相互转换
1. IGeometry和Json字符串的相互转换将 ESRI.ArcGIS.Geometry.IGeometry转换成Json字符串,搜索网上很多都是字符串拼接的,偶然发现有现成的类可以转换,主要使用ESRI.ArcGIS.Geometry.JSONConverterGeometryClass、ESRI.ArcGIS.esriSystem.IJSONWriter、ESRI.ArcGIS.es转载 2016-07-01 14:22:42 · 2981 阅读 · 0 评论 -
ArcGIS Engine加载ArcGIS Server服务
方法一:1.打开连接private void OpenConn(bool bLAN,string sval) { try { IAGSServerConnectionFactory pConnF = new AGSServerConnectionFactory();原创 2016-06-20 13:09:43 · 2646 阅读 · 1 评论 -
ArcGIS Engine 矩形外扩指定距离
在ArcGIS Engine下如何实现矩形外扩指定距离?可以使用接口 ITransform2D。ITransform2D.Scale(IPointOrigin,doublesx,doublesy);其中 Origin为缩放基点、sx与sy分别是X、Y方向的缩放因子。在开发帮助中我们可以下面的描述:where sX is the ratio of Old Width to原创 2016-06-20 13:50:35 · 10139 阅读 · 0 评论 -
ArcEngine 释放锁文件,彻底移除图层
ArcMap在加载图层时会自动生成一个lock格式的加锁文件,右击移除图层后,加锁文件也会自动删除。但AE开发中却不能正常删除,移除图层后加锁文件依然存在,这就导致在其他地方无法对该图层进行操作,只有关闭程序才能删除加锁文件,彻底释放资源。如果不关闭程序,锁文件也删除不了。即使用使用方法将工作空间释放了,也不能删除锁文件。帮助文档中有这样的接口代码:转载 2016-08-01 10:31:46 · 3507 阅读 · 0 评论 -
GP开发示例:数据库去重
这个例子专业讲解基于ArcEngine使用GP开发的过程及遇到的问题。更多GP使用方法:GP使用心得功能需求:现在外业第一次数据(简称调绘.mdb)和第二次数据(简称检查.mdb)有重复。第二次是在第一次的基础上进行的,即如果调绘.mdb中LCA层有365个要素,检查时发现错误,就删除了11个错误,并新增了43个,共408个,检查.mdb相对于调绘.mdb实际上有354个重复,现在要将重复的删...转载 2016-08-01 14:56:40 · 1893 阅读 · 0 评论 -
IName,IDatasetName,数据转换
一、Name对象 Name对象是一个代表性对象。通过使用Name对象,可以访问它所代表的对象的一些基本属性,而不用将整个对象调入内存,如果需要用到Name对象所代表的对象本身,可以通过Name来获取它。 Name对象可以应用于Tables,FeatureClasses和Workspaces。Name: 1、WorkspaceName 2、转载 2016-09-07 09:22:50 · 3817 阅读 · 0 评论 -
对Toc中图层另存为Mxd文档
IMxdContents pMxdC; pMxdC = axMapControl1.Map as IMxdContents ; IMapDocument pMapDocument = new MapDocumentClass (); pMapDocument.New ("d:\aa3.mxd"); pMapDocument.ReplaceContents (pMxdC)原创 2016-11-02 16:51:20 · 423 阅读 · 0 评论 -
创建FileGeodatabase,创建要素类,创建域对象,创建子类,创建要素
原文地址:http://blog.csdn.net/linghe301/article/details/8485709/******************************************/ * ESRI Developer Summit 2009 * Developer's Guide to the Geodatabase * Code Samples转载 2017-01-20 17:02:00 · 1498 阅读 · 0 评论 -
ArcGIS Engine中关于Cursor的使用
原文地址:http://blog.csdn.net/linghe301/article/details/8485624/******************************************/* ESRI Developer Summit 2009* Developer's Guide to the Geodatabase* Code Samples* 6...转载 2017-01-20 17:08:18 · 1925 阅读 · 0 评论 -
Polygon,Ring,Segment
Polylgon对象是由一个或多个Ring对象的有序集合,它可以是由单个Ring对象构成,也可以使用多个Ring组成如下图所示。其中Ring可以分为Outer Ring(外环)和Inner Ring(内环)之分。外环和内环都是有方向的,它们的区别是外环的方向是顺时针的,内环的方向是逆时针。如果多边形只有外环,没有内环,很好处理,难得是如何将内环和外环区分开来,并且保证正确的内外环包含关系。原创 2017-01-22 13:34:16 · 1403 阅读 · 0 评论 -
获取Polygon顶点坐标
//获取绘制的多边形IGeometry drawGeo = _mapControl.TrackPolygon();//判断绘制多边形是否为null,并不为空图形if (drawGeo != null && !drawGeo.IsEmpty){ //图形转为点集 IPointCollection pPointColl = drawGeo as IPointCollecti原创 2017-01-26 14:18:54 · 5262 阅读 · 0 评论 -
获取mxd中feature所在图层的渲染方式
mxd中存储的是各类数据的渲染样式等,不存储数据本身,在ArcEngine中在增加或者其他编辑的时候,需要获取到feature所在图层的渲染样式,下面是博主在参考其他资料的基础上实现的获取mxd中图层的渲染方式: IFeatureClass featureClass = null; IObjectClass objectClass = featu原创 2017-01-26 14:32:01 · 1037 阅读 · 0 评论 -
投影转换GP工具
static public bool ChangeProject(string inputPath, string prjPath, string outputPath) { try { IFeatureLayer layer = Lib.Layer.getShpLayer(inputPath, ""); IGeoDataset转载 2017-03-20 10:59:36 · 1271 阅读 · 0 评论 -
ArEngine添加、删除属性表字段
/// /// 删除属性表字段 /// /// 需要添加字段的IFeatureLayer /// 添加的字段的名称 /// static public bool DeleteField(IFeatureLayer layer, string fieldName) { try原创 2017-03-21 12:28:47 · 2327 阅读 · 0 评论 -
获取线要素交点
IFeatureLayer flayer = axMapControl1.Map.get_Layer(0) as IFeatureLayer; IFeatureClass fClass = flayer.FeatureClass; int fCount = fClass.FeatureCount(null);原创 2017-03-29 15:27:51 · 1247 阅读 · 0 评论 -
为镶嵌数据集创建快视图
镶嵌数据集(Mosaic Dataset)是ArcGIS 10.0中推出的一种全新的空间数据模型,用于管理海量影像数据。我们经常需要访问影像数据的快视图,本文将为您介绍如何批量地为镶嵌数据集创建快视图文件。环境说明:本例采用的是File Geodatabase,即文件地理数据库来存储镶嵌数据集;使用ArcObjects开发,以ArcGIS Add-In的方式部署在ArcMap中,作为一个命令工...转载 2017-03-15 00:16:55 · 698 阅读 · 0 评论 -
ArcEngine 面要素类转点
虽然有方便的GP工具FeatureVerticesToPoint。然而其需要最高权限,某些时候没法使用,可以用下面的函数作为替代。[csharp] view plain copy /// /// 要素节点转点 /// /// 要转换的要素类转载 2017-03-31 11:29:10 · 2933 阅读 · 1 评论 -
ArcEngine的拓扑检查类
[csharp] view plain copy 主要有添加构建拓扑,拓扑中添加要素,添加规则,输出拓扑错误的功能。 使用:[csharp] view plain copy TopologyChecker topocheck = new TopologyChecke转载 2017-03-31 12:50:22 · 3028 阅读 · 2 评论 -
提取拓扑错误并导出
将Arcengine拓扑错误的要素提取出来并导出为shape文件拓扑错误提取:[csharp] view plain copy private void PRV_GetErrorFeature(ITopologyRule IN_TopologyRule) { IEnvelope Temp_E转载 2017-03-31 12:57:08 · 3654 阅读 · 1 评论 -
ArcEngine开发_添加字段,数据删除,插入,更新细节
一、AE 向已存在的要素类中添加字段 链接: AE 向已存在的要素类中添加字段在向已存在的要素类中添加字段的时候,需要用到ICLASS接口。于是,进一步的调整代码如下,问题得以解决static void AddFiled(IFeatureClass pFC,string name){DeleteFile(pFC, name);IFields pFields = pF原创 2017-03-31 13:15:45 · 6244 阅读 · 0 评论 -
ArcGIS Engine下实现地图输出
ArEngine给我们提供了很多种将地图输出的方式,包括文件方式和打印等,这些方式又受不同参数的控制有着不同的效果。要想得到符合我们要求的效果,就必须了解这些方法所表达的意思和参数的内容,下面简要说明一下,其它的可以参考开发文档。思路:采用IActiveView接口下的output方法,可以将地图输出为上十种格式,具体的格式受IExport类型限制,如ExportBMP,ExportPN...转载 2017-04-21 10:32:17 · 8309 阅读 · 5 评论