ArcGIS Engine开发前基础知识(1)
ArcGIS二次开发是当前gis领域的一项重要必不可少的技能。下面介绍它的基本功能
一、ArcGIS Engine功能
在使用之前首先安装和部署arcgis sdk,(在这里不在赘述相关知识)可以实现的功能主要有地图的基本操作、信息查询、专题地图制作、数据编辑、网络分析、空间统计分析、三维分析等。
1、地图的基本操作
地图的基本操作主要包括加载矢量、栅格数据,浏览缩放地图,保存地图,在地图上显示文本注记,绘制点线面几何体等。
2、信息查询
信息查询主要通过矩形圆形或多边形来选中地图上的要素,或者通过sql语句进行要素属性的查询。
3、专题地图制作
专题地图制作就是使用各种渲染方式(如分级渲染、柱状图渲染、点密度渲染、比例尺渲染等)绘制地图图层,生成不同的专题图。
4、数据编辑
数据编辑功能即对数据进行编辑操作以满足各种需求,如对GIS矢量数据进行添加删除,对节点进行移动、添加、删除,对属性信息进行修改等操作。
5、网络分析
网络分析分为交通网络分析和几何网络分析。在交通网络分析中,可以实现最短路径分析等相关功能,在几何网络分析中,可以进行管爆分析、查找源和汇等有关操作。
6、空间统计分析
空间统计分析主要分析数据的空间关系和空间特征,可以实现距离制图、密度制图、栅格插值,坡度和破向提取、单元统计、分区统计等。
7、三维分析
三维分析是实现数据的三维可视化显示,该功能主要舒勇GlobeControl和SceneControl来实现。
二、ArcGIS Engine类库
arcgis Engine不同组件库分别封装不同的GIS功能。在.NET环境中,不同的GIS功能分别被定义在不同的命名空间内。
ArcGIS Engine提供的类库主要可以分为Version类库、界面和空间类库、数据访问类库、数据分析类库等几大部分。
1、Version类库
Vision类库包含将独立的应用程序绑定到特定的ArcGIS系列产品中的方法。在使用AE 10进行开发的过程中,需要在应用程序中的启动阶段添加arcgis产品的绑定,所包含的绑定产品有ARCReader、Desktop、Engine、EngineOrDesktop和Server五种。
2、界面和控件类库
- System类库
System类库包含在ESRI.ArcGIS.esriSystem命名空间下,是ArcGIS体系结构中最底层的类库,为构成ArcGIS的其他类库提供相关的组件。该类库中最重要的是AoInitalize(初始化)对象,它用于初始化ArcObjects组件运行许可。
- System UI类库
System UI类库包含在ESRI.ArcGIS.SystemUI命名空间下,包含用户界面组件接口的定义,如ICommand、ITool和IToolControl等接口,开发人员通过对这些接口的继承来扩展自己的ArcGIS应用程序。
- Controls类库
Controls类库包含在ESRI.ArcGIS.Controls命名空间下,主要包含一系列的用户界面组件及相关的操作接口,主要有MapControl、PageLayoutControl、ReaderControl、TOControl、ToolbarControl等。
3、可视化显示类库
- Carto类库
- Carto类库包含在ESRI.ArcGIS.Carto命名空间下。它是最重要的地图可视化类库,支持地图的创建和显示。类库中的Map对象包括空间参考、地图比例尺,以及操作地图图层等多种属性和方法,可以将许多不同类型的容器,其中的地图元素包括指北针、图例和比例尺等。
- Geometry类库
- Geometry类库包含在ESRI.ArcGIS.Geometry命名空间下。它用来处理存储在要素类中的几何图形或其他类型的图形元素,如用户绘制的图形等。基本几何图形对象有Point、MultiPoint、Polyline和Polygon等。Polyline和Polygon由一系列相连接的、构成Path的片段组成,片段的类型有Circular Ari(圆形)、Line、Elliptical Ari椭圆)和Bezier Curve(贝塞尔曲线)等。所有几何图形对象都可以有与其顶点相关联的Z(elevation)、M(measure)和IDS属性。所有的几何图形对象也都支持诸如Buffer、Clip等几何操作。
- GIS中的实体指的是现实世界中的地理要素,而现实世界中地理要素的位置由一个带有空间参考的几何图形来定义。空间参考对象(地理坐标系统和投影坐标系)也都包括在Geometry类库中,可以通过添加新的空间参考来扩展参考系统。
- Display类库
- Display类库包含在ESRI.ArcGIS.DisPlay命名空间下。它不仅包含GIS数据的显示对象,还包含符号和颜色对象,用以控制实体绘制的各种属性等。开发人员与程序最常用的交互方式就是使用Map对象或PageLayout对象提供的视图(View)。
- OutPut类库
- Output类库包含在ESRI.ArcGIS.Output命名空间下。用于创建输出到诸如打印机或绘图仪等设备的图形,以及增强型图元文件和栅格图像格式等硬拷贝格式的图形。
- Carto类库
4、数据访问类库
- Geodatabase类库
- Geodatabase数据库包含在ESRI.ArcGIS.Geodatabase命名空间下。它提供开发地理数据库相关功能所需要的应用程序编程接口。Geodatabase类库中的对象为ArcGIS支持的所有数据源提供了一个统一的编程模型。此外,Geodatabase类库还可以通过PlugInDataSource对象来添加自定义的矢量数据源。
- DataSourcesFile类库
- DataSourcesFile类库包含在ESRI.ArcGIS.DataSourcesFile命名空间下。它包含用于访问文件数据源的GeoDatabase应用程序编辑接口。基于文件的数据源包括Shapefile、Coverage、TIN、CAD/StreetMap和VPF等。
- DataSourcesGDB类库
- DataSourcesGDB类库包含在ESRI.ArcGIS.DataSourcesGDB命名空间下。它包含用于访问数据库数据源的GeoDatabase应用程序编辑接口。这些数据源包括Microsoft Access和ARCSDE支持的关系数据库管理系统,如Microsoft SQL Server和Oracle等。
- DataSourcesOleDB类库
- DataSourcesOleDB类库包含在ESRI.ArcGIS.DataSourcesOleDB命名空间下。它包含访问Microsoft OLE DB数据源的GeoDatabase应用程序编辑接口。此类类库只能在Microsoft Windows操作系统上,可以连接所有的支持OLE DB的数据库。
- DataSourcesRaster类库
- 包含在ESRI.ArcGIS.DataSourcesReaster命名空间下。它包含访问栅格数据源的GeoDatabase应用程序编辑接口,能够访问基于ARCSDE的关系数据库所支持的RDO栅格文件格式。当需要支持新的栅格格式时,开发者不是扩展这个类库,而是通过扩展RDO来实现。
- GeoDatabaseDistributed类库
- 包含在ESRI.ArcGIS.GeoDatabaseDistributed命名空间下。它通过提供地理数据库数据导入和导出工具,以支持对企业级地理数据库的分布式访问。
- Geodatabase类库
5、数据分析类库
- NetworkAnalysis类库
- 包含在ESRI.ArcGIS.NetworkAnalysis命名空间下,它提供地理数据库中加载几何网络数据对象,并提供对象用于分析加载到地理数据库中的几何网络。可以扩展NetworkAnalysis类库以便管理支持自定义的几何网络分析。这个类库的目的在于操作各种公用设施网络,如供电、供水管道,燃气管道,电力管线等。
- GeoAnalysis类库
- 包含在ESRI.ArcGIS.GeoAnalysis下,它包含核心空间分析的功能的对象,这些功能和对象用于SpatialAnalysis和3DAnalysis两个类中。可以通过创建新类型的栅格操作来扩展GeoAnalysis类库。为使用这个类库中对象,需要具有ArcGIS Spatial Analysis和ArcGIS 3D Analysis扩展模块许可,或者具有ArcGIS Engine运行时Spatial Analysis和3D Analysis选项许可。
- 3DAnalysis类库
- 包含在ESRI.ArcGIS.Analysis3D命名空间下。包含操作三维场景的对象,与Carto类库操作二维地图对象类似。Scene对象是3dAnalysis类库的主要对象,该对象图Map对象一样,是数据的容器。Camera对象用于确定在考虑要素位置与观察者关系时如何进行场景浏览。一个场景由一个或者多个图层组成,这些图层规定了场景中包含的数据及这些数据如何显示。要使用这个类库中的对象,需要3d Analysis扩展模块的许可。
- SpatialAnalysis类库
- SpatialAnalysis类库包含在栅格数据和矢量数据上执行空间分析的对象。要使用这个类库中的对象,需要ArcGIS Spatial Analysis扩展模块的许可。
- GlobalCore类库
- GlobeCore类库包含在ESRI.ArcGIS.GlobeCore命名空间下,它包含操作Globe数据的对象,其方式与Carton类库操作二维地图的对象类似。Globe对象是GlobeCore类库的主要对象,它与Map对象一样,也是数据的容器。GlobeCamera对象用于确定在考虑Globe位置与观察者关系时Globe应该如何浏览。一个Globe有一个或者多个图层规定Globe中包含的数据如何显示。
- GlobeCore类库中有一个开发控件及其一起使用的命名工具,该控件可以与Controls类库中的对象协同使用。要使用这个类库中的对象,需要3d Analysis模块的许可。
- NetworkAnalysis类库
6、其他类库
- Server类库
- 包含在ESRI.ArcGIS.Server命名空间下,包含允许用户连接及操作的ArcGIS Server的对象,使用GISServerConnection对象来访问Arcgis Server。通过GISServerConnection可以访问ServerObjectsManager对象,并通过它操作ServerConnection对象,以处理运行在服务器上AO。
- GISClient类库
- 包含在ESRI.ArcGIS.GISClient命名空间下,允许开发人员使用Web服务,这些web服务可以由ArcIMS或ArcGIS Server提供。包含连接GIS服务以操作ArcGIS Server对象的通用编程模型。但是,在ArcGIS Server上运行的AO组件不能通过Client的接口来访问。要直接访问在服务器上运行的Ao组件应使用Server类库中的功能。
- Location类库
- 命名空间ESRI.ArcGIS.Location ,包含支持地理编码和操作路径事件的对象。地理编码功能可以通过细粒度的对象来完全控制访问,或者通过GeocodeServer对象提供对象用于向线性要素中添加事件,并用于各种绘制方法来绘制这些事件。
- Server类库
21:03:44 2016-09-11
ArcGIS Engine开发前基础知识(1)的更多相关文章
- ArcGIS Engine开发前基础知识(3)
对象模型图 一.对象模型图中的类与接口 ArcGIS Engine 提供大量的对象,这些对象之间存在各种各样的关系,如继承.组合.关联等.对象模型图(Object model diagram,ODM) ...
- ArcGIS Engine开发前基础知识(2)
ArcGIS基本控件简介 ArcGIS Engine控件是一组可视化的开发组件,每个ArcGIS Engine控件都是一个COM组件.这些组件包括MapControl,PageLayoutContro ...
- ArcGIS Engine开发前基础知识(4)
ArcGIS不同开发方式的比较 关于GIS应用软件的开发,通常有三种方式:C/S架构.网络GIS和移动GIS.ArcGIS平台提供了对三种开发方式的支持,对于采用从C/S架构的大多数开发者来讲,首先想 ...
- ArcGIS Engine开发基础总结(一)
标准Engine功能 地图浏览 地图制作 数据查询 数据分析 及 所有的开发控件 —MapControl, PageLayout, Toolbar, TOC, ArcReader 对所有矢量和栅 ...
- ArcGIS Engine开发鹰眼图的功能(基础篇)
鹰眼是用于调节全视域范围内主地图显示范围情况的副地图.它体现了地图整体与详细局部的关系. 用户可以通过鼠标单击或者画框等动作实现鹰眼与主地图的交互情况. 鹰眼功能的原理是通过主地图窗口的地图控件和鹰眼 ...
- ArcGIS Engine开发鹰眼图的功能(代码优化篇)
在上一篇,ArcGIS Engine开发鹰眼图的功能(基础篇) 上一篇的实现效果图如下, 如果仔细观察,会发现一个问题,即在“鹰眼”的区域,只要在红色线框内的注记会被覆盖. 如果红色框包括整张图的话, ...
- ArcGIS Engine开发之地图基本操作(4)
ArcGIS Engine开发中数据库的加载 1.加载个人地理数据库数据 个人地理数据库(Personal Geodatabase)使用Miscrosoft Access文件(*.mdb)进行空间数据 ...
- ArcGIS Engine开发的ArcGIS 版本管理的功能
原文:ArcGIS Engine开发的ArcGIS 版本管理的功能 转自:http://blog.csdn.net/linghe301/article/details/7965901 这是以前的Arc ...
- C#,ArcGIS Engine开发入门教程
C#,ArcGIS Engine开发入门教程 转自:http://blog.csdn.net/yanleigis/article/details/2233674 目录(?)[+] 五实现 一 加载A ...
随机推荐
- HTML 学习笔记 JQuery(DOM 操作2)
接着上一节的将,这一节从复制节点讲起 复制节点 继续使用之前的例子 如果单击<li>元素后 需要在复制一个<li>元素,可以使用clone()方法完成.全部代码如下 <h ...
- [转载]MVVM模式原理分析及实践
没有找到很好的MVVM模式介绍文章,简单找了一篇,分享一下.MVVM实现了UI\UE设计师(Expression Blend 4设计界面)和软件工程师的合理分工,在SilverLight.WPF.Wi ...
- 微软.Net 社区虚拟大会 -- 首日重点(dotnetConf 2016)
6月7日--9日,为期三天的微软.NET社区虚拟大会正式在 Channel9 上召开. 在 Scott Hunter, Miguel de Icaza (Xamarin CTO) , ScottHan ...
- UML类图(下):关联、聚合、组合、依赖
前言 上一篇文章UML类图(上):类.继承.实现,讲了UML类图中类.继承.实现三种关系及其在UML类图中的画法,本文将接着上文的内容,继续讲讲对象之间的其他几种关系,主要就是关联.聚合.组合.依赖, ...
- CSharpGL(20)用unProject和Project实现鼠标拖拽图元
CSharpGL(20)用unProject和Project实现鼠标拖拽图元 效果图 例如,你可以把Big Dipper这个模型拽成下面这个样子. 配合旋转,还可以继续拖拽成这样. 当然,能拖拽的不只 ...
- WCF学习之旅—HTTP双工模式(二十)
WCF学习之旅—请求与答复模式和单向模式(十九) 四.HTTP双工模式 双工模式建立在上文所实现的两种模式的基础之上,实现客户端与服务端相互调用:前面介绍的两种方法只是在客户端调用服务端的方法,然后服 ...
- scheduleInRunLoop作用
例子一: - (void)setUpStreamForFile:(NSString *)path { // iStream is NSInputStream instance variable iSt ...
- ASP.NET Core 阶段性总结
自从年前用 ASP.NET 5 磕磕绊绊重写了一个项目后 (2015.12),就没怎么关注 ASP.NET 5 相关内容了,为啥?因为实际应用问题太多,而且不是正式版本,变化实在太快,可能你今天了解的 ...
- android 视频录制 混淆打包 之native层 异常的解决
原文地址:http://www.cnblogs.com/linguanh/ (滑至文章末,直接看解决方法) 问题起因: 前5天,因为项目里面有个类似 仿微信 视频录制的功能, 先是上网找了个 开 ...
- Oracle 11.2.0.4 RAC安装最新PSU补丁
环境:两节点RAC(RHEL 6.4 + GI 11.2.0.4 + Oracle 11.2.0.4) 需求:安装最新PSU补丁11.2.0.4.7 1.下载补丁和最新OPatch 2.检查数据库当前 ...