ArcEngine地图基本操作的实现

合集下载

ArcGIS Engine指导书3

ArcGIS Engine指导书3

ArcEngine开发实例三一、实例目标及其实现的主要功能1、学习编程实现打开、保存,另存地图文档的方法;2、运用工具栏工具进行地图要素的添加;3、运用状态栏控件实现地图坐标信息的显示。

二、具体的实现过程及代码1、如指导书中的过程,新建一个C#工程项目,并为默认建立的窗体分别添加“ToolBarControl”“TOCControl”“MapControl”“LicenseControl”控件,执行与MapControl 控件的绑定操作,并通过“dock”属性排好。

为工具栏添加如下图所示的工具按钮。

2、添加菜单控件,依次添加菜单栏的主菜单text属性为“文件”,其name属性为“menuFile”,依次添加子菜单,其text属性分别为“打开文档”,“新建文档”,“保存文档”,“另存为….”,“退出”,其name属性分别为“menuOpenDoc”,“menuNewDoc”,“menuSaveDoc”,“menuSaveAsDoc”,“menuExitApp”。

3、打开工具箱,通过添加选项,添加statusBar控件,并双击添加到窗体上。

4、添加ArcGIS的引用ESRI.ArcGIS.Geodatabase和ESRI.ArcGIS.ADF类库,在第一个窗体的代码窗口导入命名空间:using ESRI.ArcGIS.esriSystem;using ESRI.ArcGIS.Carto;using ESRI.ArcGIS.Geodatabase;using ESRI.ArcGIS.Controls;using ESRI.ArcGIS.ADF;using ESRI.ArcGIS.SystemUI;5、在public partial class Form1 : Form代码下添加如下的初始化语句:private IMapControl3 m_mapControl = null;private string m_mapDocumentName = string.Empty;private IContainer components;6、为窗体添加load事件,并添加以下代码:private void Form1_Load(object sender, EventArgs e){m_mapControl = (IMapControl3)axMapControl1.Object;menuSaveDoc.Enabled = false; }7、为菜单“menuOpenDoc”添加click事件,并添加如下代码:ICommand command = new ControlsOpenDocCommandClass();command.OnCreate(m_mapControl.Object);command.OnClick();8、为菜单“menuSaveDoc”添加click事件,并添加如下代码:if (m_mapControl.CheckMxFile(m_mapDocumentName)){IMapDocument mapDoc = new MapDocumentClass();mapDoc.Open(m_mapDocumentName, string.Empty);if (mapDoc.get_IsReadOnly(m_mapDocumentName)){MessageBox.Show("Map document is read only!");mapDoc.Close();return;}mapDoc.ReplaceContents((IMxdContents)m_mapControl.Map);mapDoc.Save(esRelativePaths, false);mapDoc.Close();}9、为菜单“menuSaveAsDoc”添加click事件,并添加如下代码::ICommand command = new ControlsSaveAsDocCommandClass();command.OnCreate(m_mapControl.Object);command.OnClick();10、为菜单“menuExitApp”添加click事件,并添加如下代码:Application.Exit();11、为菜单“menuNewDoc”添加click事件,并添加如下代码:ICommand command = new CreateNewDocument();command.OnCreate(m_mapControl.Object);command.OnClick();12、为控件“axMapControl1”添加OnMouseMove事件,并添加如下代码:statusBar1.Text = string.Format("{0}, {1} {2}", e.mapX.ToString("#######.##"),e.mapY.ToString("#######.##"), axMapControl1.MapUnits.ToString().Substring(4));13、为控件“axMapControl1”添加OnMapReplaced事件,并添加如下代码:m_mapDocumentName = m_mapControl.DocumentFilename;if (m_mapDocumentName == string.Empty){menuSaveDoc.Enabled = false;statusBar1.Text = string.Empty;}else{menuSaveDoc.Enabled = true;statusBar1.Text = Path.GetFileName(m_mapDocumentName);}三、操作通过操作调试该程序源码,观察并掌握AE中对于地图文件保存的操作方法。

ArcEngine实验内容

ArcEngine实验内容

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实现对地图的放大、缩小和平移

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文件路径.。

ArcGISEngine基础开发教程(7)——学习地图输出

ArcGISEngine基础开发教程(7)——学习地图输出

ArcGISEngine基础开发教程(7)——学习地图输出ArcGIS Engine基础开发教程(7)——学习地图输出本帖最后由 fxlcoco 于 2009-7-7 11:22 编辑7地图输出地图输出是一个GIS系统应有的功能,它分为两种类型:一种是地图的打印输出,即把地图的某一范围通过打印机或者绘图仪打印在纸质媒介上,如图1所示;另一种是地图的转换输出,即把地图的某一范围输出转换为不同的文件格式,如JPEG,PDF,SVG,TIFF以及Adobe AI等栅格或矢量图形文件,如图2所示。

7.1目标1.能够使用PageLayout对象通过打印机或绘图仪出图。

2.能够在地图上画取一定范围直接将该范围的地图数据导出为矢量或栅格图形文件(AI,JPEG等)。

图1图23评分次数huashuigiszouzoutingtingmm5566收藏分享评分努力不一定成功,放弃就一定失败。

学习是一种信仰(In learning we trust)!回复引用订阅报告道具 TO Pfxlcoco版主帖子1409精华142#发表于 2009-7-7 10:37 | 只看该作者本帖最后由 fxlcoco 于 2009-7-7 10:47 编辑7.2Printer 类ArcGIS Engine 中对于地图打印使用的是Printer 类是个抽象类,它有三个子类:EmfPrinter,ArcPressPrinter 和PsPrinter 这三种类对象都支持各自类型的硬拷贝设备,开发者选择需要的打印对象不是随意决定的,二取决于程序使用的打印设备类型和驱动程序的类型。

它们都实现了IPrinter 接口,IPrinter 接口定义了所有打印对象的一般方法和属性。

如IPrinter 的Pager 属性用于初始化与系统关联的打印机。

IPrinter 的StartPrint 方法用于返回一个打印设备的hDC,Irinter 的FinishPrinting 用于清除打印后的缓存对象。

ArcGIS Engine基础开发教程(5)--学习地图输出

ArcGIS Engine基础开发教程(5)--学习地图输出

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)

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);

第5章_ArcGIS Engine二次开发(基本功能)

第5章_ArcGIS Engine二次开发(基本功能)
图31 “启动调试”按钮
图32 初次运行结果
3.1.4 添加基本的代码
➢ 我们没有书写任何代码,就得到了一个最简单的地图显示程序。但这 个程序还不能与用户交互,下一步我们需要添加一些代码,让程序能 响应用户的鼠标,完成放大和全图显示的功能。
图33 MapControl控件支持的所有方法
➢ 双击MapControl控件,可以进入代码编辑界面。从窗口上方的下拉 列表框中,我们能够看到MapControl能够响应的所有事件(关于每 个事件的详细使用方法等请参见帮助系统,第六章对帮助系统有更加 详细的介绍)。双击MapControl进入代码编辑界面的时候,默认的 是“OnMouseDown”事件,下一步就需要在这个事件中添加响应鼠 标的相关代码。
If pFeature Is Nothing Then Me.AxMapControl1.Refresh() MessageBox.Show("没有找到名为" & TextBox1.Text & "的州",
"Infomation", MessageBoxButtons.OK) Exit Sub
Else Me.AxMapControl1.Map.SelectFeature(pFeatureLayer, pFeature) Me.AxMapControl1.Extent = pFeature.Shape.Envelope
End If End If
➢ 运行程序,分别向编辑框中输入“Texas”和“RS”,键入回车,如 下图所示:
图39 Texas州查询结果
图40 RS查询结果
3.2.3 代码解释
If e.KeyChar = Microsoft.VisualBasic.ChrW(Keys.Return) Then 上述代码是一个判断语句,即当用户输入回车的时候,开始进行查询。

第九章 地图基本操作的实现

第九章 地图基本操作的实现



1.2 ArcGIS控件主题和概念
1.2 ArcGIS控件主题和概念
1.3 MapControl和PageLayoutControl

MapControl和PageLayoutControl对应于ArcMap桌面应用 程序的“数据”和“布局”视图。用ArcMap创作的地图 文档可以装载到这两个控件中。


1.2 ArcGIS控件主题和概念

伙伴控件:ToolbarControl和TOCControl都要与另一个 “伙伴控件”协同工作。 控件命令:ArcEngine提供了一系列命令、工具和菜单与 ArcGIS控件协同工作;开发人员也可以通过创建自定义命 令、工具和菜单来扩展ArcEngine提供的命令集。 地图制作:ArcGIS Desktop应用程序可用于预制作能被装 载到ArcGIS控件中的文档,以便快速生产高质量的地图。


1.2 ArcGIS控件主题和概念

嵌入式组件:可拖放到可视化设计环境提供的容器窗体或 对话框中,并可调整控件的大小和位置。 属性页:右键单击控件并选择“属性”菜单项。 ArcObjects:每个控件都封装了粗粒度ArcObjects,同时 又提供了对细粒度ArcObjects的访问;每个控件为其封装 的ArcObjects上频繁使用的属性和方法提供了快捷方式; 每个控件还有一个执行公共任务的帮助方法。 事件:每个控件都会响应终端用户的键盘和鼠标交互而触 发事件。响应发生在控件内的行为会触发一些其他事件。
内置的导航工具,必须通过属性页或者编程设置Navigate 属性。

动手操作
1.5 ReaderControl

ReaderControl对应于ArcReader桌面应用程序的“数据” 和“布局”视图及其内容表(TOC)。

地理信息系统开发ArcEngine方法

地理信息系统开发ArcEngine方法

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的专题地图制作的实现

作者简介黄勇奇(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教程-第5章_地图制图详述

牟乃夏ArcEngine教程-第5章_地图制图详述
SimpleMarkerSymbol用与设置简单类型的点符号,该类实现了 ISimpleMarkerSymbol接口。其Style属性用于设置点类型的样 式,它有五种类型,并存储在esriSimpleMarkerStyle变量中, 分别是圆形、矩形、十字形、X型、菱形。
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)

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对象,空间参考等对象。

基于ArcEngine的地理信息系统功能研究与简易实现

基于ArcEngine的地理信息系统功能研究与简易实现
SI C &T0NL0 FR AI C NE EHoOYI OM T N E N O
测 绘 工 程
基 于 Ar E ie的地 理信 息 系统功 能研 究 与简 易 实现 n c gn
周 海 平 ( 津市勘察院 天 津 3 0 1) 天 01 9
摘 要: 地理 信 息 幂统 以其强 大的数 据可视化 , 空间数 据库管理 以及 空间分 析功 能, I 区信息 化管理提 供 了强有 力的 工 。 为l l 本文 以 津 莱开 发 区 固 区地 理 信 息 系 ̄ -- 为 研 究 背 景 , G Sf术 在 固 区 信 息 管 理 中 的 应 用 进行 了研 究 , f -发 对 I ̄ L 阐述 系统 总体 结 构 . 能 模 块 和 数 据 库 功 设 计, 于ArG S n ie 基 c I E gn 开发平 台 , 结合 可视化 开发语 言V sa C i 行 集成二次开 发, iu l # t 实现 了显 示. 查询 , 煽辑 4GI常 用功能 以度 三  ̄ S 堆 显示和 三堆 分析 功能 , 为开 发区 管理 部 门提 供 多层次 固区地 理数据 与决策 依据 。 关 键 词 : 区地 理 信 息 系统 A e I E gn 三 维分 析 固 rG S n ie 中 图分 类 号 : 2 P 文 献标 识 码 : A 文 章编 号 : 7 —3 9 ( 01 ) 7c一0 5 —0 1 2 7 1 2 20 () 0 6 2 6
从开 发 区 园区 信 息 管 理 的 实 际需 要 出 3 2基于 G o aa ae 空间 数据组 织模式 层 控 制 区 、 单 栏 和 工 具 栏 组 成 。 . ed tbs 的 菜 发 , 统 能 够 对 新 园 区 地 形 、 筑 物 、 线 系 建 管 本 系 统 需 要对 园 区建 筑 物 、 下管 线 、 地 地 图 浏 览功 能 可 进 行 视 图控 制 和 图 层 等 数 据 进 行 统 筹 管 理 , 录 新 园 区 从 规 划 运 动 场 等 多种 地 理 要 素 的 空 间 数据 和属 性 控 制操作 , 记 主要 是 利用 ArG S n i e 己 c I E g n 中 初 期 到 竣 工 建 成 的 整 个 建 设 过 程 ; 高 园 数 据 进 行 管 理 , 及 的数 据 种 类 多 , 据 量 封 装的 工具 条控件 ( 0 la C n r 1和 目录 提 涉 数 T ob r o t0 )

基于ArcEngine的地图注记自动配置模块设计与实现

基于ArcEngine的地图注记自动配置模块设计与实现

基于ArcEngine 的地图注记自动配置模块设计与实现王海涛1,赵 翀1*,秦进春2,3(1.61363部队,陕西 西安 710054;2.西安测绘研究所,陕西 西安710043;3.地理信息工程国家重点实验室,陕西 西安 710043)摘 要:首先分析了地图注记的分类和布置原则;然后利用ArcEngine 对象模型,将地图注记按照表达方式分为单式注记和复式注记,分别研究了二者自动配置的设计思想和实现方法;最后利用某市的地下管线普查数据,实现了基于ArcEngine 的地图注记自动配置模块,验证了研究方法的可行性。

关键词:注记;要素;接口;属性信息中图分类号:P208 文献标志码:B文章编号:1672-4623(2019)05-0056-04地图的基本语言是符号,地图使用的自然语言是注记。

注记是地图符号系统的一个组成部分,是地图上不可或缺的元素,具有表达对象关系、描述对象属性、标识地图对象等作用,一般通过文字、数字或二者组合表达,由字体、字间距、排列方向、字号、位置以及色彩等构成[1]。

地图符号与地图注记是地图中最主要的两个组成要素,运用地图符号对地理信息进行定位;运用地图注记对地物的相关属性进行描述,对地理信息进行定性定量表达[2]。

因此,无论是信息表达角度还是美观角度,注记在地图信息表达中的作用都是非常重要的。

1地图注记分类和布置原则地图注记有多种分类方法,目前最为大众所认知的是按注记表现形式进行分类,具体分为:①专有名称注记,如居民地、河流、山脉、海洋等;②说明注记,常用以补充说明地物的特有信息或图幅说明信息;③数字注记,表达地理对象的数量属性,如高程、路宽以及河流长度等;④专题地图的图例代号和文字 符号[3]。

地图注记是为了补充说明地图元素而存在的,注记不能随意布置,特别是多类型注记同时使用时,可能会出现压盖、错位等问题[4]。

为了使地图表示更加美观、利于阅读,地图注记的布置原则一般包括:①主次分明,②互补混淆,③不压盖重要地物,④整齐美观,⑤符合规范或习惯,⑥注记密度与地理对象密度大致相同。

ArcEngine地图基本操作的实现

ArcEngine地图基本操作的实现

二 创建桌面应用程序
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中。

arcgis操作步骤

arcgis操作步骤

arcgis操作步骤
ArcGIS 是一套地理信息系统(GIS)软件,用于处理、分析和可视化地理数据。

以下是一般情况下在ArcGIS 中进行基本操作的一些步骤:
一、启动ArcGIS:打开ArcGIS 软件。

二、创建新地图文档(Map Document):在ArcGIS 中创建一个新的地图文档,用于存储地图和相关的地理数据。

三、添加数据(Add Data):将要分析或显示的地理数据添加到地图文档中。

可以是矢量数据(点、线、面)、栅格数据(影像、地形)等。

四、设置地图投影(Define Projection):确保地图文档中的各个数据集使用相同的地理投影,以确保数据在地图上正确对齐。

五、制作地图(Map Layout):在地图文档中创建地图布局,包括地图的标题、图例、比例尺等元素。

六、进行空间分析(Spatial Analysis):使用ArcGIS 工具进行空间分析,如缓冲区分析、空间查询、网络分析等。

七、制作图表和统计(Charts and Statistics):使用ArcGIS 工具制作地理图表,进行数据统计和可视化。

八、输出地图(Export Map):将制作好的地图导出为图像文件、打印文档或其他可用形式。

九、保存和分享(Save and Share):定期保存地图文档,并根据需要分享或分发地图。

十、关闭ArcGIS:完成工作后关闭ArcGIS 软件。

这只是一般情况下的一些基本步骤,具体操作可能会因任务和数据类型而有所不同。

根据具体的需求和工作流程,ArcGIS 提供了丰富的工具和功能来支持地理信息系统的各种应用。

ArcEngine基础开发教程

ArcEngine基础开发教程

pPath.AddSegment(pSegment,ref o,ref o); //创建一个 Polyline 对象
IGeometryCollection pPolyline = new PolylineClass(); //通过 IGeometryCollection 为 Polyline 对象添加 Path 对象
本文由 fxlcoco 编写 ESRI BBS GIS 大讲堂首发
04/04/2011业大学资源与环境学院
世界有我精彩-【侯志伟】整理
//添加第一个点,不需要设置点的顺序,参数设置为 Type.Missing pMultipoint.AddPoint(pPoint1, ref o, ref o); //添加第二个点,不需要设置点的顺序,参数设置为 Type.Missing pMultipoint.AddPoint(pPoint2, ref o, ref o); ……//添加其他点 2.4.2Segment 几何对象
地理信息系统08-3
可以看到应用程序把 MXD 地图文档加载到 MapControl 地图上,可以使用 ToolbarControl 提供的常用 GIS 功能如:放大,缩小,信息查询等功能。如图5所示:
1.7 为应用程序添加编辑功能 在应用程序设计模式下右键单击 ToolbarControl,单击属性选项弹出 ToolbarControl 属性对话框,单击 Items 选 项卡,单击 Add…按钮弹出 Controls Commands 对话框,单击 Toolset 选项卡,选择 Feature Editors 选项,拖动 到属性对话框工具栏的指定位置。如图6所示
04/04/2011
本文由 fxlcoco 编写 ESRI BBS GIS 大讲堂首发 第 1 页,共 80 页

基于ArcGIS Engine的地图制图系统开发与实现

基于ArcGIS Engine的地图制图系统开发与实现

基于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)地图格网。

地图格网是地图表达的重要内容,反应地图的坐标系统和投影信息。

基于ArcEngine的地图自动分幅实现_刘静波

基于ArcEngine的地图自动分幅实现_刘静波

第33卷第6期2013年11月海洋测绘HYDROGRAPHIC SURVEYING AND CHARTINGVol.33,No.6Nov.,2013收稿日期:2013-02-16;修回日期:2013-06-27作者简介:刘静波(1980-),男,陕西宝鸡人,工程师,硕士,主要从事海洋重力测量和GIS 应用研究。

DOI :10.3969/j.issn.1671-3044.2013.06.013基于ArcEngine 的地图自动分幅实现刘静波1,王伟2,李欣2,李进勇1,朱小辰1(1.91561部队,广东广州510320;2.武汉大学测绘遥感信息工程国家重点实验室,湖北武汉430079)摘要:论述了地图分幅、地图编号及地图分幅中的坐标系转换问题,简单介绍了ArcEngine 及其二次开发工具中提供的功能,在此基础上编程开发实现了自动的地图经纬分幅及矩形分幅功能。

给出地图自动分幅流程,进行功能设计和测试分析,提出进一步完善地图分幅的建议。

关键词:ArcEngine ;经纬分幅;矩形分幅;地图编号;地图投影中图分类号:P208文献标志码:B文章编号:1671-3044(2013)06-0045-041引言随着数字地球、数字城市的发展与成熟,电子地图逐渐普及。

电子地图的图幅范围不受限制,可以动态加载到屏幕,但如果要将电子地图输出为纸质等介质的地图,就需要考虑到地图的自动分幅问题。

因此,地图的自动分幅输出是电子地图软件的一项基本功能。

另一方面,传统的手工地图分幅计算量大,过程复杂,效率较低,地图的自动分幅可以辅助手工分幅,提高手工分幅的效率。

目前,国内学者对自动分幅的研究也较多,一是集中在理论研究上[7,9-10];二是研究利用GIS 类软件完成地图分幅[6,11],操作过程较为复杂,自动化程度不高。

ESRI 的ArcGIS Engine (简称ArcEngine )是一个用于建立自定义独立地理信息系统应用程序的平台,支持多种应用程序接口,拥有许多高级GIS 功能[1]。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
axTOCControl1.Left = this.Left; axTOCControl1.Top = axToolbarControl1.Top + axToolbarControl1.Height; axTOCControl1.Width = this.Width / 6; axTOCControl1.Height = this.Height - axToolbarControl1.Top - axToolbarControl1.Height;
}
二 创建桌面应用程序
6.创建第一个ArcGIS Engine桌面应用程序-2
using ESRI.ArcGIS.SystemUI;
private void Form1_Load(object sender, EventArgs e) { axToolbarControl1.AddItem("esriControls.ControlsMapZoomInTool", -1, -1, true, 0,
返回
二 创建桌面应用程序
1.目标
创建第一个ArcGIS Engine桌面应用程序 加载MXD文档
2.准备工作
Visual Studio 2019/2019 ArcGIS Engine Developer kit 9.2 制作ArcGIS实验数据地图文档MXD
二 创建桌面应用程序
3.设计流程图
• ReaderControl中有一个简单的自包含对象模型,提供 ArcReader桌面应用程序所有功能而不需要访问ArcObjects。
一 使用ArcEngine控件开发
5. TOCControl和ToolbarControl
• TOCControl要与一个“伙伴控件”协同工作。“伙伴控 件”可在设计时通过TOCControl属性页设置或在驻留 TOCControl的容器被显示时用SetBuddyControl方法通过 编程设置。
• 地图文档可在设计时通过这两个控件的属性页设置,控件 可以被设置为“链接”或“包含”地图文档;地图文档也 可以使用LoadMxFile方法通过编程装载到控件中。
• MapControl和PageLayoutControl不仅可以读取地图文档, 还可以写入地图文档(*.mxd)。
一 使用ArcEngine控件开发
}
axTOCControl1.SetBuddyControl(axMapControl1); axToolbarControl1.SetBuddyControl(axMapControl1); }
返回
三 地图基本操作实现
加载图层数据 地图显示基本控制
三 地图基本操作实现
1.加载图层数据
• ArcEngine支持多种文件类型,矢量数据如: ArcInfo Coverage、ESRI Shapefile、AutoCAD的 DXF和DWG文件等,栅格数据如JPG、TIFF、 BMP、GRID等。此外还支持企业数据库中的矢量 和栅格文件以及个人数据库文件等。
• 地图制作:ArcGIS Desktop应用程序可用于预制作能被装 载到ArcGIS控件中的文档,以便快速生产高质量的地图。
一 使用APageLayoutControl
• MapControl和PageLayoutControl对应于ArcMap桌面应用程 序的“数据”和“布局”视图。用ArcMap创作的地图文 档可以装载到这两个控件中。
}
二 创建桌面应用程序
6.创建第一个ArcGIS Engine桌面应用程序-2
private void Form1_Load(object sender, EventArgs e) { string filename ="E:\\上课资料\\测绘08-GIS开发\\map\\SD.mxd"; if ( axMapControl1.CheckMxFile (filename) )
3. GlobeControl和SceneControl
• GlobeControl和SceneControl对应于ArcGlobe和ArcScene桌 面应用程序的三维试图。用ArcGlobe和ArcScene应用程序 创作的Globe和Scene文档可以分别装载到GlobeControl和 SceneControl中。
{
axMapControl1.LoadMxFile(filename); //using ESRI.ArcGIS.Carto; //IActiveView activeViw = axMapControl1.Map as IActiveView; // activeViw.Extent = axMapControl1.FullExtent; //axMapControl1.Refresh();
二 创建桌面应用程序
5.加载MXD地图文档数据-1
二 创建桌面应用程序
6.创建第一个ArcGIS Engine桌面应用程序-2
1. 动Visual Studio .NET,并从新建项目对话框中创建一个新的Visual C# “Windows应用程序”项目。 2.将项目命名为“DEMO”,并选择位置存取该项目。 3.在“工具箱”的“Windows窗体”标签栏中单击右键,然后从上下文菜 单中 选择“选择项”(VS2019)“添加/移除项(I)…”(VS2019);或者工具->选 择工具箱。 4.在“选择工具箱”中选择“.NET Framework组件”,并复选“ AxMapControl”,“AxPageLayoutControl”,“AxTOCControl”和“ AxToolbarControl”,单击确定按钮。这样所选择的控件将显示在工具箱的 Windows窗体标签栏中。
一 使用ArcEngine控件开发
1.ArcGIS控件主题和概念
• 嵌入式组件:可拖放到可视化设计环境提供的容器窗体或 对话框中,并可调整控件的大小和位置。
• 属性页:右键单击控件并选择“属性”菜单项。 • ArcObjects:每个控件为其封装的ArcObjects上频繁使用的
属性和方法提供了快捷方式;每个控件还有一个执行公共 任务的帮助方法。 • 事件:每个控件都会响应终端用户的键盘和鼠标交互而触 发事件。响应发生在控件内的行为会触发一些其他事件。
中国石油大学(华东)地球科学与技术学院测绘系
第九章 地图基本操作的实现
地理信息系统设计与开发
本章内容
使用ArcEngine控件开发 创建桌面应用程序 地图基本操作实现
一 使用ArcEngine控件开发
• ArcEngine提供大量高级开发控件,使开发人员可 以建立或扩展GIS应用程序和创建高质量的地图用 户界面。包括MapControl、PageLayoutControl、 ReaderControl、TOCControl和ToolbarControl。 GlobeControl和SceneControl也可以获得,但使用 这两个控件的应用程序必须具有ArcEngine的3D分 析选项授权。
esriCommandStyles.esriCommandStyleIconOnly);
axToolbarControl1.AddItem("esriControls.ControlsMapZoomOutTool", -1, -1, false, 0, esriCommandStyles.esriCommandStyleIconOnly);
Workspace类
Workspace类表示工作区,它是空间数据和非空间数据集的容器,它是 一个类,因此不能被直接创建,而只能从别的对象那里获得;它提供 了使用和创建新的数据集的方法。根据esri Workspace的不同, Workspace可以分为以下几种: 文件系统工作区(Filesystem Workspace),Shapefile和ArcInfo的 Workspace属于这种; 本地数据库工作区(LocalDatabase Workspace),例如Microsoft Access中存储的个人地理数据库; 远程数据库工作区(RemoteDatabase Workspace),例如存放在Oracle、 DB2等中需要使用ArcSDE的相关组件来方位的地理数据库。
• 这两个控件都具有内置的导航功能,运行终端用户移动三 维视图和可视化三维数据,而不必使用控件命令。要使用 内置的导航工具,必须通过属性页或者编程设置Navigate 属性。
一 使用ArcEngine控件开发
4. ReaderControl
• ReaderControl对应于ArcReader桌面应用程序的“数据”和 “布局”视图及其内容表(TOC)。该控件还包含 ArcReader桌面应用程序使用的内部窗口和工作,如Find窗 口和Identify工具等。用ArcMap桌面应用程序创造并用 ArcGIS Publisher扩展模块发布的发布地图文档(PMF)若 在发布时设置为允许装载到定制的ArcReader应用程序中, 则可以装载到ReaderControl中。
三 地图基本操作实现
1.加载图层数据——ShapeFile文件
• 添加ShapeFile文件一般要用到Workspace、 WorkspaceFactory、FeatureWorkspace、 FeatureClass、FeatureLayer等组件类或者抽象类。
三 地图基本操作实现
1.加载图层数据——ShapeFile文件
• ToolbarControl要与一个“伙伴控件”协同工作。“伙伴 控件”可在设计时通过ToolbarControl属性页设置或在驻 留ToolbarControl的容器被显示时用SetBuddyControl方 法通过编程设置。 ToolbarControl可以驻留操作其“伙伴 控件”显示的命令、工具和菜单。
6.创建第一个ArcGIS Engine桌面应用程序-2
相关文档
最新文档