ArcEngine 一些实现代码】的更多相关文章

转自原文 ArcEngine 一些实现代码     ●·● 目录: A1 …………实现:鼠标滑过显示要素 tip A2 …………实现:通过鼠标选择要素并高亮显示(ISelectionEnvironment) A3 …………实现:只显示筛选的要素(IFeatureLayerDefinition) A4 …………实现:高亮显示筛选的要素(IFeatureSelection) A5 …………实现:类似 ArcMap 中 Identify 工具的效果(IIdentify.IArray.IIdentify…
需求: 在ArcGIS项目中,大型的数据库都是使用ArcSDE进行连接管理.使用的数据版本(Version)都是默认版本(sde.default).这样多个人员在编辑的过程中就直接编辑的是默认版本数据.只要能够连接数据库就可以对默认版本进行随意的更改.一旦编辑保存到数据库之后就无法更改,除非有数据库备份,使数据编辑变得不灵活. 解决方案: ArcGIS是有数据版本就出来了.数据库版本可以以默认版本(sde.default)为模板,创建多个子版本(Version).然后用户编辑子版本的时候对父版本…
转自原文 ArcEngine判断要素(feature)是否为multipart feature及分解(炸开)代码 #region 校验合法性 ArrayList pFeatureArray = null; pFeatureArray = Application.Editor.FeatureSelection(); int count=pFeatureArray.Count; ) { MessageBox.Show("最少必须选择1个要素才能进行要素分解!", "提示"…
IElement pEle = pLineEle as IElement; pEle.Geometry = pLn; pLn为一个ILine对象,想当然的以为它是IGeometry对象,可以赋值,结果爆出异常值不在预期范围内. 解决方法是将ILine转换为IPolyline对象,涉及到一些Geometry的基本操作.贴出一些可用的绘制元素的代码 #region 获取RgbColor /// <summary> /// 获取RgbColor颜色对象 /// </summary> //…
前言:做ae开发大部分人都是用C#版,很少用到java版,本系列文章主要介绍java版ae开发的入门,对于ae接口的高级应用,可以看C#版相关文章 开发环境软件: Intellij IDEA 2018 java jdk 1.8 32位版 arcgis desktop 10.4.1 ArcObject sdk java 10.4.1 PS:本文要求读者有一定java开发基础,有jdk配置和idea使用经验,否则牵涉基础知识太多没法解释全 PS:本文使用的控件库是swing,swing是目前java…
目录 第一章 基础功能的核心代码 实现滚轮缩放事件 创建或获取地理数据(导入前询问用户是否覆盖) 创建要素类(Shape) 点列数据创建要素类 Shape文件创建要素类 GDB中取出要素类 创建栅格数据集(DEM) 栅格数据文件创建栅格数据集 GDB中取出栅格数据集 创建三维地形数据(TIN) 由栅格数据集创建三维地形数据 TIN文件创建三维地形数据 将地理数据导入GDB 将要素集导入指定的GDB的要素数据集中 将栅格数据导入指定的GDB中 设置三维符号化样式 获取要素类某个字段的唯一值 对Ge…
/// <summary> /// 根据查询条件构造/// </summary> /// <param name="where">查询条件</param> public void FilterLayer(string where) { IFeatureLayer flyr = (IFeatureLayer)axMapControl1.get_Layer(0); IFeatureClass fcls = flyr.FeatureClass;…
using System; using System.Drawing; using System.Collections; using System.ComponentModel; using System.Windows.Forms; using System.Data; using System.IO; using System.Runtime.InteropServices; using ESRI.ArcGIS.esriSystem; using ESRI.ArcGIS.Carto; us…
文转载自hymyjl2010<Arcengine效率探究之二——属性的更新>   修改一批要素的属性有多种方法,当数据量较大时,若选择不当可能会大大影响速度. 一.IRowBuffer 方法 此法适用于将一批数据更新为某一相同的属性. IQueryFilter pFilter = new QueryFilterClass();pFilter.WhereClause = "Z='T'";pFilter.SubFields = "Z";int nIndex…
原发表于ESRI中国社区,转过来.我的社区帐号:jhlong http://bbs.esrichina-bj.cn/ESRI/viewthread.php?tid=122097 ----------------------------------------我是分割线,下面才是正文--------------------------------------------------------   1.说明6周年征文 似乎就我这一篇ArcEngine开发的,搞开发的很少么?还是搞开发的都不善于言语…
ArcEngine岛状多边形获取其内部环 查阅了帮助文档相关接口,内部环的获方法get_InteriorRingBag() 需要外部环作为参数.而外部环可以直接通过ExteriorRingBag属性获取. 具体参考下述代码(代码参考官方帮助文档): IPolygon4 pMergerPolygon=pFeature.Shape as IPolygon4; IGeometryBag pOutGeometryBag = pMergerPolygon.ExteriorRingBag; //获取外部环…
使用ArcGIS Desktop “添加XY数据”或者“创建XY事件图层”工具 可以导入Excel坐标数据,生成临时图层并添加至ArcMap.ArcGlobe或者ArcScene中.在ArcEngine中可以利用GP工具(MakeXYEventLayer)将某个 x,y 坐标表添加到地图.globe 或 scene 中.该数据表中必须包含两个字段:一个用于 x 坐标,一个用于 y 坐标.Excel表的表头最好字段放至第一行,否则会报错.原本想直接将MakeXYEventLayer创建事件图层添加…
(SDE.personal/File.ShapeFile.CAD数据.影像图.影像数据集) ArcEngine 可以接受多种数据源.在开发过程中我们使用了如下几种数据源 1.企业数据库(SDE) 企业数据库需要使用SDE来管理,所以需要使用SDE的Workspace来表示连接.在AE接口中,Workspace是由Factory打开的.代码如下: // //准备连接参数 ESRI.ArcGIS.esriSystem.IPropertySet pPropSet=new PropertySetClas…
在上一篇ArcEngine环境下合并断开的线要素(根据属性)随笔中介绍了如何通过shp文件属性表中相同的属性字段进行线要素的合并.今天刚把通过几何条件判断的方式连接断开的线要素的ArcGIS 插件完成,在这里把思路和代码和大家分享下: 一,程序思路和实现过程 1.首先读取shp线文件,将各条线要素遍历,存储在List<IFeature>,这里之所以不存在List<IPolyline>和List<IGeometry>中的原因是后两者会丢失要素的属性信息: 2.为了简化合并…
//只用前五行,可以直接将选中的面要素的颜色全部修改成红色,也就是填充颜色 IRgbColor pRgbColor= new RgbColor();; pRgbColor.Red = ; pRgbColor.Green = ; pRgbColor.Blue = ; IFeatureSelection pFtSelection = pFeatureLayer as IFeatureSelection; //符号边线颜色 ,下边这五行设定选中面的边线,但是需要配合后边的代码执行 IRgbColor…
using ESRI.ArcGIS.Carto;using ESRI.ArcGIS.Geodatabase;using ESRI.ArcGIS.DataSourcesFile; using ESRI.ArcGIS.Geometry; using ESRI.ArcGIS.esriSystem;using ESRI.ArcGIS.Controls;using ESRI.ArcGIS.Display; //有时候只简单的处理一点数据,不想打开一个Form,就希望偷懒,在控制台中写点代码,直接把数据处理…
开发环境:Windows7旗舰版64bit.VisualStudio2008 With SP1.ArcEngine10.0.NetFrameWork4.0.IIS7和C#开发语言. 背景:ArcEngine开发的分析功能同时在dotNet(CS)和Java(BS)中使用,在CS程序中运行正常,但是在BS运行下经常无法获得分析数据,因此想通过写一个WebService的方式进行解决. 因为之前一直做成CS的东西,很少接触BS内容,完全从0写起,因此写起来遇到了不少问题.比较费事. 下面记录下我写的…
四 ArcEngine实现创建网络数据集 ArcEngine创建网络数据集的过程,与ArcMap设置的过程类似,主要通过六个步骤即可以实现. 1 定义网络数据集对象,并设置基本属性,包括网络数据集名称,空间参考,空间范围等内容. 关键代码如下: /// <summary> /// 创建网络数据集对象 /// </summary> /// <param name="featureDataset">包含网络数据集的空间要素集</param>…
一 引子 网络数据集,GIS空间分析基础的理论和知识,是最短路径分析.连通性分析等其他空间分析技术的数据基础. 以往,网络数据集的研究很少,此次项目开发过程中,对网络数据集以及arcengine创建网络数据集的实现流程,比较深入的了解.功能实现过程中,遇到了不少的问题,通过不断的解决问题,熟悉了相关的几个AE接口的设置和使用.创建网络数据集的功能实现,相对于其他的AE功能实现来说,是比较复杂的.主要是对应接口属性设置的不熟悉造成的,而且还有遵循固定的步骤设置. ESRI官网样例代码及网络资料,对…
因项目需要,需要做一个旋转注记的工具.因为注记这玩意用的比较少,网上资源也很少,所以做起来相当头疼.在经过一番研究之后,终于搞清楚注记的存储原理了,原来是和Element的类似,只不过注记是要把Element写入FeatureClass的.那么好,事情简单多了,能实现旋转Element,就能实现旋转注记了.于是乎又在网上找旋转Element的资源,没想到又遇上难题.ArcEngine里面实现带轨迹的元素旋转的接口是IRotateTracker,但是这玩意很不好用,不知道是不是我没研究到位,我用了…
jojojojo2002 原文 ArcEngine下投影坐标和经纬度坐标的相互转换 投影转经纬度 private IPoint PRJtoGCS( double x, double y) { IPoint pPoint = new PointClass(); pPoint.PutCoords(x, y); ISpatialReferenceFactory pSRF = new SpatialReferenceEnvironmentClass(); pPoint.SpatialReference…
ArcEngine中打开各种数据源(WorkSpace)的连接 (SDE.personal/File.ShapeFile.CAD数据.影像图.影像数据集) ArcEngine 可以接受多种数据源.在开发过程中我们使用了如下几种数据源 1.企业数据库(SDE) 企业数据库需要使用SDE来管理,所以需要使用SDE的Workspace来表示连接.在AE接口中,Workspace是由Factory打开的.代码如下: // //准备连接参数 ESRI.ArcGIS.esriSystem.IProperty…
ArcEngine中打开各种数据源(WorkSpace)的连接 ArcEngine中打开各种数据源(WorkSpace)的连接 (SDE.personal/File.ShapeFile.CAD数据.影像图.影像数据集) ArcEngine 可以接受多种数据源.在开发过程中我们使用了如下几种数据源 1.企业数据库(SDE) 企业数据库需要使用SDE来管理,所以需要使用SDE的Workspace来表示连接.在AE接口中,Workspace是由Factory打开的.代码如下: // //准备连接参数…
原文 ArcEngine中打开各种数据源(WorkSpace)的连接(SDE.personal/File.ShapeFile.CAD数据.影像图.影像数据集) ArcEngine 可以接受多种数据源.在开发过程中我们使用了如下几种数据源 1.企业数据库(SDE) 企业数据库需要使用SDE来管理,所以需要使用SDE的Workspace来表示连接.在AE接口中,Workspace是由Factory打开的.代码如下: // //准备连接参数 ESRI.ArcGIS.esriSystem.IProper…
原文 ArcEngine查询.添加.删除要素的方法 1.查找数据 1).利用FeaturCursor进行空间查询 //空间查询 ISpatialFilter spatialFilter = new SpatialFilterClass(); spatialFilter.Geometry = envelope;//指定几何体 String shpFld = featureClass.ShapeFieldName; spatialFilter.GeometryField = shpFld; spat…
ArcEngine对矢量数据进行风格化实在是得心应手,同样的对于栅格图像也能进行风格化!以前没接触过,今天正好需要,做出了栅格图像的渲染!下面实现的思路: 1.定义渲染的一系列接口 2.判断图像是否建立了直方图,如果没有则进行创建. 3.定义颜色序列,为渲染提供渲染的方案. 4.调用Render方法进行渲染. 下面是代码:有两个方法,一个是加载栅格数据,一个是进行渲染,接着在事件里面调用方法,实现图像渲染! ///         /// 栅格分类专题图         ///        …
Arcengine窗体开发中,不同命令或者工具可能会触发同一控件的同一事件,这样会造成该事件中代码的混乱.以主窗体的AxMapcontrol控件为例,当开始画图时因为有很多种类型的Feature,所以在AxMapcontrol控件的OnMouseDown.OnMouseMove.OnMouseUp等事件中都需要作相应的处理. 最简单的方法时利用if语句在各事件中做状态判断,来执行相应的语句.但是当你的程序达到一定规模的时候,你的这些事件中的代码将变的非常庞大,严重影响代码的可读性和可维护性,如图…
基于ArcEngine的影像数据管理系统研制 如果批处理,速度很慢,效率低. 详情如下: 分成很多小块的影像数据,要达到连续显示的效果,并导入ArcSDE for SQL Server中以方便管理.在ArcEngine的开发包中,提供两种实现方式: 1)        MosaicRaster类的append方法可用于将多个栅格数据镶嵌到一块,再利用该类的saveAs方法就把镶嵌到一块的栅格数据集保存到本地.个人Geodatabase或者ArcSDE中.这种方式的优点是实现容易.代码简洁:缺点是…
转自:http://www.cdtarena.com/javapx/201307/9105.html 镶嵌数据集结合了之前arcgis管理影像的栅格目录和栅格数据集,为解决海量影像管理提供了很好的方案!为什么要使用镶嵌数据集?•可伸缩性海量影像管理 •重叠影像管理•管理离散数据集大量的空值区域•多种传感器数据支持•流畅的影像更新•所有比例尺下无缝显示•保留有价值的元数据信息•动态处理减少处理时间•减少冗余存储•减少重采样,提升影像质量开发代码使用java调用ArcEngine环境.首先初始化AE…
1. 新建立GP模型 在VS2010中新建一个普通的程序及,引入ArcEngine相关的dll.在该DLL中定义一个或多个GP类和一个GP工厂类.GP类要继承IGPFunction2接口,GP工厂类要继承IGPFunctionFactory接口. 下面是各个接口的一些实现方法 IGPFunction2 接口 接口意义 UID DialogCLSID { get; } 对话框的类标识,该方法在实现时直接返回为空即可. public UID DialogCLSID{ get{ return null…