ArcEngine地图基本操作的实现
ArcEngine实验内容
![ArcEngine实验内容](https://img.taocdn.com/s3/m/b223cd13f78a6529647d53f4.png)
ArcEngine实验内容实验一:熟悉ArcEngine中的TocControl、ToolbarControl、MapControl基本控件,创建简单的ArcEngine开发框架,能进行放大、缩小、平移、全图,并具有鹰眼功能;实验二:自定义简单功能的Commands、Tools,并使用ToolbarControl加载到工具栏上;实验三:使用ISegmentCollection、IPointCollection、IGeometryCollection接口,在地图上构建IPoint、Line、Polyline、Polygon、IEnvelope、IMultipoint、Path 对象,可以直接添加到一个图层中,也可以在地图上以Element元素的方式添加到地图上。
实验四:在TocControl控件中添加快捷菜单,当在某一图层上右击弹出快捷菜单,快捷菜单中实现对点、线、面图层分别进行符号化。
系统必须自动能判断当前图层是那种类型的图层(如点、线、面),实现对这些图层的简单符号化和高级符号化的功能。
1.调用ArrowMarkerRender对象、CharacterMarkerSymbol对象、PictureMarkerSymbol对象、MultiLayerMarkerSymbol对象实现点状符号化。
2.调用、CartographicLineSymbol对象、PictureLineSymbol对象实现线状符号化。
3.调用LineFillSymbol对象、MarkerFillSymbol对象、GradientFillSymbol对象实现面状符号化。
4.使用IFormattedTextSymbol对象、MarkerTextBackground对象、BallonCallout对象、LineCallout对象实现向MapContrl控件中添加符号化处理的文字。
5.对每个图层能进行SimpleRenderer(简单渲染)、ClassBreaksRenderer(分级渲染)、UniqueValueRenderer(按值渲染)、BiUniqueValueRenderer (双变量渲染)、ProportionalSymbolRenderer (梯度渲染)、ChartRenderer (图表渲染)、DotDensityRenderer (点密度渲染)、ScaleDependentRenderer (按比例尺渲染)图层的符号化和渲染的参数尽可能使用一个对话框,在对话框中实现对图层颜色、样式、文字字体的设置,按确定Button后实现选定图层的要素的符号化和渲染。
ArcgisEngine实现对地图的放大、缩小和平移
![ArcgisEngine实现对地图的放大、缩小和平移](https://img.taocdn.com/s3/m/103f419ab84ae45c3a358c1b.png)
ArcgisEngine实现对地图的放、缩小和平移:个人觉得平移,不过网上的都漫游,通俗的说就把一个地图对象从一边拉到另一边而已。
就看人说话吧.具体实现:一、引入命名空间using ESRI.ArcGIS.Geometry;using ESRI.ArcGIS.Controls;二、代码实现.int flag = 0;private void 放ToolStripMenuItem_Click(object sender, EventArgs e){axMapControl1.MousePointer = esriControlsMousePointer.esriPointerPageZoomIn; flag = 1;}private void 缩小ToolStripMenuItem_Click(object sender, EventArgs e){axMapControl1.MousePointer =esriControlsMousePointer.esriPointerPageZoomOut;flag = 2;}private void 平移ToolStripMenuItem_Click(object sender, EventArgs e){axMapControl1.MousePointer = esriControlsMousePointer.esriPointerPan;flag = 3;}private void axMapControl1_OnMouseDown(object sender, IMapControlEvents2_OnMouseDownEvent e){IEnvelope ipenv= axMapControl1.TrackRectangle();if(flag==1){axMapControl1.Extent = ipenv;}else if(flag==2){ipenv = axMapControl1.Extent;ipenv.Expand(2, 2, true);axMapControl1.Extent = ipenv;}else if(flag==3){ipenv= axMapControl1.Extent ;axMapControl1.Pan();}}}三、补充:在AE中,在地图控件中.jpg,.bmp类型图层文件时,调用方法会简单很多的.IRasterLayer rasterLayer = new RasterLayer();rasterLayer.CreateFromFilePath(str);axMapControl1.ALayer(rasterLayer, 0);其中,str文件路径.。
ArcGIS Engine基础开发教程(5)--学习地图输出
![ArcGIS Engine基础开发教程(5)--学习地图输出](https://img.taocdn.com/s3/m/9bc0f1fef705cc1755270917.png)
ArcGIS Engine基础开发教程(5)——学习地图查询地图查询地图查询、统计是一个GIS系统的基本的功能模块,实际上统计功能的前提也是通过查询获取结果以文字或者图表等报表的形式展现查询结果数据。
地图查询有两种类型的查询:1.空间查询:在地图上设置一定范围,查询这一范围内的要素。
例如在地图上画一范围查询这一区域内的所有消防栓,这一范围的所有消防栓高亮显示(或者其他显示方式)并展现出所有的消防栓的属性信息。
2.属性查询:通过一定的查询条件获取目标要素。
例如我们需要查询中国行政区上人口大于5000万,同时GDP大于1万亿的省份,通过执行查询,符号条件的省份高亮显示(或者其他显示方式)并展现出这些省份的属性信息。
ArcGIS Engine9.3为开发者提供了无需写代码即可进行查询功能的Identify工具,但是这个工具是一个通用的信息查询新工具。
而开发者通常需要自己开发一套符合自己业务需求更加灵活的查询功能模块,甚至一些功能不仅仅是查询信息,很多编辑编辑功能以及和业务相结合的功能开发都用到查询功能。
所以很有必要了解ArcGIS Engine的查询机制。
5.1目标1.熟悉Cursor,FeatureCursor对象,使用IFeatureCursor接口2.熟悉QueryFilter, SpatialFilter对象使用IQueryFilter,ISpatialFilter接口3.熟悉要素选择集SelectionSet对象,会使用IFeatureSelection,ISelectionSet接口4.开发一个属性查询小功能Demo, 获取符号查询条件的Feature,并IFeatureLayerDefinition接口创建一个新的要素图层加载到Mapcontrol上5.开发一个空间多边形查询功能的小Demo, 学会创建内存半透明图层用于显示选择范围5.2准备工作1.IDE:Visual Studio 2005/20082.ArcGIS Engine Developer kit 9.33.准备一份用于查询的的矢量数据(文章内有说明)5.3Cursor对象Cursor(游标)本质上是一个指向数据的指针,本身并不包含数据内容,它是连接到Row对象或要素对象的桥梁。
ArcEngine开发教程:第3章地图操作基本功能 (1)
![ArcEngine开发教程:第3章地图操作基本功能 (1)](https://img.taocdn.com/s3/m/5b3fff1831126edb6f1a1064.png)
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方法
![地理信息系统开发ArcEngine方法](https://img.taocdn.com/s3/m/451bc57f168884868762d60c.png)
2.1 什么是对象模型图
可创建类(CoClass)
可创建类是唯一可以用New关键字来创建对象 的。也就是说,可创建类可以直接被创建或者实 例化。例如在ArcMap中,可以创建新的Maps, FeatureLayers,FillSymbols或GraphicElements等。 在对象模型图中可创建类是用3D有阴影的立方体 表示的。
第2章 ArcGIS Engine基础
内容提要
什么是对象模型图 ArcEngine 类库结构 ArcEngine 的常用控件 ArcEngine 的开发资源 利用ArcEngine 开发一个简单的GIS工程
2.1 什么是对象模型图(Object Model Diagram,OMD)
虫洞 ArcEngine包含的AO类库是非 常多的,而且所有的这些类基 本上和其他的类有联系。为了 更清晰的认识这些类间的关系, 对象模型图在介绍一个类的同 时增加了一些虫洞。 虫洞就表示该类所关联的类。 如右图所示,在Element上有 一个指向它的虫洞。这表示类 Element和类Geometry有关联
1.2 ArcEngine的主要特点
对所有矢量和栅格数据源的读权限 对Shapefile和pGDB的写权限 读/写MXD文件 数据的显示和地图浏览 绘制来自于航空照片或卫星影像的图像 跟踪和绘制要素(如点、线、圆及多边形) 绘制非GIS要素,如描述性文本、图形元素 地图数据的坐标转换 搜索地图上的要素或通过单击来识别地图上的要素 多种要素选择方式,如点选、框选、SQL属性选择 显示要素属性字段的文本标注 TOC图层管理,如显示具有多个地图图层的地图
内容提要
ArcEngine 介绍 ArcEngine的主要特点 ArcEngine与其他组件的区别与联系 ArcEngine的安装
基于ArcGISEngine的专题地图制作的实现
![基于ArcGISEngine的专题地图制作的实现](https://img.taocdn.com/s3/m/e4930cdfad51f01dc281f1f9.png)
作者简介黄勇奇(1976-),男,江西高安人,博士,讲师,从事地图学与地理信息系统方面的理论与应用研究。
收稿日期2007!01!19专题地图(ThematicMap)是着重表示一种或几种自然或社会经济现象的地理分布,或强调表示这些现象的某一方面特征的地图。
专题制图是按照特定专题渲染地图的过程。
专题通常使用数据集中的一组或多组数据,并利用颜色渲染、填充图案、符号、直方图和饼状图表示数据,根据数据中的特定值指派这些颜色、图案或符号,从而创建不同的专题地图。
GIS脱胎于计算机地图制图,但又以其非凡的地理空间分析功能改善和优化了制图过程,不仅提高了制图效率,还能提高现有数据利用率。
ArcGISEngine简称ArcEngine,ArcEngine是由ESRI公司提供的基于ArcObject的面向开发的嵌入式GIS产品。
应用ArcEngine做GIS应用开发时彻底脱离了ArcGIS桌面产品ArcMap,提高了开发效率,为GIS用户提供了一个低成本、可定制的、轻量级的GIS应用选择。
它是由一组核心ArcObject包组成,其对象是与平台无关的,它能够在各种编程接口中调用;开发人员能够通过它提供的强大的工具构建定制的GIS和制图应用。
在ArcEngine产品中,它有着非常丰富的专题地图的制作功能,能以专题符号化方法显示地理特征要素。
1ArcEngine的专题地图制作功能的实现与开发实例在ArcEngine中主要提供了分别对应着制作单值专题图,唯一值专题地图、分段专题图、等级符号图、点密度图、柱状图/三维柱状图、饼状图/三维饼图、堆积图/三维堆积图功能的ISimpleRenderer、IUniqueValueRender、IClassBreaksRenderer、IPoportionalSymbolRenderer、IDotDensityRenderer、IPieChartRenderer(I3DChartSymbol)、IBarChartSymbol(I3DChartSymbol)、IStackedChartSymbol(I3DChartSymbol)的渲染接口,它们主要存在于ESRI.ArcGIS.Carto库中,在开发时要用Imports语句将它引用进来。
ArcEngine地图显示案例
![ArcEngine地图显示案例](https://img.taocdn.com/s3/m/7480b13a580216fc700afd07.png)
栅格数据渲染
RasterRender是一个抽象类,它有6个子类负责进行不同类型的着色 运算。它们都实现了IRasterRender接口,这个接口定义了栅格图层 符号化的公共属性和方法。可以通过IRasterLayer::Renderer属性 获得一个栅格图层的符号化对象。
5 制作专题图
ArcGIS Desktop中的Style符号库文件,在ArcGIS Engine开发中
对应的是ServerStyle符号库,其体系如下图所示:
用于获取ServerStyle符号库中的符号主要涉及到以下接口如表所示:
如何获取到一个符号库中符号?
SymbologyControl控件
用来显示ServerStyle符号库中的符号
ProportionalSymbolRenderer着色法
梯度着色法依据要素图层的要素类中某个字段的数值而生成大小不一的
圆形符号进行着色。
通过IProportionalSymbolRenderer接口定义使用梯度着色法的方法 和属性,这种着色方式需要知道最大和最小的圆点各自代表的字段值、 着色基于的字段和着色点使用的符号。
含了前者所有的方法和属性。
IRandomColorRamp颜色带: 在Unique Break着色中系统使用的最多的是随机颜色。 RandomColorRamp需要设定一个HSV颜色模型的范围,颜色将在这个
范围内随机出现。
2. 图形的外观——Symbol对象
ArcGIS Engine9.3为开发人员提供了32种符号 三大类符号来绘制地理要素的几何图形: MarkerSymbol、LineSymbol与FillSymbol
牟乃夏ArcEngine教程-第5章_地图制图详述
![牟乃夏ArcEngine教程-第5章_地图制图详述](https://img.taocdn.com/s3/m/1eaae6fb4b35eefdc9d3335c.png)
CharacterMarkerSymbol可以将点要素显示为字符,该类实现了 ICharacterMarkerSymbol接口,Font属性设置字体类型, Characterindex属性用于设置或返回要显示的字符。设置显示 的字符由ASCII码决定。
color类及其子类colorramp类及其子类colorramp类的对象可以产生颜色带这个类实现了icolorramp接口它定义了一系列颜色带的属性如size产生多少种颜色colors颜色带ienumcolorcolorramp是抽象类它有4个子类分别是presetcolorramp预设渐变色colorramp类及其子类colorramp类及其子类algorithmiccolorramp用起始颜色终止颜色确定一个颜色multipartcolorramp叠加产生颜色带randomcolorramp随机地创建一系列颜色presetcolorramp预设的颜色模式可存储13种颜色4种颜色带说明algorithmiccolorramp类介绍及代码示例algorithmiccolorramp是通过起止颜色来确定多个在这两个颜色之间的色带algorithmiccolorramp类实现了两个主要的接口
黄色(Yellow)和黑色(Black)四种颜色的油墨,使用分别从 0~100,也就是颜色从最浅到最深的数值。 数值越小颜色越浅,反之颜色则越深,当每种颜色都达 到最高值100时则为深黑色。
2)CMYK颜色模型
ArcGIS Engine基础开发教程(3)
![ArcGIS Engine基础开发教程(3)](https://img.taocdn.com/s3/m/810f9a2f0066f5335a8121d2.png)
ArcGIS Engine基础开发教程(3)——学习地图和地图布局Engine, ArcGIS, 教程, 地图, 基础本章是ArcGIS Engine基础开发教程的第三章,主要给大家大致讲解了,地图和地图布局的相关对象。
这些对象非常重要,如果这些基本对象都不熟悉就开始搞ArcGIS Engine开发是不科学的也走不远的。
3地图和地图布局3.1地图3.1.1Map对象Map对象是ArcGIS Engine的主要对象,本章将给大家介绍地图组成结构,如何创建地图,如何对组成地图的对象进行操作,在介绍这些内容时尽量结合ArcMap学习效果会更好。
在Map对象上能显示的图形有两类一类是地理数据,一类是元素。
地理数据包括矢量类型的要素数据,栅格数据,Tin等表面数据等,这些数据都保存在Geodatabase或数据文件如shapefile中,它们是用于GIS分析制图的源数据;图1而元素是另一种可以显示在Map上的对象,它分为两部分一类是图形元素,一类是框架元素,图形元素可以显示出来,而框架元素充当了“容器”的角色。
在ArcMap中可以使用“Draw”工具在Map上直接绘制一个矩形,圆形,文本等对象,在布局视图上也可以给地图添加指北针,图例,比例尺等图形对象,这些都是图形元素。
图2在ArcMap中Map对象是由MXDocument对象的MapFrame对象管理,MapFrame是一个框架元素。
Map对象有双重身份,一方面是数据的管理容器,可以加载地理数据和图形元素,扮演了数据管理器的角色,另一方面它又可以让用户看到这些数据即扮演了数据显示器的角色,当加载数据到Map对象的时候,Map对象是数据的管理者;当改变视图范围,刷新地图的时候它是数据的显示者。
Map对象主要实现的接口由IMap,IGraphicContainer,IActiveView,IMapBookmark等接口。
IMap接口主要用于管理Map对象中的Layer对象,要素选择集对象,MapSourround对象,空间参考等对象。
ArcGIS_Engine基础开发教程(2)
![ArcGIS_Engine基础开发教程(2)](https://img.taocdn.com/s3/m/d60f63e3f61fb7360b4c65db.png)
ArcGIS Engine基础开发教程(0)——目录1创建第一个ArcGIS Engine桌面应用程序 (6)2几何对象与空间参考 (15)3地图和地图布局 (44)4图层符号化 (64)5地图查询 (91)6.空间分析 (110)7地图输出... 121、下周讲推出第三章和第四章内容。
我只是给大家介绍了入门的知识以及经验,最重要的还是自己敲代码感悟。
很多人是不熟悉ArcGIS Desktop就开始从网上Down代码修改代码开始了自己的开发之旅,包括我,我大学时代是MapInfo的粉丝,一直没学过ArcGIS。
这是非常不科学的,因为ArcGIS Desktop就是从AO开发起来的,你只有掌握了ArcGIS Desktop的使用,才能很容易理解AO接口提供的功能。
实际上ArcGIS Engine二次开发说白了就是在ArcGIS Desktop所提供的功能和业务相结合进行的创新性开发。
所以熟悉ArcGIS Desktop以及ArcGIS数据模型对学习ArcGIS Engine二次开发非常重要!祝大家学习愉快!ArcGIS Engine基础开发教程(1)——创建第一个ArcGIS Engine桌面应用程序ESRI BBS GIS大讲堂首发,转载请注明出处1创建第一个ArcGIS Engine桌面应用程序ArcGIS Engine9.3提供了丰富的GIS组件方便用户快速的定制开发一个GIS应用程序,无需写代码即可实现GIS数据加载,地图操作等功能甚至可以实现高级编辑以及空间分析功能。
接下来使用ArcGIS Engine9.3提供了MapControl Application模块来创建第一个ArcGIS Engine桌面应用程序,并为桌面应用应用程序提供编辑功能。
1.1目标1.创建第一个ArcGIS Engine桌面应用程序2.为应用程序添加编辑功能。
1.2准备工作1.IDE:Visual Studio 2005/20082.ArcGIS Engine Developer kit 9.33.制作ArcGIS实验数据地图文档MXD1.3设计流程图1.4制作地图文档在ArcMap中加载数据后,点击保存生成一个*.mxd地图文档,如图1所示:图11.5创建第一个ArcGIS Engine桌面应用程序在Visual Studio2008中新创建项à选择àArcGISàEngineàMapControl Application,点击确定,如图2所示:图2可以看到在Visual Studio中看到在新创建的项目中自动加载了ToolBarControl、TocControl、LicenseControl、MapControl四个ArcGIS Engine控件以及一个.NET ToolStripMenuItem菜单控件,如图3所示:图31.6加载MXD地图文档数据单击F5键运行程序,然后单击打开MXD地图文档按钮打开MXD地图文档,如图4所示:图4可以看到应用程序把MXD地图文档加载到MapControl地图上,可以使用ToolbarControl 提供的常用GIS功能如:放大,缩小,信息查询等功能。
ArcGIS Engine开发第四章 地图显示
![ArcGIS Engine开发第四章 地图显示](https://img.taocdn.com/s3/m/34acb90c42323968011ca300a6c30c225901f0c6.png)
通过AddShapeFile方法加载图层的代码演示
Private Sub Form_Load() MapControl1.AddShapeFile "d:\data\world\", "country.shp" MapControl1.AddShapeFile "d:\data\world\", "rivers.shp" MapControl1.AddShapeFile "d:\data\world\", "cities.shp" End Sub
移动图层
通过MapControl类的MoveLayerTo方法可以实现图层的移 动
MoveLayerTo方法的具体用法:
object.MoveLayerTo (fromIndex, toIndex ) 其中: fromIndex :表示要进行移动操作的图层的索引 toIndex :表示移动操作后图层的新索引
newMapExtentYmax = .YMin - (pRectangle.YMin - .YMin) * zoomInHei ghtFactor + newMapExtentHeight
pEnvelope.PutCoords newMapExtentXmin, newMapExtentYmin, ne wMapExtentXmax, newMapExtentYmax
4.1.1 使用属性向MapControl中添加图层
(1)加载ArcGIS Engine控件
打开Visual Basic,新建一个工程,在【工程】菜单中选中 【部件】菜单,在对话框中选中“ESRI Controls”复选框,点 击“确定”按钮完成ArcGIS Engine控件的加载
ArcEngine地图基本操作的实现
![ArcEngine地图基本操作的实现](https://img.taocdn.com/s3/m/9ecbcb9869dc5022aaea005c.png)
二 创建桌面应用程序
5.加载MXD地图文档数据-1
二 创建桌面应用程序
6.创建第一个ArcGIS Engine桌面应用程序-2
1. 动Visual Studio .NET,并从新建项目对话框中创建一个新的Visual C# “Windows应用程序”项目。 2.将项目命名为“DEMO”,并选择位置存取该项目。 3.在“工具箱”的“Windows窗体”标签栏中单击右键,然后从上下文菜 单中 选择“选择项”(VS2005)“添加/移除项(I)…”(VS2003);或者工具->选 择工具箱。 4.在“选择工具箱”中选择“.NET Framework组件”,并复选“ AxMapControl”,“AxPageLayoutControl”,“AxTOCControl”和“ AxToolbarControl”,单击确定按钮。这样所选择的控件将显示在工具箱的
返回
二 创建桌面应用程序
1.目标
创建第一个ArcGIS 加载MXD文档
Engine桌面应用程序
2.准备工作
Visual
Studio 2005/2008
Engine Developer kit 9.2
ArcGIS
制作ArcGIS实验数据地图文档MXD
二 创建桌面应用程序
3.设计流程图
二 创建桌面应用程序
• 这两个控件都具有内置的导航功能,运行终端用户移动三 维视图和可视化三维数据,而不必使用控件命令。要使用 内置的导航工具,必须通过属性页或者编程设置Navigate 属性。
一 使用ArcEngine控件开发
4. ReaderControl
• ReaderControl对应于ArcReader桌面应用程序的“数据”和 “布局”视图及其内容表(TOC)。该控件还包含 ArcReader桌面应用程序使用的内部窗口和工作,如Find窗 口和Identify工具等。用ArcMap桌面应用程序创造并用 ArcGIS Publisher扩展模块发布的发布地图文档(PMF)若 在发布时设置为允许装载到定制的ArcReader应用程序中, 则可以装载到ReaderControl中。
ArcEngine 开发 第六讲 地图的显示
![ArcEngine 开发 第六讲 地图的显示](https://img.taocdn.com/s3/m/747ef0272f60ddccda38a031.png)
新建线符号代码实例( 新建线符号代码实例(SimpleLineSymbol) )
public void AddLineSymbol() { //新建符号接口 新建符号接口 ISimpleLineSymbol pLineSymbol; pLineSymbol = new SimpleLineSymbol(); //设置符号的样式 设置符号的样式 pLineSymbol.Style = esriSimpleLineStyle.esriSLSDot; //设置符号的颜色 设置符号的颜色 pLineSymbol.Color = getRGB(255, 0, 0); pLineSymbol.Width = 3; //绘制线符号 绘制线符号 IGeometry pGeo; pGeo = axMapControl1.TrackLine(); object pSymbol = (object)pLineSymbol; axMapControl1.DrawShape(pGeo, ref pSymbol); }
1、添加色彩——颜色对象 、添加色彩 颜色对象
1.1 常见的颜色模型 RGB模型、CMYK模型、HSV模型、Gray模型 模型、 模型、 模型、 模型 模型 模型 模型 1.2 颜色的接口 颜色的接口IColor 1.3 颜色对话框 1.4 ColorRamp对象 对象 1.5 AE 与 C#.net 的颜色转换
其他新建点符号类型
ArrowMarkerSymbol 箭头形式的符号 CharacterMarkerSymbol 字符形式的符号 PictureMarkerSymbol 位图形式的符号 MultiLayerMarkerSymbol 多个符号叠加生成新的符号
2.2 线符号 线符号—— LineSymbol对象 对象
基于ArcEngine的地图自动分幅实现
![基于ArcEngine的地图自动分幅实现](https://img.taocdn.com/s3/m/c39fddc2a1c7aa00b52acbeb.png)
E S R I 的A r c G I S E n g i n e ( 简称 A r c E n g i n e ) 是 一个 用于 建立 自定 义独 立 地 理 信 息 系 统 应 用 程 序 的平
通 常采 用 图 幅西 南 角 坐标 公 里 数 编 号 法 。编 号
不高 。
1 : 1 0 0 力 行 号 字 符 岿
… … … … … … …
:
:
:
I
.
:
I
:
1
: 图幅列号数字码
垦 垫 子 毋j …… … … … … 一 比 例 尺 代 码; ! 图 幅 行 号 数 字 码
图1 1: 5 0 万 至 1: 5 0 0 0 地 形 图 图号构 成示 意 图
基于 A r c E n g i n e的 地 图 自动 分 幅 实 现
刘静 波 , 王
( 1 . 9 1 5 6 1 部队, 广东 广州
伟 , 李 欣。 , 李进 勇 , 朱小辰
4 3 0 0 7 9 )
5 1 0 3 2 0 ; 2 .武汉 大学 测绘遥感信息_ T程国家重点实验室 , 湖北 武汉
因此 , 地 图的 自动分 幅输 出是 电子地 图软 件 的一 项 基 本 功能 。另一 方 面 , 传 统 的手 工地 图分 幅计 算量
大, 过 程复 杂 , 效 率 较低 , 地 图 的 自动 分 幅可 以辅 助 手 工分 幅 , 提 高手 工分 幅 的效率 。 目前 , 国 内学 者对 自动 分 幅的研 究也 较多 , 一是 集 中在理 论研 究上
地 图分 幅是 指按 一定 方式 将广 大地 区 的地 图划
ArcGISEngine二次开发——基础篇
![ArcGISEngine二次开发——基础篇](https://img.taocdn.com/s3/m/51d5111325c52cc58ad6be26.png)
ArcGIS Engine二次开发——基础篇1ArcGIS Engine二次开发——基础篇1.1第一个简单的ArcGIS Engine地图显示程序这个例子将引导您创建第一个简单的地图显示程序,并添加基本的缩放和漫游功能。
如果您之前没有接触过ArcGIS Engine的开发,那么这个例子是您迈入ArcGIS Engine二次开发大门的极好例子,将从零开始引导您一步一步完成任务。
1.1.1创建一个新的工程首先打开Microsoft Visual Studio 2005,点击菜单栏中的“文件”—>“新建”—>“项目”,在弹出的对话框中选择新建一个Visual C#的Windows应用程序,之后更改项目名称为“地图浏览”,更改文件的路径为个人实习文件夹,点击“确定”即可。
图1新建项目对话框选中项目“地图浏览”中的窗体“Form1”,修改其Name属性为“MainForm”,Text属性为“地图浏览”,图2窗体命名1.1.2添加控件及引用点击编译器最左侧的“工具箱”(不存在时可通过“视图”“工具箱”打开),在弹出的选择项中找到“ArcGIS Windows Forms”项,单击其中的MapControl,之后在Form1的空白处单击鼠标左键不放并拖拽鼠标,直到调整MapControl到合适的大小再松开鼠标(您也可以直接在工具箱中双击MapControl,该控件则会自动加入到Form1中)。
用同样的方法,再将LicenseControl添加到Form1中。
图3 打开工具箱图4工具箱如果您在工具箱中找不到MapControl,则请依次尝试以下两种解决方案。
首先单击工具栏,待工具箱弹出之后,在工具箱的任意位置上单击鼠标右键,从弹出菜单中选择“重置工具箱”。
如果这一步操作之后仍然无法看到MapControl,则在工具箱的任意位置上单击鼠标右键,找到“常规”选项卡,然后在“常规”选项卡上单击鼠标右键,在弹出菜单中单击“选择项(I)…”,在弹出的对话框中选择“.NET Framework组件”,找到“LicenseControl”和“MapControl”,将这两项前的复选框打上勾,最后点击确定即可(如果在“.NET Framework 组件”这个面板中找不到这两项,则选择“COM 组件”面板,在“ESRI LicenseControl”和“ESRI. MapControl”前面打勾)。
实验一 基于ArcGIS Engine的程序设计入门
![实验一 基于ArcGIS Engine的程序设计入门](https://img.taocdn.com/s3/m/24607bdf80eb6294dd886c7b.png)
实验一基于ArcGIS Engine的程序设计入门实验数据:"country.shp"、"rivers.shp"、"cities.shp"实验内容:1.基于ArcGIS Engine开发一个简单的系统(基于控件)2.地图操作的基本功能实现(基于代码)3.地图操作基本功能的简单合成1.基于ArcGIS Engine开发一个简单的系统(基于控件)1)设置VB选项,明确变量类型启动Visual Basic6,从“工具”菜单中选择“选项”项,在“选项”对话框中点中“要求变量声明”2)控件加载(1)加载ArcGIS Engine控件①打开Visual Basic,新建一个工程,在【工程】菜单中选中【部件】菜单,在弹出的“部件”对话框中选中“ESRI Controls”复选框,点击“确定”按钮完成ArcGIS Engine 控件的加载②在【工程】菜单中选中【引用】,在列表中添加以下常用的类库引用:●ESRI Carto Object Library●ESRI Display Object Library●ESRI Geometry Object Library●ESRI System Object Library●ESRI SystemUI Object Library(2)在窗体中嵌入ArcGIS Engine控件双击工具箱中的工具图标,将MapControl控件添加到窗体中,用同样的方法将TOCControl、ToolbarControl、LicenseControl都添加到窗体上,并调整好大小和位置。
3)加载地图文档(1)利用MapControl控件的属性加载地图文档或图层①右键单击MapControl控件,在弹出的对话框中选择【Properties】②在弹出的属性页窗体中添加地图文档或图层③右键单击TOCControl控件,在弹出的菜单中选择【Properties】,在弹出的对话框中点击【Buddy】下拉菜单,选择要绑定的地图控件MapControl1④运行程序,显示结果(2)通过代码加载地图文档在Form的Load事件中添加如下代码,既可以通过代码的方式在地图控件中添加地图文右键单击ToolbarControl控件,在弹出的菜单中选择【Properties】,在弹出的对话框中点击【Buddy】下拉菜单,选择要绑定的地图控件MapControl14)地图操作基本功能实现(基于ToolbarControl控件实现)(1)设置ToolbarControl控件的属性(2)运行程序,显示结果2.地图操作的基本功能实现(基于代码)1)移动地图代码2)拉框放大地图3)拉框缩小地图4)中心放大地图5)中心缩小地图6)全图显示7)历史视图切换①前一视图②后一视图3.地图操作基本功能的简单合成1)使用ToolBar来合成地图操作的基本功能请同学们使用ToolBar来合成地图操作的基本功能,实现的界面如下图所示:这些图片位于“实验一基于ArcGIS Engine的程序设计入门\小图标”文件夹中。
基于ArcGIS Engine的地图制图系统开发与实现
![基于ArcGIS Engine的地图制图系统开发与实现](https://img.taocdn.com/s3/m/8c84ac27cfc789eb172dc894.png)
基于ArcGIS Engine的地图制图系统开发与实现作者:王封祚来源:《科技探索》2013年第03期摘要:基于ESRI公司的ArcGIS Engine组件开发了地图制图系统,实现图面整饰,打印输出等功能。
关键词:地图制图 C# ArcGIS Engine1、概述自二十世纪末以来,环境、资源、可持续发展成为全球的焦点问题,空间信息的可视化显得尤为重要,而空间信息可视化最基本的表达方式就是地图。
地图作为人类形象思维的一种方式,地理学的第二语言,源远流长又方兴未艾。
随着空间探测技术的发展,以及经济建设和空间信息传输对地图的需要,现代科学技术和理论在地图学中被不断引用,计算机地图制图,遥感制图和地理信息系统技术开始出现,人们对地图的人事不断深化。
GIS技术的出现为计算机地图制图提供了更加强大的功能和便利的条件,传统的专题制图技术与GIS技术相结合,使专题地图制图方法更加简便、表达更加清晰、内容更加丰富。
目前,国内外已经有很多成熟的商用GIS制图软件。
国外的有ESRI公司的ArcGIS系列软件、mapinfo软件、intergraph等等;国内的有mapgis、supermap、geostar、citystar等。
这些软件已经在各行各业得到了广泛的应用。
商业化的GIS软件制图效果很好,所面向的行业很多,但针对性不强,这在无形中就增加的了生产中的支出。
GIS集成二次开发很好的解决了这个问题。
用户可以根据自己的需要购买组件,然后在一定的软件开发环境下实现自己的功能,这样在很大程度上节约了开支。
本文在visual studio 2008开发环境下,使用C#语言,在ArcGIS Object基础之上实现了地图制图系统的开发,能够进行图面整饰,打印输出等功能。
2、专题制图内容1)地图模板。
具体包括图框大比例小,图框的类型与颜色,模板的底色等。
2)地图格网。
地图格网是地图表达的重要内容,反应地图的坐标系统和投影信息。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
一 使用ArcEngine控件开发
2. MapControl和PageLayoutControl
• MapControl和PageLayoutControl对应于ArcMap桌面应用程 序的“数据”和“布局”视图。用ArcMap创作的地图文 档可以装载到这两个控件中。
二 创建桌面应用程序
4.创建第一个ArcGIS Engine桌面应用程序-1
二 创建桌面应用程序
4.创建第一个ArcGIS Engine桌面应用程序-1
可以看到新创建的项目中自动加载了ToolBarControl、TocControl、 LicenseControl、MapControl四个ArcGIS Engine控件以及一个.NET StatusStrip控件
• ToolbarControl要与一个“伙伴控件”协同工作。“伙伴 控件”可在设计时通过ToolbarControl属性页设置或在驻 留ToolbarControl的容器被显示时用SetBuddyControl方 法通过编程设置。 ToolbarControl可以驻留操作其“伙伴 控件”显示的命令、工具和菜单。
• 这两个控件都具有内置的导航功能,运行终端用户移动三 维视图和可视化三维数据,而不必使用控件命令。要使用 内置的导航工具,必须通过属性页或者编程设置Navigate 属性。
一 使用ArcEngine控件开发
4. ReaderControl
• ReaderControl对应于ArcReader桌面应用程序的“数据”和 “布局”视图及其内容表(TOC)。该控件还包含 ArcReader桌面应用程序使用的内部窗口和工作,如Find窗 口和Identify工具等。用ArcMap桌面应用程序创造并用 ArcGIS Publisher扩展模块发布的发布地图文档(PMF)若 在发布时设置为允许装载到定制的ArcReader应用程序中, 则可以装载到ReaderControl中。
一 使用ArcEngine控件开发
1.ArcGIS控件主题和概念
• 嵌入式组件:可拖放到可视化设计环境提供的容器窗体或 对话框中,并可调整控件的大小和位置。
• 属性页:右键单击控件并选择“属性”菜单项。 • ArcObjects:每个控件为其封装的ArcObjects上频繁使用的
属性和方法提供了快捷方式;每个控件还有一个执行公共 任务的帮助方法。 • 事件:每个控件都会响应终端用户的键盘和鼠标交互而触 发事件。响应发生在控件内的行为会触发一些其他事件。
二 创建桌面应用程序
5.加载MXD地图文档数据-1
二 创建桌面应用程序
6.创建第一个ArcGIS Engine桌面应用程序-2
1. 动Visual Studio .NET,并从新建项目对话框中创建一个新的Visual C# “Windows应用程序”项目。 2.将项目命名为“DEMO”,并选择位置存取该项目。 3.在“工具箱”的“Windows窗体”标签栏中单击右键,然后从上下文菜 单中 选择“选择项”(VS2005)“添加/移除项(I)…”(VS2003);或者工具->选 择工具箱。 4.在“选择工具箱”中选择“.NET Framework组件”,并复选“ AxMapControl”,“AxPageLayoutControl”,“AxTOCControl”和“ AxToolbarControl”,单击确定按钮。这样所选择的控件将显示在工具箱的 Windows窗体标签栏中。
• 地图文档可在设计时通过这两个控件的属性页设置,控件 可以被设置为“链接”或“包含”地图文档;地图文档也 可以使用LoadMxFile方法通过编程装载到控件中。
• MapControl和PageLayoutControl不仅可以读取地图文档ArcEngine控件开发
• ReaderControl中有一个简单的自包含对象模型,提供 ArcReader桌面应用程序所有功能而不需要访问ArcObjects。
一 使用ArcEngine控件开发
5. TOCControl和ToolbarControl
• TOCControl要与一个“伙伴控件”协同工作。“伙伴控 件”可在设计时通过TOCControl属性页设置或在驻留 TOCControl的容器被显示时用SetBuddyControl方法通过 编程设置。
3. GlobeControl和SceneControl
• GlobeControl和SceneControl对应于ArcGlobe和ArcScene桌 面应用程序的三维试图。用ArcGlobe和ArcScene应用程序 创作的Globe和Scene文档可以分别装载到GlobeControl和 SceneControl中。
第九章 地图基本操作的实现
地理信息系统设计与开发
本章内容
使用ArcEngine控件开发 创建桌面应用程序 地图基本操作实现
一 使用ArcEngine控件开发
• ArcEngine提供大量高级开发控件,使开发人员可 以建立或扩展GIS应用程序和创建高质量的地图用 户界面。包括MapControl、PageLayoutControl、 ReaderControl、TOCControl和ToolbarControl。 GlobeControl和SceneControl也可以获得,但使用 这两个控件的应用程序必须具有ArcEngine的3D分 析选项授权。
一 使用ArcEngine控件开发
1.ArcGIS控件主题和概念
• 伙伴控件:ToolbarControl和TOCControl都要与另一个“伙 伴控件”协同工作。
• 控件命令:ArcEngine提供了一系列命令、工具和菜单与 ArcGIS控件协同工作;开发人员也可以通过创建自定义命 令、工具和菜单来扩展ArcEngine提供的命令集。
返回
二 创建桌面应用程序
1.目标
✓创建第一个ArcGIS Engine桌面应用程序 ✓加载MXD文档
2.准备工作
✓Visual Studio 2005/2008 ✓ArcGIS Engine Developer kit 9.2 ✓制作ArcGIS实验数据地图文档MXD
二 创建桌面应用程序
3.设计流程图