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 ...
随机推荐
- SpringMVC 数据校验
1.引入jar包 2.配置验证器 <!-- 配置验证器 --> <bean id="myvalidator" class="org.springfram ...
- windows 部署 git 服务器报 Please make sure you have the correct access rights and the repository exists.错误
这两天在阿里云上弄windows 服务器,顺便部署了一个git服务.根据网上教程一步步操作下来,最后在 remote远程仓库的时候提示 fatal: 'yourpath/test.git' does ...
- 微软开放.NET框架源代码和Mono
微软一直在朝着更加开放的方向努力.例如,公司首席执行官萨特亚纳德拉(Satya Nadella)在Windows 10预览发布会上声称微软喜欢Linux,这并不出人意料,但是对于一家将Linux视作威 ...
- qt5中信号和槽的新语法
qt5中的连接 有下列几种方式可以连接到信号上 旧语法 qt5将继续支持旧的语法去连接,在QObject对象上定义信号和槽函数,及任何继承QObjec的对象(包含QWidget). connect(s ...
- Fedora 22中的RPM软件包管理工具
Introduction The RPM Package Manager (RPM) is an open packaging system that runs on Fedora as well a ...
- C++的性能C#的产能?! - .Net Native 系列五:.Net Native与反射
此系列系小九的学堂原创翻译,翻译自微软官方开发向导,一共分为六个主题.本文是第五个主题:.Net Native与反射. 向导文链接:<C++的性能C#的产能?! - .Net Native 系列 ...
- Enterprise Solution 开源项目资源汇总 Visual Studio Online 源代码托管 企业管理软件开发框架
Enterprise Solution 是一套管理软件开发框架,在这个框架基础上开发出一套企业资源计划系统Enterprise Edition. 现将Enterprise Solution开发过程中遇 ...
- 06. Web大前端时代之:HTML5+CSS3入门系列~HTML5 画布
Web大前端时代之:HTML5+CSS3入门系列:http://www.cnblogs.com/dunitian/p/5121725.html 我们先看看画布的魅力: 初始画布 canvas默认是宽3 ...
- 【Win 10 应用开发】在后台进行多媒体转码
前面,老周给大伙儿讲了如何运用 MediaTranscoder 类来完成多媒体.然而,你懂的,要是多媒体文件比较大,转码时间会更长,有可能用户不会一眭停在当前应用界面上,或许会切换到其他应用程序,甚至 ...
- Happy New Year 2016
大学之前的时间都是按天来过的,期盼着一天一天地快快长大,期盼着过年穿新衣,阖家团聚,其乐融融: 大学的时间都是按周来过的,根据每周的课表周而复始,虽然单调但也是自由自在,简单充实: 刚工作的几年时间是 ...