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 ...
随机推荐
- 学习笔记:URL Protocol在浏览器中打开本地应用程序
看到阿里的网站上可以通过点击卖家的旺旺图标从而调用本地的阿里旺旺程序,而且还可以传递当前浏览者需要咨询的商品.这是怎么实现的呢?是通过URLProtocol来完成. 原理还没有太清楚,即在系统里注册一 ...
- ubuntu-14.04-server配置Jexus --安装步骤记录
作者:郝喜路 个人主页:http://www.cnicode.com 博客地址:http://haoxilu.cnblogs.com 说明:我是Linux菜鸟,自己尝试配置Jexus服务 ...
- BCL中String.Join的实现
在开发中,有时候会遇到需要把一个List对象中的某个字段用一个分隔符拼成一个字符串的情况.比如在SQL语句的in条件中,我们通常需要把List<int>这样的对象转换为“1,2,3”这样的 ...
- 你还可以再诡异点吗——SQL日志文件不断增长
前言 今天算是遇到了一个罕见的案例. SQL日志文件不断增长的各种实例不用多说,园子里有很多牛人有过介绍,如果我再阐述这些陈谷子芝麻,想必已会被无数次吐槽. 但这次我碰到的问题确实比较诡异,其解决方式 ...
- OAuth认证原理及HTTP下的密码安全传输
很多人都会问这样一个问题,我们在登录的时候,密码会不会泄露?随便进一个网站,登录时抓包分析,可以看到自己的密码都是明文传输的,在如此复杂的web环境下,我们没有百分的把握保证信息在传输过程中不被截获, ...
- AutoMapper对internal访问级别属性的映射
最近在使用DDD重新搭建公司内部OA的架构,具体情况搭好了应该会写一下,这里说的是今天遇到的问题. 先简单说一下相关的几个部分: 1.聚合.聚合分成了两个模块:一个包含审批单据等估计至少今年不会怎么变 ...
- AHCI: Failed to attach drive to Port1 (VERR_GENERAL_FAILURE).
在mac操作系统下,安装VirtualBoxVm虚拟机,虚拟机里面安装wind7操作系统.在启动虚拟机的时候报错:AHCI: Failed to attach drive to Port1 (VERR ...
- 2. Struts2 基础
1. Struts2简介 Struts2是一个WEB端MVC框架.作为比较早的MVC 框架之一,Struts2在使用中还是比较多的.虽然个人感受没有SpringMVC还那么的好用 Struts2 官网 ...
- ubuntu 14.04LTS 环境下搭建tftp服务器
花费我一整天的时间在 ubuntu 14.04LTS 环境下搭建tftp服务器,网上好多资料参差不齐,简单来说,TFTP(Trivial File Transfer Protocol),是一个基于UD ...
- Oracle冷备迁移脚本(文件系统)
Oracle冷备迁移脚本(文件系统) 两个脚本: 配置文件生成脚本dbinfo.sh 网络拷贝到目标服务器的脚本cpdb16.sh 1. 配置文件生成脚本 #!/bin/bash #Usage: cr ...