GIS实验二 MO数据操作

合集下载

GIS实验指导书

GIS实验指导书

地理信息系统实验指导书(校内讲义)黄寿昌主编广西生态工程职业技术学院二○○六年二月目录前言 (1)实验一MapInfo栅格图像的配准 (2)实验二MapInfo表的建立及地图对象的编辑 (5)实验三MapInfo屏幕跟踪矢量化 (8)实验四MapInfo空间数据的查询 (10)实验五MapInfo专题图制作 (21)实验六MapInfo布局的设计与制作 (23)前言学习《地理信息系统》必须重视实践环节,独立完成在地理信息系统中进行森林资源信息空间数据的输入、编辑、管理和分析能力的操作等,将林业知识与高新技术结合在一起。

上机实验的目的,绝不仅是为了验证讲课内容或者自己所设计的程序正确与否,而是为了:⑴加深对讲授内容的理解,仅靠课堂讲授是很难掌握和熟练应用的,但它们又很重要。

通过多次上机操作,就能自然、熟练地掌握它们。

⑵学会GIS的建立开发,善于积累与总结所学知识,为今后在实际工作中将森林资源信息的管理与高新技术的结合融为一体积累经验。

实验一般应包括以下几个步骤:⑴上机之前准备好上机操作设计思路与相关的材料、资料及相关理论,提高上机效率。

⑵按设计思路上机调试操作,对设计思路进行调整以完成所要完成的上机操作内容。

⑶上机结束后,整理出实验报告。

本实验指导书,本着使用计算机及高新技术将森林资源信息进行高效管理为目标进行设计,共包括六个实验,每个实验中都有具体的实验目的和详细的实验内容及实验步骤,能促进学生将讲授的知识转化为实际操作技能。

各实验内容如下:实验一:MapInfo栅格图像的配准。

实验二:MapInfo表的建立及地图对象的编辑。

实验三:MapInfo屏幕跟踪矢量化。

实验四:MapInfo空间数据的查询。

实验五:MapInfo专题图制作。

实验六:MapInfo布局的设计与制作。

由于时间仓促及编者水平所限,书中疏漏与不当之处恳请广大读者批评指正。

编者2006年2月实验一MapInfo栅格图像的配准一、目的1、通过投影选择和控制点配准,了解GIS中投影的概念,图形配准的概念。

gis实验报告二

gis实验报告二

gis实验报告二GIS实验报告二一、实验目的本次实验的目的是探究GIS在地图制作和空间分析中的应用。

通过实际操作,了解GIS在地理信息处理、数据分析和空间可视化方面的优势和特点。

二、实验过程1. 数据采集:首先,我们需要收集相关的地理信息数据,包括地图数据、人口分布数据、地形图等。

这些数据可以通过网络下载或者实地测量获得。

2. 数据处理:在GIS软件中,我们将收集到的数据进行处理和整合,包括数据清洗、格式转换、数据匹配等操作,以确保数据的准确性和完整性。

3. 地图制作:利用GIS软件,我们可以将处理好的地理信息数据制作成各种类型的地图,包括矢量地图、栅格地图、三维地图等。

通过地图制作,我们可以直观地展现地理信息数据的空间分布和特征。

4. 空间分析:GIS软件提供了丰富的空间分析功能,包括缓冲区分析、叠加分析、空间插值等。

通过空间分析,我们可以深入挖掘地理信息数据的空间关联性和规律性,为决策提供科学依据。

5. 结果展示:最后,我们将制作好的地图和分析结果进行展示和分享,以便他人了解和使用。

三、实验结果通过本次实验,我们深入了解了GIS在地图制作和空间分析中的应用。

我们成功地制作了各种类型的地图,并进行了空间分析,得到了有价值的结果。

四、总结与展望GIS作为一种重要的地理信息处理工具,具有广泛的应用前景。

通过本次实验,我们对GIS的功能和特点有了更深入的了解,同时也对未来的研究和实践提出了新的展望和期待。

通过这次实验,我们不仅学到了GIS软件的操作技巧,更重要的是了解了GIS在地理信息处理和空间分析中的重要作用,这将对我们未来的研究和工作产生积极的影响。

GIS实验报告

GIS实验报告

GIS实验报告一、实验目的本次 GIS 实验旨在深入了解地理信息系统(GIS)的基本原理和操作方法,通过实际操作和数据分析,掌握 GIS 在地理数据处理、空间分析和地图制作等方面的应用,提高对地理空间信息的理解和处理能力。

二、实验环境本次实验使用的软件为 ArcGIS 106,操作系统为 Windows 10。

实验数据包括地形数据、土地利用数据、道路数据等。

三、实验内容1、数据导入与预处理首先,将实验所需的各类数据导入 ArcGIS 中。

在导入过程中,需要注意数据格式的兼容性,并对数据进行必要的预处理,如坐标系的定义、数据的裁剪和拼接等。

通过这些操作,确保数据的准确性和完整性,为后续的分析和处理奠定基础。

2、空间数据编辑在 ArcGIS 中,使用编辑工具对空间数据进行修改和完善。

例如,对道路数据进行线段的添加、删除和修改,以使其更符合实际情况。

同时,对土地利用数据中的错误分类进行纠正,保证数据的质量。

3、空间分析运用 ArcGIS 的空间分析功能,进行缓冲区分析、叠加分析和网络分析等。

(1)缓冲区分析:以道路中心线为基础,创建一定宽度的缓冲区,用于评估道路对周边环境的影响范围。

(2)叠加分析:将土地利用数据与地形数据进行叠加,分析不同地形条件下的土地利用类型分布情况。

(3)网络分析:通过构建道路网络模型,计算最短路径、服务范围等,为交通规划和资源配送提供决策支持。

4、地图制作与输出根据分析结果,制作专题地图。

在地图制作过程中,合理选择地图符号、颜色和标注,以清晰直观地展示地理信息。

同时,添加图例、比例尺和指北针等地图要素,增强地图的可读性。

最后,将制作好的地图以多种格式输出,如图片格式(JPEG、PNG 等)和 PDF 格式,以便于分享和使用。

四、实验结果1、数据预处理后,各类数据的坐标系统一,数据完整性得到保障,为后续分析提供了可靠的数据基础。

2、空间数据编辑使得道路和土地利用数据更加准确和合理,提高了数据的质量。

新大地理信息系统实验指导02基本操作

新大地理信息系统实验指导02基本操作

实验二基本操作知识内容:基本操作:打开表、打开非MapInfo表文件、打开工作空间、浏览地图、浏览表格数据、创建统计表、使用信息工具;绘制和编辑地图:包括绘制符号、线条、区域及框架,还有对象的调整等。

目标要求:掌握MapInfo打开表的步骤,理解工作空间及其打开方法,掌握浏览地图、浏览表格数据的方法,掌握用绘图工具绘制和编辑地图及其整形。

上机操作:表的基本操作与绘制和编辑地图,多种方法的数据采集。

MapInfo是一种功能强大的图形软件,它利用点、线、区域等多种图形元素以及丰富的地图符号、文本类型、线型、填充模式和颜色等表现类型,详尽、直观、形象地显示各种电子地图。

1.基本操作概述1.1 打开表MapInfo是以表的形式来组织信息的,表是将数据与图形有机的结合在一起的纽带。

每一个表都是—组MapInfo文件,这些文件组成了地图文件和数据库文件。

要想在MapInfo 中工作,首先必须打开一个或多个表。

1.1.1 打开表MapInfo支持多种类型:MapInfo表、dBase DBF文件、分界ASCII文件、1-2-3电子表格、Microsoft Excel文件,栅格文件,Microsoft Access文件等。

其中MapInfo表是最常用的类型,也是打开表的缺省类型。

要打开表,首先得保证持打开的表是可用的。

打开表可以有以下途径:●菜单:选择”文件”>”Open File”。

●常用工具条:打开表按钮。

在”文件名”文本框中键入或选择要打开的文件名后,单击”打开”按钮即可打开所选择的文件。

此外,也可双击持打开文件将其打开。

对于dBase DBF、Delimited ASCII、Lotus 1-2-3、Microsoft Excel、Raster Image 及Microsoft Access等非MapInfo表文件,单击”打开”后,MapInfo将显示另一个对话框,提示输入进一步信息。

MapInfo可以采用多种方式显示所打开文件,可根据自己需要选择合适的视图方式。

GIS软件应用实验指导书

GIS软件应用实验指导书

GIS实验指导书张明媚地质测绘工程系2017年5月目录实验一、使用ARCMAP浏览地理数据 (1)一、实验目的 (1)二、实验准备 (1)三、实验步骤及方法 (3)第1步启动ArcMap (3)第2步检查要素图层 (5)第3步显示其它图层 (6)第4步查询地理要素 (7)第5步检查其它属性信息 (9)第6步设置并显示地图提示信息 (11)第7步根据要素属性设置图层渲染样式 (14)第8步根据属性选择要素 (18)第9步使用空间关系选择地理要素 (20)第10步退出ArcMap (22)四、实验报告要求 (23)实验二、空间数据库管理及属性编辑 (24)一、实验目的 (24)二、实验准备 (24)三、实验内容及步骤 (25)第1步启动ArcCatalog打开一个地理数据库 (25)第2步预览地理数据库中的要素类 (26)第3步创建缩图,并查看元数据 (28)第4步创建个人地理数据库(Personal Geodatabase-PGD) (29)第5步拖放数据到ArcMap中 (37)第6步编辑属性数据及进行1:M的空间查询 (38)第7步导入GPS数据,生成图层 (40)四、实验报告要求 (44)实验三、影像配准及矢量化 (46)一、实验目的 (46)二、实验准备 (46)三、实验内容及步骤 (46)第1步地形图的配准-加载数据和影像配准工具 (46)第2步输入控制点 (47)第3步设定数据框的属性 (49)第4步矫正并重采样栅格生成新的栅格文件 (52)第5 步分层矢量化-在ArcCatalog中创建一个线要素图层 (53)第6步从已配准的地图上提取等高线并保存到上面创建的要素类中 (58)第7步根据GPS观测点数据配准影像并矢量化的步骤 (59)四、实验报告及要求 (65)实验四、空间数据处理 (66)一、实验目的 (66)二、实验准备 (66)三、实验内容及步骤 (68)空间数据处理 (68)第1步裁剪要素 (68)第3步要素融合 (71)第4步图层合并 (72)第5步图层相交 (74)定义地图投影 (75)第6步定义投影 (75)第7步投影变换――地理坐标系->北京1954坐标系转换->西安80坐标系 (76)四、实验报告要求 (77)实验五、空间分析基本操作 (79)一、实验目的 (79)二、实验准备 (79)三、实验内容及步骤 (80)空间分析模块 (80)1. 了解栅格数据 (81)2. 用任意多边形剪切栅格数据(矢量数据转换为栅格数据) (83)3. 栅格重分类(Raster Reclassify) (86)4. 栅格计算-查询符合条件的栅格(Raster Calculator) (87)5. 面积制表(Tabulate Area) (88)6. 分区统计(Zonal Statistic) (90)7. 缓冲区分析(Buffer) (92)8. 空间关系查询 (95)9. 采样数据的空间内插(Interpolate) (96)10. 栅格单元统计(Cell Statistic) (100)11. 邻域统计(Neighborhood) (102)四、实验报告要求 (104)实验六、缓冲区分析应用(综合实验) (105)一、实验目的 (105)二、实验准备 (105)三、实验内容及步骤 (105)1. 距离制图-创建缓冲区 (105)1.1 点要素图层的缓冲区分析 (105)1.2 线要素图层的缓冲区分析 (107)1.3 多边形图层的缓冲区分析 (109)2.综合应用实验 (110)2.1 水源污染防治 (110)2.2 受污染地区的分等定级 (112)2.3 城市化的影响范围 (115)四、实验报告要求 (118)实验七、地形分析-----TIN及DEM的生成及应用(综合实验) (119)一、实验目的 (119)二、实验准备 (119)三、实验内容及步骤 (119)1. TIN 及DEM 生成 (119)1.1由高程点、等高线矢量数据生成TIN转为DEM (119)1.2 TIN的显示及应用 (122)2. DEM的应用 (133)2.1坡度:Slope (133)2.2 坡向:Aspect (136)2.3提取等高线 (138)2.4计算地形表面的阴影图 (139)2.5可视性分析 (142)2.6地形剖面 (144)四、实验报告要求 (145)实验八、MODEL BUILDER 土壤侵蚀危险性建模分析(综合实验) (146)一、实验目的 (146)二、实验准备 (146)三、实验内容及步骤 (146)1. 认识ModelBuilder操作界面 (146)2. 确定目标,加载数据 (147)3. 创建模型 (147)4. 编辑模型 (150)5. 执行模型,查看结果 (164)四、实验报告要求 (165)实验九、水文分析-DEM应用 (169)一、实验目的 (169)二、实验准备 (169)三、实验内容及步骤 (172)1. 数据基础:无洼地的DEM (172)2. 关键步骤:流向分析 (173)3. 计算流水累积量 (174)4. 提取河流网络 (175)5.流域分析 (178)6. 其它应用--降水分析(选做) (180)四、实验报告要求 (181)实验十、网络分析 (182)一、实验目的 (182)二、实验准备 (182)三、实验内容及步骤 (183)1.寻找最佳路径 (183)2. 确定最近设施 (187)3. 创建服务区域 (189)四、实验报告要求 (192)实验十一、3D 可视分析 (193)一、实验目的 (193)二、实验准备 (193)三、实验内容及步骤 (193)1.GIS数据三维显示 (193)2. 三维飞行动画制作 (199)四、实验报告要求 (201)实验十二、ARCMAP制图-地图版面设计 (202)一、实验目的 (202)二、实验准备 (202)三、实验内容及步骤 (202)第1步渲染图层要素-唯一值符号 (202)第2步标注图层要素 (207)第3步渲染图层要素—分类渲染 (209)第4步渲染图层要素—点密度渲染 (213)第5步渲染图层要素—图表渲染 (215)第6步创建地图版面 (216)第7步添加各种元素到地图版面中 (221)第8步打印输出地图 (227)四、实验报告要求 (230)实验十三、基于GIS的城镇土地分等定级(综合实验) (231)一、实验目的 (231)二、实验准备 (231)三、实验内容及步骤 (231)四、实验报告要求 (232)参考文献: (233)实验一、使用ArcMap浏览地理数据一、实验目的1.了解地理数据是如何进行组织及基于“图层”进行显示的。

GIS原理实验二实验报告

GIS原理实验二实验报告

GIS原理实验二实验报告1、阐述基本原理和概念(要素类、要素数据集)答:要素类(feature class):在ArcGIS中是指具有相同的几何特征的要素集合,比如点的集合,表现为shapefile或者是Geodatabase中的feature class。

要素数据集(feature dataset):在ArcGIS中表现为geodatabase中的feature dataset,在一个数据集中所有的feature class都具有相同的坐标系统,一般也是在相同的区域。

Geodatabse 空间数据库模型的特点。

答:空间参考Geodatabase 在要素类和数据集中对空间参考信息进行了完整的定义。

表定义Geodatabase 空间几何数据与属性数据保存在同一个表(要素类)中。

拓扑规则Geodatabase 的拓扑关系管理机制在以下几个方面具有明显的优势:(1)用户可自行定义哪些要素类将受拓扑关系规则约束;(2)多个点、线、面要素类(层)可以同时受同一组拓扑关系规则约束;(3)提供了大量的拓扑关系规则;(4)用户为自己的数据可以自行指定必要的拓扑关系规则;(5)拓扑关系及规则是在符合工业标准的DBMS(数据管理系统)中进行管理,可支持多用户并发处理;(6)用户可以局部建立或检查拓扑关系,以提高生产效率。

3、1:M 空间查询的实现原理及应用实例。

答:(1)选择已经建立的地理数据库-Yunnan.mdb,点击右键,在出现的菜单中选择-(2)按照上图显示输入名称,选择公交站点和公交路线,然后下一步(3)当进行到上图时,选择1—M,即一对多。

接着点击下一步。

(4)当进行到如上图时,在两处选择公交站点编号(5)点击“完成”,则完成公交站点到公交路线1—M的关系(6)最后得到如下图所示,可以对1—M关系进行查询4、比较连接(Join)和关联(Link)关系的区别和应用。

(1)区别:连接:连接可以添加额外的属性数据到当前图层,也可以使用这些额外的属性数据进行标注。

GIS实验操作步骤2

应用:地理关系矢量数据模型本章应用部分包括6个习作。

习作1将练习如何将Coverage转换成Shapefile,并可以查看Coverage以及Shapefile的数据结构。

习作2中将会使用文件Geodatabase的基本要素。

习作3教你如何通过将一个多边形Shapefile图层转换成个人Geodatabase要素类来更新面积和周长。

在习作4中,你将看到带m值的聚合线构成的路径。

习作5将查看属于水文地理Coverage的分区和路径亚类。

习作6将练习如何在ArcCatalog和ArcMap中查看TIN。

习作1 查看Coverage和Shapefile的数据文件结构所需数据:land,一个coverage。

习作1中,你可以先在ArcCatalog中查看coverage有关的数据层(要素类),并使用Windows浏览器查看它们的数据结构。

然后将coverage转换成shapefile,并检查shapefile 的数据结构。

1.启动ArcCatalog,连接到第3章数据库。

点击加号,在目录树中展开land coverage。

该coverage包括四个要素类:arc,label,polygon和tic。

在Preview栏中,可以高亮选择目标树中的某一要素类,从而对其进行预览。

Arc可显示线(弧段);label显示多边形的标志点;polygon显示多边形;tic显示land的控制点。

注意这四种类别符号与要素类型相对应。

2.右击目录树中的land,选择Properties,出现Coverage要素类属性对话框。

该对话框包括四个栏标:General、Projection、Tics and Extent和Tolerances。

General栏显示多边形要素类中的拓扑关系,Projection栏显示坐标系统未知,Tics and Extent栏显示该coverage的控制点以及该coverage的区域范围,Tolerances显示建立拓扑和编辑时的各种容限值。

GIS实验二

实验二:数据采集与处理一、实验目的了解数字化仪数据采集的基本方法,掌握对扫描地图进行采集、数字化地图的修改、地图拼接、拓扑关系建立的操作方法,并且在实验中进一步的了解和学习Arcgis软件。

二、实验内容运用ARCGIS9.3软件对地图进行数字化修改、地图拼接、拓扑关系的建立。

三、实验原理在Arcgis9.3的环境下,对图像进行拼接、数字化等一系列操作,并且利用该软件对河流、公路等线状地物进行拼接,使其连接起来,以及对一副图像建立拓扑关系,对图像的连接处进行检测,使图像更加可信。

四、实验过程1 将四川省、云南省、贵州省地图进行拼接为西南三省边界。

运行Arcmap,然后点击,加载云南、四川、贵州边界,结果如下所示:然后点击tools,打开Editor toolbar:然后点击Editor|start Editing,此时进入编辑状态;点击,选中地图然后点击Edtor|union,将不同图层的三省合并一起:这样就完成了将四川省、云南省、贵州省地图进行拼接为西南三省边界的任务。

2 将四川省、云南省、贵州省公路进行拼接继续点击加载四川公路、云南公路、贵州公路到窗口中,结果如下:点击Edtor|start Editing开始编辑,然后选中整个图像,点击Editor|Union 进行拼接,结果如下:这样就完成了对四川省、云南省、贵州省公路的拼接。

3拓扑规则检查首先利用中国1:400万的数据裁剪出了一幅内江市、宜宾、仁寿的图:然后点击Arcgis打开ArcCatalog—ArcInfo得到对话框在Data文件夹上右键单击,然后New| New Personal Geodatabase建立一个数据库,并命名为拓扑检查,然后在该数据库上右键单击,依次New|Fearure Dataset命名为拓扑,点击下一步,然后选择Import,添加文件中国地周界_clip1,然后点击下一步,点击下一步,最后点击Finish,完成了建立。

gis数据入库、采集、编辑与变换的实验报告

gis数据入库、采集、编辑与变换的实验报告GIS数据入库、采集、编辑与变换的实验报告本次实验旨在探讨GIS数据入库、采集、编辑与变换的方法和步骤。

GIS 数据是地理信息系统中的数据,包括矢量数据和栅格数据。

矢量数据由点、线、面等要素组成,栅格数据由像元组成。

本实验将重点介绍矢量数据的处理方法。

一、数据入库数据入库是将外部数据导入到GIS系统中的过程。

在本实验中,我们将使用ArcGIS软件进行数据的入库操作。

具体步骤如下:1. 打开ArcMap软件,新建一个地图文档。

2. 在ArcCatalog中创建一个新的文件地理数据库,并将其添加到地图文档中。

3. 在文件地理数据库中创建一个新的要素数据集,设置好坐标系。

4. 将外部的矢量数据文件导入到要素数据集中。

二、数据采集数据采集是指通过现场测量等方式获得新数据并添加到GIS系统中的过程。

本实验将以采集实验为例,使用GPS设备在校园内进行采集工作。

步骤如下:1. 准备GPS设备,确保其能正常工作并能够获取经纬度信息。

2. 在校园内选择几个地点,如教学楼、运动场等,使用GPS设备记录相应地点的经纬度信息。

3. 将GPS设备连接到计算机上,导出采集到的数据。

4. 将采集到的经纬度数据转换为点要素,并将其添加到刚刚创建的要素数据集中。

三、数据编辑数据编辑是指对已有的数据进行修改、删除、添加等操作的过程。

在本实验中,我们将对采集到的数据进行编辑。

具体步骤如下:1. 选择需要编辑的图层,使用编辑工具栏中的编辑工具对要素进行编辑。

2. 可以通过修改要素的属性值、删除不需要的要素、添加新的要素等方式进行编辑。

3. 完成编辑后,保存修改,并关闭编辑状态。

四、数据变换数据变换是指将不同坐标系、投影等的数据进行转换的过程。

在本实验中,我们将对已有的数据进行坐标转换。

具体步骤如下:1. 打开ArcToolbox,选择"数据管理工具",找到"投影"工具集下的"批量投影"工具。

Arcgis试验二空间大数据库管理系统及属性编辑

实验二、空间数据库管理及属性编辑1.利用ArcCatalog 管理地理空间数据库,理解Personal Geodatabse 空间数据库模型的有关概念。

2.掌握在ArcMap 中编辑属性数据的基本操作。

3.掌握根据GPS 数据文件生成矢量图层的方法和过程。

4.理解图层属性表间的连接(Join) 或关联(Link) 关系。

预备知识:ArcCatalog 用于组织和管理所有GIS 数据。

它包含一组工具用于浏览和查找地理数据、记录和浏览元数据、快速显示数据集及为地理数据定义数据结构。

ArcCatalog 应用模块帮助你组织和管理你所有的GIS 信息,比如地图,数据集,模型,元数据,服务等。

它包括了下面的工具:浏览和查找地理信息。

记录、查看和管理元数据。

创建、编辑图层和数据库导入和导出geodatabase 结构和设计。

在局域网和广域网上搜索和查找的GIS 数据。

管理ArcGIS Server。

ArcGIS 具有表达要素、栅格等空间信息的高级地理数据模型,ArcGIS 支持基于文件和DBMS(数据库管理系统)的两种数据模型。

基于文件的数据模型包括Coverage、Shape 文件、Grids、影像、不规则三角网(TIN)等GIS数据集。

Geodatabase 数据模型实现矢量数据和栅格数据的一体化存储,有两种格式,一种是基于Access 文件的格式-称为Personal Geodatabase,另一种是基于Oracle 或SQL Server 等RDBMS 关系数据库管理系统的数据模型。

GeoDatabase 是geographic database 的简写,Geodatabase 是一种采用标准关系数据库技术来表现地理信息的数据模型。

Geodatabase 是ArcGIS软件中最主要的数据库模型。

Geodatabase 支持在标准的数据库管理系统( DBMS)表中存储和管理地理信息。

在Geodatabase 数据库模型中,可以将图形数据和属性数据同时存储在一个数据表中,每一个图层对应这样一个数据表。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Zoom In Zoom Out Pan Full Extent
ID_MAP_ZOOMIN ID_MAP_ZOOMOUT ID_MAP_PAN “放大 \nZoom In” “缩小 \nZoom Out”. “漫游 \nPan”
ID_MAP_FULLEXTENT “全幅显示 \nFull Extent”

CMoRectangle相关属性:

11
补充2:设置地图背景色
void CEasyMapView::OnInitialUpdate() { CFormView::OnInitialUpdate(); GetParentFrame()->RecalcLayout(); ResizeParentToFit(); COLORREF m_BackColor= RGB(255,255,0); m_map.SetBackColor(m_BackColor) ; } 练习:改变地图的背景色
22
实现消息映射函数功能
1:在.h头文件中改变OnMapTool的参数为UINT nID,用于返回当前工具ID
void CEasyMapView::OnMapTool(UINT nID)
2:在.Cpp文件中改变OnMapTool的参数为UINT nID,同时也增加相应代码, 完成函数 OnMapTool 和 OnUpdateMapTool 功能: void CEasyMapView::OnMapTool(UINT nID) { m_curTool = nID; } void CEasyMapView::OnUpdateMapTool(CCmdUI* pCmdUI) { pCmdUI->SetCheck(pCmdUI->m_nID == m_curTool); }
CEasyMapView::CEasyMapView() : CFormView(CEasyMapView::IDD) {
CEasyMapView::CEasyMapView() : CFormView(CEasyMapView::IDD), m_curTool(ID_MAP_ZOOMIN) {
19
void CEasyMapView::OnMapFullExtent() { CMoRectangle r(m_map.GetFullExtent()); m_map.SetExtent(r); }
27
map控件属性:FullExtent和Extent
FullExtent property is the full extent of the map; 整幅地图的坐标范围 the Extent property keeps track of the current visible extent of the map. 当前地图的坐标范围 Setting the visible extent to the full extent results in the whole map being shown.
实验2: MO 空间数据操作
漫游、缩放、全幅显示 使用工具条操纵地图 使用legend控件操作图层
1
增加漫游、缩放功能
2
响应 MouseDown 消息


地图的缩放一般是通过鼠标进行的,缩放是在 mouse事件中进行。 缩小:按shift+鼠标键单击, 放大:拖放窗口 利用 ClassWiazrd 工具添加消息处理函数
12
运用工具条
13
利用工具条提供缩放和移动的功能 在Resources中 双击IDR_MAINFRAME
程序不需要这些按钮,将其删除(用鼠标拖走)
14
修改工具栏的图标的方法

File->Open->Image Files 在ResourceView中选择Import或Insert
15
按图依次添加按钮,并设置ID和属性值
6
Map Control说明
分类 消息(15) 所含内容
方法(24)
属性设 置函数 (40)
7
MO对象分类
8
添加漫游
void CEasyMapView::OnMouseDownMap1(short button, short Shift, long x, long y) { if (Button == 1) { if (Shift) // shift-left click: zoom out { CMoRectangle r(m_map.GetExtent()); r.ScaleRectangle(1.5); m_map.SetExtent(r); } else // left click: zoom in { CMoRectangle r(m_map.TrackRectangle()); if (LPDISPATCH(r)) m_map.SetExtent(r); } } else // right click: pan m_map.Pan(); }
23
Change the MouseDown event
重写OnMouseDownMap1函数中的代码
void CEasyMapView::OnMouseDownMap1(short Button, short Shift, long x, long y) { switch (m_curTool) { case ID_MAP_ZOOMIN: { CMoRectangle r(m_map.TrackRectangle()); if (LPDISPATCH(r)) m_map.SetExtent(r); break; }
5
函数参数说明
void OnMouseDownMap1(short Button, short Shift, long X, long Y) { //Button =1 左键,2右键 3中间键 //Shift = 1 Shift键 2 Ctrl键 3 Alt //X,Y为设备坐标 } 类似:void OnMouseUpMap1(short Button, short Shift, long X, long Y)
16
前三个按钮为Tool型按钮组,一次激活一个 为 CEasyMapView添加
private 型成员变量 m_curTool. type:UINT name:m_curTool
17
18
2. 在 CEasyMapView 构造函数中将m_curTool初始化为 ID_MAP_ZOOMIN 原函数为:Fra bibliotek说明:
修改前: ON_COMMAND(ID_MAP_ZOOMIN, OnMapTool) ON_UPDATE_COMMAND_UI(ID_MAP_ZOOMIN, OnUpdateMapTool) 修改后: ON_COMMAND_RANGE(ID_MAP_ZOOMIN, ID_MAP_PAN, OnMapTool) ON_UPDATE_COMMAND_UI_RANGE(ID_MAP_Z OOMIN, ID_MAP_PAN, OnUpdateMapTool)
24
case ID_MAP_ZOOMOUT: { CMoRectangle r(m_map.GetExtent()); r.ScaleRectangle(1.5); m_map.SetExtent(r); break; } case ID_MAP_PAN: { } case ID_MAP_QUERY: break; case ID_MAP_ADDEVENT: }//end switch }
25
m_map.Pan(); break;
break;
考虑了定点放大的拉框放大
在OnMapMouseDown中
// 通过拉框选择放大区域 case ID_MAP_ZOOMIN: { CMoRectangle rect(m_map.TrackRectangle()); if ( LPDISPATCH(rect) && rect.GetHeight()!=0 && rect.GetWidth()!=0 ) m_map.SetExtent(rect); else{ CMoPoint m_CenterPoint; // 定点放大 m_CenterPoint = m_map.ToMapPoint(float(X), float(Y)); CMoRectangle rect_Extent(m_map.GetExtent()); rect_Extent.ScaleRectangle(0.5); m_map.SetExtent(rect_Extent); m_map.CenterAt(m_CenterPoint.GetX(),m_CenterPoint.GetY()); } break; }
3
操作对象:地图控件
消息:单击鼠标左键
4
添加代码
void CEasyMapView::OnMouseDownMap1(short button, short Shift, long x, long y) { if (Shift) // shift+left click: 缩小 { CMoRectangle r(m_map.GetExtent()); r.ScaleRectangle(1.5); //缩小倍数:1.5 m_map.SetExtent(r); } else // left click: 放大(按所画矩形大小) { CMoRectangle r(m_map.TrackRectangle()); if (LPDISPATCH(r)) m_map.SetExtent(r); } }
按住鼠标右键并拖动改变地图的位置,即漫游
9
补充1:定点放大
// 通过拉框选择放大区域 CMoRectangle rect(m_map.TrackRectangle()); if ( LPDISPATCH(rect) && rect.GetHeight()!=0 && rect.GetWidth()!=0 ) m_map.SetExtent(rect); else { CMoPoint m_CenterPoint; // 定点放大 m_CenterPoint = m_map.ToMapPoint(float(X),float(Y)); CMoRectangle rect_Extent(m_map.GetExtent()); rect_Extent.ScaleRectangle(0.5); m_map.SetExtent(rect_Extent); m_map.CenterAt(m_CenterPoint.GetX(),m_CenterPoint.GetY()); }
相关文档
最新文档