ArcGIS Engine 中的地图组成及图层控制解析
ArcGIS常用功能和操作PPT课件

30
熟悉ArcMap——属性表管理
查找替换 通过属性选择 清除选择 切换选择 全选 增加字段 打开字段 显示字段别名 缺省列宽
31
熟悉ArcMap——属性表管理
字段上右击:
升序 降序 高级排序 合计生成新表 统计 字段计算器 计算面积、长度、坐标 不显示字段 冻结/取消冻结列 删除字段 属性
32
导入txt文档,设置十进制分隔符(填写与 txt文档中坐标格式一样的数据即可)、导 出路径和坐标系,确定即可。
45
根据坐标生成图形
数据格式: 1、 Polyline后面不能有空格;(如果 要生成面,将Polyline改成Polygon ) 2、数据间的空格间隔只能是一个字符; 3、生成线的每一点要按顺序排列,按 不同顺序排列会生成不同的图像; 4、第一个点的序号从0开始编号; 5、若要生成多条线,对每条线要编号; 且要符合上述的要求,每条线的点重 新从0开始编号; 6、最后一行要加上END。
Personal Geodatabase:使用微软的Access数据库存储属性 表,存储小数据量的数据,数据库存储量最大为2GB。 (*.mdb)。
12
熟悉ArcGIS
坐标系统
投影坐标系统(平面) 地理坐标系统(球面)
13
熟悉ArcCatalog
➢ArcCatalog:是ArcGIS Desktop中最常 用的应用程序之一,它是地理数据的资源管 理器,用户通过ArcCatalog来组织、管理 和创建GIS数据。比如地图,数据集,模型, 元数据,服务等。
20
熟悉ArcCatalog——管理数据源
数据库 数据集
点 线
图层
面
21
熟悉ArcCatalog——导入数据
ArcGISEngine开发之地图显示和专题图制作分析

Color对象是一个抽象类,有5个颜色子类
Байду номын сангаас
CMYKColor、RGBColor、HSVColor、HLSColor、GrayColor
1.2 ColorRamp对象
ColorRamp类是一个抽象类,它包括4个子类分别是: RandomColorRamp(随机颜色带) PresetColorRamp(预设颜色带) AlgorithmicColorRamp(起止颜色带)
SimpleMarkerSymbol 简单类型的点状符号 五种类型:Square、Cross、Circle、X、Diamond
ArrowMarkerSymbol 箭头形式的符号
Length属性:箭头的顶点到底边的距离
Width属性:箭头底边的宽度 Style属性:箭头符号样式,esriAMSPlain
平排列方式、垂直排列方式和文本等内容。
2.5 3DChartSymbol对象
3DChartSymbol是一个抽象类,它拥有三个子类:
BarChart PieChart StackedChart 它本质上是一种Marker符号,一般用于ChartRenderer对象的着色,
而且这个着色方法常常是基于多个属性的。
StackedChartSymbol符号使用的柱是堆垒而成的。
3 使用ServerStyle
ArcGIS Desktop中的Style符号库文件,在ArcGIS Engine开发中
对应的是ServerStyle符号库,其体系如下图所示:
用于获取ServerStyle符号库中的符号主要涉及到以下接口如表所示:
ArcEngine开发教程:第3章地图操作基本功能 (1)

3.数据加载
• 3)加载栅格数据
• 栅格数据是GIS的数据源之一,主要有卫星影像、航空影像、扫描的地图、 照片等。常见的栅格数据格式有*.bmp、*.tif和*.jpg等,这几种栅格数据 的工作空间是其所在的文件夹。添加栅格数据主要用到IRasterPyramid3、 IRasterLayer等接口。
• IMapDocument接口定义了操作和管理地图文档对象的方法和属性。使用 这个对象可以获取、更新一个文档的内容,设置文档文件的属性以及读、 写和保存一个文档文件等。IMapDocument接口同时扮演着数据显示和数 据容器的双重身份,可以通过ActiveView获得Map数据视图,通过 FocusMap属性获得当前正在使用的Map对象的数据容器身份。一个文档 对象可能拥有多个Map对象(相当于ArcGIS中的数据框Data Frame),但 是在同一时刻内只能有一份Map处于使用状态。
2. MapControl控件接口
• 1)IMapControlDefault接口
• IMapControlDefault接口是MapControl控件的缺省接口,是代表当前版本的最新接口,开发环境自动使用这个接口定 义的属性和方法。
• 2)IMapControl2接口
• IMapControl2接口提供了一系列的属性和方法,如设置MapControl控件的显示属性、控件外观、添加和管理数据图层 和地图文档、在控件上绘制图形和返回几何对象等。
核心代码
3.数据加载
• 通过MapControl的AddShapeFile方法加载ShapeFile文件
• 用MapControl控件的AddShapeFile方法同样可加载ShapeFile文件,这样省 去了建立工作空间、数据集等步骤。调用该方法需要传入两个参数,分 别是文件路径和不带扩展名的文件名,调用方法如下: • mainMapControl.AddShapeFile(string Path,string fileName);
第八章 ArcEngine的基本知识

4.ArcEngine类库
4.ArcEngine类库
1. System类库: System类库是ArcGIS体系结构中最底层的
类库.System类库包含给构成ArcGIS的其他类库提供服务 的组件.System类库中定义了大量开发者可以实现的接口. AoInitializer对象就是在System类库中定义的,所有的开发 者必须使用这个对象来初始化ArcEngine和解除ArcEngine 的初始化.开发者不能扩展这个类库,但可以通过实现这 个类库中包含的接口来扩展ArcGIS系统.
用专题方法为要素着色 动态显示实时或时间序列数据 通过地理编码地址或街道交叉口在地图上查找位置 转换地图数据的坐标系统 在要素几何形状上执行几何操作以创建缓冲区,计 算差异,发现交叉,合并或反交叉 处理要素形状或反旋转地图 创建和更新地理要素及其属性
2.3 ArcEngine功能
编辑要素:使用ArcEngine开发工具包建立能在地理数据库
2.3 ArcEngine功能
显示具有多个图层 地图漫游和缩放 识别地图上的要素 搜索和查找地图上的要素 显示字段值的文本标注 绘制航空相片或卫星影像 绘制描述性文本 用线,框,区域,多边形和圆选择要素 选择与某些要素的距离在一定范围内的要素 用SQL表达式查找和选择要素
2.3 ArcEngine功能
4.ArcEngine类库
3. Geometry类库:该类库处理存储在要素类中的要素几何
图形或形状或其他图形元素.大多数用户会遇到的基本几 何图形对象为Point,MultiPoint,Polyline和Polygon.除 了这些顶级实体外,就是作为多义线和多边形的组成部分 的几何图形,是组成几何图形的子要素,它们是Segment, Path和Ring. GIS中的实体指的是现实世界中的要素.现实世界中要素的 位置由一个带有空间参考的几何图形来定义.空间参考对 象,包括投影坐标和地理坐标系统,都包含在Geometry类 库中.开发者可以通过添加新的空间参考和投影来扩展空 间参考系统.
牟乃夏ArcEngine教程-第3章_地图操作基本功能

1. 空间数据与工作空间
• 工作空间
• 数据加载需要先打开相对应的工作空间。 • IWorkspace接口:IWorkspace接口定义了访问工作空间各种属性的方法,如工作 空间的连接属性等。通过IWorkspace接口可实例化现有数据集和创建新数据集。 由于WorkSpace是一个普通类,要获得WorkSpace,需要通过工作空间工厂 (WorkspaceFactory)来创建。 • IWorkspaceFactory接口:IWorkspaceFactory接口定义了创建、打开工作空间的方 法和对工作空间工厂信息成员的访问。用户可通过工作空间工厂管理不同类型 的工作空间,所有的工作空间对象都可通过此接口产生。 • IWorkspaceFactory接口的Create方法可产生一个新的工作空间对象,不同类型的 WorkspaceFactory对象,其Create方法产生的工作空间对象是不同的。 • IWorkspaceShapefileFactory接口的Open方法和OpenFromFile方法可以用于打开一 个已经存在的工作空间,Open方法用于打开一个SDE数据库,OpenFromFile方法 用于打开一个文件类型的数据,如*据与工作空间
• 1.空间数据
• 在GIS软件中,空间数据有多种不同的存在形式。按照不同的划分标准可 以分为矢量数据和栅格数据、GIS格式的地理数据与非GIS格式的数据 (如CAD格式等)、空间数据库数据(如个人数据库、ArcSDE数据库等) 和文件数据(ShapeFile格式、Coverage格式)等。
核心代码
3.数据加载
• 使用ControlsOpenDocCommandClass加载地图 • 使用ArcGIS Engine中封装好的类库资源 ControlsOpenDocCommandClass实现地图文档的加载的核心代码如 下:
第3章 地图组成与图层控制

河南水利与环境职业技术学院
@谢灿软件
图形元素对象GraphicElement
河南水利与环境职业技术学院
@谢灿软件
屏幕显示对象ScreenDisplay
MapControl中的每个视图都有一个ScreenDisplay对象,用于控制视图中 的阁形绘制。ScreenDisplay是一个与窗体相联系的显示设备,除了管理 窗体屏幕的显示属性外,也管理缓存和视图屏幕的变化等。很多对象 都是由ScreenDisplay去管理与它们相关的可视化窗体。通过IActiveView 接口的ScreenDisplay属性,获取ScreenDisplay对象。 ScrecnDisplay对象都拥有DisplayTransformation对象,用于设备单位和地 图单位的转换。 ScreenDisplay 实现了 IDisplay 接口,可以通过该接口的 DisplayTransformation 属性获取该对象。每个 DisplayTransformation 都与 一个Map相关.它拥有地图的空间参考属性。 实例:像素与地图单位转换
实例:地图文档操作、添加书签、图形选择要素
河南水利与环境职业技术学院
@谢灿软件
图层对象Layer
Map 对象用来装载地理数据,这些数据是以图层的形式放入地图对 象的。Layer作为装载的单位,当第1个图层装载进Map对象时,Map 对象会自动设置空间坐标系为当前图层的空间坐标系,以后再装载 的图层都将使用 Map对象已经设置的空间参考。Layer对象本身没有 装载数据,其作用是获得数据的引用,用于管理数据源的连接,数 据始终在GeoDatabase 或地图文件中。 图层对象是一个抽象对象,它定义了所有图层的公共方法和属性, 它拥有很多子类,如FeatureLayer、RasterLayer、CadLayer、TinLayer 等。图层相当于要素的载体,当用ArcMap将要素类打开后就成为了 图层。 FeatureLayer用于承载要素数据,如点、线、面等,也是我们重点研 究的对象。
ArcGIS Engine基础实战

Engine 库 – 制图、绘制、选择、编辑等 Control 库 – 地图控件、布局控件、工具条等
APIs
COM、.NET、Java、C++
工具
文档、开发工具
ArcGIS Engine功能框架
基本服务 数据访问 地图分析
应用层需要用到的 ArcObjects 核心对象 几何图形的操作与显示 地理数据集,矢量,栅格数据
IQueryFilter、 IRaster、IRasterCursor、IRasterDataset、IRelationship、
IReplica、 ISelectionSet、ISurface、ITin、ITopology、 IVersion、
主要类库介绍—GeodataBase
DataSourcesFile
包含了为支持的矢量数据格式提供的工作空间工厂和工作空间。
ICoverageFeatureClass、ICadDrawingLayers、 IGPLayer、 ArcInfoWorkspaceFactory、CadWorkspaceFactory、SDCWorkspaceFactory、 ShapefileWorkspaceFactory、TinWorkspaceFactory、VpfWorkspaceFactory
PageLayoutControl、SceneControl、Snapping、Symbology、
TOCControl、ToolbarControl、ToolbarItem、、、
主要类库介绍—Display
Display
显示库包含了支持在输出设备上显示图形的组件,屏幕显示, 符号,颜色等都在这个库中定义。 BalloonCallout、ScreenDisplay 绘图跟踪器:EngineRotateTracker、EnvelopeTracker、 字体、颜色: RgbColor、CmykColor 点、线、面符号样式:简单符号、图片符号、专题符号 制图表达:RepresentationRule、 符号库:ServerStyleGallery、ServerStyleGalleryItem
ArcGIS Engine控件编程详解

ArcGIS Engine控件编程详解一、主要内容1、在 VB 中使用 ArcGIS Engine 的四个常用控件 MapControl、PageLayoutControl、TOCControl和 ToolBarControl;2、向地图控件中装载地图文档、增加不同类型的图层;3、伙伴控件的设置;4、ToolBarControl的设置;5、VB 窗体大小变化的控制事件 Form_Resize 的设置。
二、学时安排:2 学时三、预习内容回顾 ArcGIS Engine 的四个常用控件 MapControl、PageLayoutControl、TOCControl 和 ToolBarControl 所实现的接口及所包含的属性和方法,了解一些相关的常量。
四、ArcGIS Engine 控件编程1、实验准备1)在 D 盘上建立一文件,命名为 EnginePractice;2)启动 VB,新建一工程,命名为 EngineControl,并将其保存到 EnginePractice中;3)在 Form1 窗体中分别引入 MapControl、PageLayoutControl、TOCControl、两个 ToolBarControl、一个 TabStrip 控件及一个 CommonDialog 控件。
ØTabStrip 控件的引入如下图:Ø CommonDialog控件的引入如下图:4)将控件布局到窗体 Form1 上,并添加菜单,如下图:5)菜单的添加—选择[Tools]菜单项选择[Menu Editor… Ctrl+E]如下图:Ø编辑[File]菜单各子菜单分别命名为:LoadMenu、SaveMenu、SaveAsMenu 、AddNewLayerMenu 、AddShapeMenu 、AddLayerMenuØ编辑[Edit]菜单各子菜单分别命名为:LabelEditMenu 、AutomaticMenu、ManualMenuØ编辑[Tool]菜单各子菜单分别命名为:SelectFeaturemenu 、ClearSelectMen2、ArcGIS Engine 许可初始化1)按照实验三的方式引入类库:ESRI System Object Library、ESRI SystemUI Object Library 等,如下图:2)定义初始化对象Option ExplicitPrivate m_pAoInitialize As IAoInitialize3)在 Form_Load 事件中添加许可初始化代码:Set m_pAoInitialize = New AoInitializeIf m_pAoInitialize Is Nothing ThenMsgBox "Unable to initialize. This application cannot run!"Unload LabelEditExit SubEnd If'Determine if the product is availableIf m_pAoInitialize.IsProductCodeAvailable(esriLicenseProductCodeEngine) = esriLicenseAvailable ThenIf m_pAoInitialize.Initialize(esriLicenseProductCodeEngine) <> esriLicenseCheckedOut ThenMsgBox "The initialization failed. This application cannot run!"Unload LabelEditExit SubEnd IfElseMsgBox "The ArcGIS Engine product is unavailable. This application cannot run!"Unload LabelEditExit SubEnd If3、ToolBarControl 设置1)ToolBarControl1的设置使用属性对话框进行设置,单击[Add…]命令按钮进行添加,找到作用于 MapControl 控件的对象,Item 选项为:1-esri3D,如图:2)ToolBarControl2的设置使用属性对话框进行设置,单击[Add…]命令按钮进行添加,找到作用于 PageLayoutControl控件的对象,Item选项为:1-esri3D,如图:3)将 ToolBarControl1 和将 ToolBarControl2叠置在一起4、TabStrip 容器控件的设置在 Form_Load 事件中添加如下代码:TabStrip1.Tabs(1).Caption = "MapControl"TabStrip1.Tabs.Add 2, , "PageLayoutControl"Set TabStrip1.SelectedItem = TabStrip1.Tabs(1)5、TabStrip1_Click 事件设置用鼠标双击 TabStrip1 控件,将会显示 TabStrip1_Click 事件,在该事件中添加如下代 码(本段代码主要用于伙伴控件的设置):Private Sub TabStrip1_Click()'Toggle control visiblity and set the buddyIf TabStrip1.SelectedItem.index = 1 ThenPageLayoutControl1.Visible = FalseMapControl1.Visible = TrueToolbarControl1.Visible = TrueToolbarControl2.Visible = FalseTOCControl1.SetBuddyControl MapControl1ToolbarControl1.SetBuddyControl MapControl1ElsePageLayoutControl1.Visible = TrueMapControl1.Visible = FalseToolbarControl1.Visible = FalseToolbarControl2.Visible = TrueTOCControl1.SetBuddyControl PageLayoutControl1ToolbarControl2.SetBuddyControl PageLayoutControl1End IfEnd Sub6、MapControl1_OnMapReplaced 事件的设置此段代码是用于控制当 MapControl1 的内容改变时 PageLayoutControl1 的内容也随之 改变。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
湖南
一、 Element对象-Graphics Element 城市学院
❖ 2、MarkerElement
▪ 在Map视图或PageLayout视图中表现为点的形式。 ▪ MarkerElement实现了IMarkerElement接口,
IMarkerElement接口只提供了Symbol属性,用于设置点 的样式。
❖ 1、LineElement
▪ 在Map视图或PageLayout视图中表现为线的形式。 ▪ LineElement实现了ILineElement接口,ILineElement接
口只提供了Symbol属性,用于设置线的样式。
GIS二次开发—使用ArcGIS Engine 9.3
市政与测绘工程学院地理信息系统专业
湖南 城市学院
第六讲
地图组成及图层控制
GIS二次开发—使用ArcGIS Engine 9.3
市政与测绘工程学院地理信息系统专业
主要内容
湖南 城市学院
1
Element对象
2
MapGrid对象
3
MapSurround对象
4
Style对象
5
添加、删除图层数据
6
图层控制
GIS二次开发—使用ArcGIS Engine 9.3
GIS二次开发—使用ArcGIS Engine 9.3
市政与测绘工程学院地理信息系统专业
湖南
一、 Element对象-Graphics Element 城市学院
❖ 5、FillShapeElement
▪ FillShapeElement泛化出了CircleElement、 EllipseElement、PolygonElement和RectangleElement 等。
▪ GroupElement对象实现了IGroupElement接口,该接口 定义了6个属性和方法。
GIS二次开发—使用ArcGIS Engine 9.3
市政与测绘工程学院地理信息系统专业
湖南
一、 Element对象-Graphics Element 城市学院
❖ 4、GroupElement
▪ 例:在PageLayout视图中添加GroupElement
GIS二次开发—使用ArcGIS Engine 9.3
市政与测绘工程学院地理信息系统专业
湖南
一、 Element对象-Graphics Element 城市学院
❖ 3、TextElement
▪ 地图标注存在两种形式: ✓ 一种是保存在地理数据库中的标注; ✓ 另一种是使用TextElement。
▪ TextElement实现了ITextElement接口,ITextElement提 供了三个属性:
IGraphicsContainer pGC = this.axPageLayoutControl1.PageLayout as IGraphicsContainer; IGroupElement pGroupElement; pGroupElement = this.pJtGrid.JtGrids; if (pGroupElement != null) { pGC.AddElement(pGroupElement as IElement,0); }
❖ MapFrame和MapSurroundFrame
▪ Frame Element主要有两个对象:MapFrame(地图框架) 和MapSurroundFrame(地图修饰框架)。
✓ MapFrame对象是Map对象的的容器,用于管理Map对象; ✓ MapSurroundFrame用于管理MapSurround(比例尺、
✓ IGraphicsContainer接口—添加、删除、更新Element; ✓ IElement—确定Element对象的Geometry属性。
GIS二次开发—使用ArcGIS Engine 9.3
市政与测绘工程学院地理信息系统专业
湖南
一、 Element对象-Graphics Element 城市学院
比例文本、指北针等)对象。
▪ MapSurroundFrame对象与MapFrame对象相连,当删除 MapFrame时, MapSurroundFrame也将被删除。
✓ ScaleText—文字尺寸; ✓ Text—字符; ✓ Symbol—文字符号。
GIS二次开发—使用ArcGIS Engine 9.3
市政与测绘工程学院地理信息系统专业
湖南
一、 Element对象-Graphics Element 城市学院
❖ 4、GroupElement
▪ GroupElement对象就是将多个Element对象编为一组, 作为一个整体使用。
GIS二次开发—使用ArcGIS Engine 9.3
市政与测绘工程学院地理信息系统专业
湖南
一、 Element对象-Graphics Element 城市学院
GIS二次开发—使用ArcGIS Engine 9.3
市政与测绘工程学院地理信息系统专业
湖南
一、 Element对象-Frame Element 城市学院
▪ FillShapeElement实现了IFillShapeElement接口,该接 口的Symbol属性,可以设置元素的样式。
GIS二次开发—使用ArcGIS Engine 9.3
市政与测绘工程学院地理信息系统专业
湖南
一、 Element对象-Graphics Element 城市学院
❖ 6、PictureElement
市政与测绘工程学院地理信息系统专业
湖南
一、Element对象
城市学院
GIS二次开发—使用ArcGIS Engine 9.3
市政与测绘工程学院地理信息系统专业
湖南
一、 Element对象
城市学院
❖ 如何理解Element对象?
▪ 在Map对象和PageLayout对象显示的数据除了地理数据 之外,另一种即为元素数据(Element对象)。
▪ Graphics Element都是作为图形的形式而存在,在Map 视图或者PageLayout视图上是可见的;
▪ Frame Element是作为不可见的容器而存在的。
▪ Map对象或者PageLayout对象可以通过IElement接口和 IGraphicsContainer接口来管理Element对象。