地理信息系统数据可视化处理
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
地理信息系统数据可视化处理
作者:吴曙光
来源:《价值工程》2010年第19期
摘要: 利用MapInfo构建地图空间数据,将不同的空间数据图层通过Geoset Manager整合集成。在VC++6.0编程环境下通过对MapX地图控件的二次开发实现智能交通电子地图系统。在VC++6.0 环境下实现电子地图中图元与其属性互查的关键代码来体现系统的社会价值。
Abstract: Construction of the spatial data with MapInfo, and spatial data layers will be different by Geoset Manager Integration. The secondary development of MapX map controls with VC++6.0 programming tool to achieve intelligent traffic system. To get the element of GIS Map reflects the social value.
关键词: MapInfo;空间数据;系统;VC++
Key words: MapInfo;spatial data;system;VC++
中图分类号:TP311.13 文献标识码:A文章编号:1006-4311(2010)19-0142-02
0引言
随着社会经济的不断进步,城市建设飞速发展。与日俱增的公路交通系统的复杂性和拥挤程度,使得路径规划系统和地理信息系统显得格外的重要。目前的智能交通是以道路和车辆作为主要的研究对象,以提高道路的通行能力、利用效率与安全行为主要研究目标的新一代交通运输系统,重点是公路交通问题。
智能交通系统基本由四部分组成:管理和控制中心模块、车辆模块、道路和通信模块。车辆模块作为智能交通系统的重要组成部分,其导航技术一直是许多国家研究的重点。车辆定位导航系统的功能模块根据传感器的输出,结合GIS信息,自动地确定车辆的具体位置。本文重点介绍通过VC++6.0对利用工具软件MapInfo Professional 制作的电子地图进行操作设计,实现对GIS数据可视化处理,达到人机界面友好。
1GIS数据处理
1.1 环境配置VC++嵌入MapX进行二次开发可分为以下几个步骤来实现:
①对应用工程的预设置在创建MapX控件之前,必须将MapX.h和MapX.cpp文件加入到工程中。
对于Visual C++6.0编译工具从Project菜单中选择Add To Project -> Files命令,打开InsertFiles into Project对话框,选择MapX.cpp和MapX.h文件加入到工程中[1]。
②对MapX属性的操作对于C++程序来说,每个MapX对象(Objects)都在MapX.h 和MapX.cpp中用一个类来实现,类的名字和MapX对象的名字相同,且已经在CmapX中定义了。
1.2 加载电子地图数据
1.2.1 人机界面上加载电子地图
电子地图数据加载形式[2]:
①GST文件由GeosetManager40.exe程序生成。在程序使用gsT文
件:Map1.Geoset=Filepath+FileName。
GST文件加载后,只是默认将地图数据加载,属性数据另外需要使用单独的命令进行加载,否则对属性数据的操作全部非法。
②使用LayerInfo 对象,这种方式下加载地图数据源的地图集和属性集均可直接使用。
③GST文件+ LayerInfo方式。
人机界面显示加载的电子地图信息,说明VC++ 6.0可以驱动工具软件MapInfo Professional 制作的电子地图数据。
1.2.2 漫游电子地图人机界面上可以通过平移控件拖动地图,达到类似Google地图拖动的功能。实现过程中可以通过使用MapX对象对应的类CMapX中的成员函数
SetCurrentTool(miPanTool).[3]例如:
this->m_ctrlMapX.SetCurrentTool(miPanTool);
1.2.3 放大或缩小电子地图GIS-Driver软件中放大功能的主要用途:用户点击电子地图的某点,MapX则自动以该点为中心并以缺省的放大比例来显示电子地图。而缩小工具功能刚好与之相反,用户点击电子地图的某点,MapX则自动以该点为中心,以缺省的缩小比例来显示电子地图。放大和缩小在程序实现调用方法形式如下:
this- >m_ctrlMapX.SetCurrentTool(miZoomInTool);
this->m_ctrlMapX.SetCurrentTool(miZoomOutTool);
1.2.4 电子地图上的图元选定单击GIS-Driver软件选定图元图标可以选择电子地图上的图元[3]。
this->m_ctrlMapX.SetCurrentTool(miSelectTool);
选择工具的用途为:用户点击地图某点,则自动寻找地图最上面图层中可以选择的图元,并以加亮的形式显示。如果鼠标点击点击处,对应多个图层中的可选图元,则优先选择最上面图层的图元。
1.2.5 半径工具的选择
选取当前参数为:miRadiusSelectTool,即:
this->m_ctrlMapX.SetCurrentTool(miRadiusSelectTool);
使用该选择功能时,用鼠标左键点击地图某点,然后拉动鼠标,则地图上出现以该点为圆心,半径不断改变的圆形。当调整到合适的半径后,放开鼠标左键,MapX自动选择该圆形的可选图元。功能实现标记所选择圆形区域的图元。
1.2.6 添加折线工具
添加折线工具的用法是设置参数为:
miPolygonSelectTool,即:
this->m_ctrlMapX.SetCurrentTool(miPolygonSelectTool);
使用添加线条工具之前,需确保指的入图层,以便创建的线条能插入到该图层中,并且该插入图层是能够编辑。
1.2.7 设置居中工具:
设置居中工具设置参数为:miCenterTool,即:
this->m_ctrlMapX.SetCurrentTool(miCenterTool);
1.2.8 添加标签工具:
添加标签工具使用户能够在鼠标左键点击的位置显示该图元的标签[3]。
要使得标签添加工具,设置参数为miLabelTool,即:
this->m_ctrlMapX.SetCurrentTool( miLabelTool);
2获取图元信息