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 ...
随机推荐
- 初探java中this的用法
一般this在各类语言中都表示“调用当前函数的对象”,java中也存在这种用法: public class Leaf { int i = 0; Leaf increment(){ i++; retur ...
- web音乐播放器总结
前言 项目暂时告一段落,胸中有股炽热之气望喷涌而出!忍不住吐槽,为什么程序员要加班啊,为什么产品下达deadline,就得把这生死剑架在程序员的脖子上.卧槽,听说程序员在国外是叫工程师的.最近看了很多 ...
- 当前端也拥有 Server 的能力
今天看了不少文章,比较感兴趣的是 Cache API.它是浏览器 Request/Response 的缓存管理工具,其使用风格和运用场景让我瞬间联想到了 ServiceWorker 和 Fetch A ...
- 这些年一直记不住的 Java I/O
参考资料 该文中的内容来源于 Oracle 的官方文档.Oracle 在 Java 方面的文档是非常完善的.对 Java 8 感兴趣的朋友,可以从这个总入口 Java SE 8 Documentati ...
- ABP(现代ASP.NET样板开发框架)系列之7、ABP Session管理
点这里进入ABP系列文章总目录 基于DDD的现代ASP.NET开发框架--ABP系列之7.ABP Session管理 ABP是“ASP.NET Boilerplate Project (ASP.NET ...
- 创建一个Phone实体,完成多页面的电话簿项目
添加实体 在类库CORE中添加: [Table("PbPhones")] public class Phone : CreationAuditedEntity<long> ...
- Android 打开方式选定后默认了改不回来?解决方法(三星s7为例)
Android 打开方式选定后默认了改不回来?解决方法(三星s7为例) 刚刚在测试东西,打开一个gif图,然后我故意选择用支付宝打开,然后...支付宝当然不支持,我觉得第二次打开它应该还会问我,没想到 ...
- div里嵌套了img 底部会出现白边
因为img默认是按基线(baseline)对齐的.对比一下图片和右边的p, q, y等字母,你会发现这三个字母的“小尾巴”和图片下方的空白一样高.下面这张图中的黑线就是那条基线. 要去掉空格可以使用v ...
- 如何在Nginx下配置PHP程序环境
1.nginx与PHP的关系 首先来看nginx与php的关系, FastCGI的关系(而不是像apache那样安装成nginx的模块) FastCGI的意思是, 快速的通用网关接口:CGI Comm ...
- vue-router(2.0)
用Vue.js+vue-router创建单页应用是比较简单的.使用Vue.js时,我们就已经把组件组合成一个应用了,当你要把vue-router加进来,只要配置组件和路由映射,然后告诉vue-rout ...