道路交通GIS管理系统毕业设计.doc_第1页
道路交通GIS管理系统毕业设计.doc_第2页
道路交通GIS管理系统毕业设计.doc_第3页
道路交通GIS管理系统毕业设计.doc_第4页
道路交通GIS管理系统毕业设计.doc_第5页
已阅读5页,还剩34页未读, 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

目录 道路交通GIS管理系统毕业设计目录摘 要IAbstract.II第一章绪论11.1课题背景11.2GIS技术国内外发展现状21.3本章小结5第二章道路交通GIS系统介绍及方案选择62.1 系统简介62.2 GIS设计方案对比62.2.1 方案一:嵌入Google Map Api进行开发62.2.2 方案二:内置地图图片,采用自定义定位算法72.2.3 方案三:利用组件式GIS进行二次开发72.3 最终方案92.4 本章小结10第三章介绍GIS地图显示方法和定位方法123.1 GIS地图显示的原理123.2 GIS地图显示的具体实现133.3 GIS定位的原理163.4 GIS定位和刷新的实现方法163.5 本章小结22第四章GIS管理系统其他功能模块介绍234.1 网络监听模块及车辆调度模块设计234.2 网络文件传送模块设计244.3 中央数据处理模块274.4 本章小结27III第五章系统功能测试285.1 网络数据传送功能测试285.2 GPS/GIS地图定位功能测试295.3 网络文件传送功能测试305.4 本章小结30结束语.31参考文献.32致谢.34IV第一章第一章 绪论1.1 课题背景随着时代的进步和社会的发展,目前公路上行驶的汽车的数量与日俱增,但是与之相应增长的是越来越多的由于交通安全隐患引起的社会问题,比如酒后驾驶和疲劳驾驶导致的交通事故频繁、交通拥堵等。每年由于交通事故而导致的人身伤亡和财产损失不计其数。所以道路交通的安全不仅是与每个交通参与者人身财产安全有着密切的联系,同时也是整个国民经济的发展和社会的进步的重要保障。所以保证道路交通的安全、畅通、有序是所有的交通参与者从切身利益出发对交通部门提出的最根本的要求,也是时代赋予交通管理者的重要使命。如何应用先进的管理方法和管理技术,切实地提高城市道路交通安全管理的水平,减少各种交通事故的发生,使事故对道路交通的通行量的影响最小化,并争取最有效且合理地分配交通流,需要先进的科学技术手段的支持。我国的道路交通管理技术起步较慢,到目前为止发展相对比较落后,缺乏先进的现代化得交通管理控制手段,如交通事故监测、事故预测和快速事故处理的智能化系统。目前,国内大多数的城市的道路交通管理仍然是主要出于人工管理阶段,无法快速和准确的进行交通情况分析,动态交通调度和实时控制等。大量的统计数据还无法在其中发挥其作用。地理信息系统(Geographic Information System 简称GIS)具有能够将属性数据和地理空间数据结合起来进行分析的特点。将它应用与道路交通领域,可以利用它将相应的地形数据、交通设施数据、道路数据、交通事故数据等各种不同的数据结合起来进行分析,并能提供直观的查询统计系统,进行事故预测和分析,通过与互联网相结合还能够提供交通控制指令和实时远程监控等强大的功能。所以,应用GIS系统和互联网络技术开发和实现一套道路交通安全管理系统,为交通指挥部门提供卓有成效的指挥平台是完全有可能而且可行的。我国的GIS相关的产业是在国家信息产业化的带动下发展起来的。GIS在我国的最初的研究工作开始于20世纪80年代初期。它以1980年中国科学院遥感应用研究所成立全国第一个GIS研究室为标志。在国内早期的信息化浪潮中,以地理信息为对象的GIS应用技术一直停留在少数专门的领域中,并没有被市场所认识和接受,应用范围相当的有限。但是进入到21世纪以来,随着GIS信息技术本身的告诉发展和社会信息化的深入,对地理信息技术的需求不断地增大,其中道路交通管理领域的需求尤为明显。虽然需求越来越大,但是由于国内技术起步较慢,发展较慢,现在GIS应用范围还是主要着重在道路信息查询、属性数据和空间数据的管理以及专题地图和报表的输出等领域中。在当前以及接下来较长的一段时间内,我国的GIS技术将会处于市场化告诉扩容的阶段,这主要体现在市场的需求量大,新公司的不断涌现和新产品的不断增加。现阶段,国内的GIS系统的市场具有两个较大的特点:一是目前以及今后较长的一段时间内,政府部门仍然会是GIS市场的一个大热点;政府部门的一系列鼓励发展高新科学技术的政策和GIS系统在相关政府部门的应用都在极大地推动着GIS技术的发展。另外一个是非传统的GIS应用开始渐渐的成为了市场的新增长点,GIS系统的应用将面向更多的新领域。GIS作为一门地理空间信息处理技术,已经渐渐的成为了数字城市和智能交通系统的重要技术支撑。如今,GIS技术在道路交通管理领域中的应用,及GIS与GPS、RS,以及互联网技术的结合已经成为业界的热门话题,这也将为GIS的应用提供更加广阔的应用环境。从GIS技术在目前道路交通管理领域上的应用看,总体来说交通情况分析和实时监控能力不强,还不能够不能高效切实有效地解决道路交通安全问题。其主要的原因在于道路交通设计的因素众多,不仅包括道路交通状况、交通设施设备、还包括了车辆性能、驾驶员的生理和心理状态等。其中道路交通状况和设施设备等属于静态因素,车辆性能以及驾驶员的生理和心理状态属于动态因素,而这两种因素之间的相互作用正是道路交通安全管理系统设计的特定和难点所在。而现行的道路交通管理系统对动态信息数据的采集、分析和处理的能力都较差,无法实现对动态因素进行实时监控和管理,或者甚至是完全忽略这些因素的影响,这都导致了交通管理系统的性能无法满足日新月异的交通发展的要求。同时,与道路交通管理相关的各个功能模块的集成度不高,并没有建立起统一的标准,这都间接地导致了道路交通管理系统的实现难度居高不下。近几年,随着3G网络的快速发展,使得数据的远程无线实时传输成为了可能。基于以上原因,建立一套能够实现强分析能力和实时远程监控的能力的道路交通GIS管理系统成为了可能,同时也是急切的社会需求。1.2 GIS技术国内外发展现状1963年加拿大测量学家R.FTomlinson首先提出了地理信息系统这一术语,并建成世界上第一个GIS(加拿大地理信息系统CGIS),并用于自然资源的管理和规划1。不久后,美国哈佛大学提出了较完整的系统软件SYMAP。这可算是GIS的起步1。进入20世纪70年代之后,由于信息技术和计算机软硬件技术的高速发展,促使GIS朝着实用方向迅速发展,一些经济发达的国家先后建立了许多专业性的GIS,在自然资源管理和规划方面发挥了重大的作用,如19701976年期间,美国国家地质调查局就建成了50多个信息系统。其他如加拿大、德国、瑞典和日本等国也相继发展了自己的GIS2。现在GIS技术已经不再是门单一的技术,它已经可以展开为许许多多的技术分支,目前,应用较为广泛的GIS技术有以下五个分支:1. 组件式GIS(Components GIS)组件式GIS是一种新的 GIS开发的思想 ,它是将 GIS的各个功能模块分散制作成 Active X控件和Automation,这些标准的 Active X控件和 Automation可以被任何支持它们的开发语言和开发环境来调用 ,以便可以在原有的或新开发出来的的信息系统中加入特定的 GIS功能1。目前在国际上比较流行的组件式GIS软件有ESRI的Map Objects和Map Info公司的 Map X等。目前国内外市场上流行的专用GIS软件有很多,比如作为工作站的版本有ARC/INFO,IntergRaph和Micro Station等;桌面GIS系统有MapInfo,Arcview,Auto Desk及国内的Map GIS,Geo Star等。这些系统的共同特点是它们可以将图形处理 ,空间查询与分析 ,属性管理及其它GIS功能都包含到一个比较庞大的系统中1。对于一些普通用户来讲这可能是比较适宜的 ,但对大多数用户来讲可能会存在如下问题 : 1)对于大多数用户来说 ,他们可能只是需要部分而不是全部 GIS系统的功能,而用户必须为购买整个GIS软件系统而支付较高的费用,例如基于 GPS和 GIS的城市交通管理系统或者用于环境分析的GIS系统 ,可能就不需要很强的图形数据处理功能,而用于城市规划的 GIS系统或者基于宗地的地籍管理系统则要求较强的图形处理功能,如果使用Components GIS进行系统,那么开发用户就将不再需要购买整个 GIS软件系统 ,而只要在GIS Components的基础上进行开发组装即可; 2)由于绝大部分的 GIS软件都需要进行二次开发后才能满足用户的特殊需要 ,而目前的 GIS软件所用的开发工具有许多并非标准开发语言。这对用户的使用提出了较高的要求 ,也对原有系统的改造带来许许多多不便。而Components GIS一般都支持国际标准的开发语言 ,如 Visual Basic, Visual C+,Java等,这对专用系统的开发提供了更加快捷和便利的方法;3)利用Components技术更容易建立 Internet GIS或 Intranet GIS信息系统3。 2. Internet 或 Internet GIS信息高速公路的建立也极大地方便了世界各地的用户间进行信息的交换和信息的查询。由于GIS能够提供丰富的空间查询、空间分析及属性管理的功能,因此,GIS技术也正在成为Internet(国际互联网)或者Intranet(企业局域网)的一个主要的内容。建立Internet GIS的主要目的在于以下几个方面: 1) 实现远距离空间数据共享与信息查询和交换;2) 为公众提供必须的GIS服务;3) 建立大规模甚至超大规模的空间网络信息系统;4) 为其他学科的研究提供一些基础信息的资料4。目前用于Internet GIS系统的开发工具主要有ESRI的Map Objects IMS (Internet Map Server)和Arc View IMS,Map Info公司的Map Xtreme以及网络版的Autodesk等。3. 3D GIS 地球以及地球上的各种物体都是以三维空间的形式存在的 ,因为目前二维 GIS技术或二维半 (平面X,Y坐标加高程 )GIS对于完整的描述地球上的对象是有一定限制的。需要用三维空间来描述的应用领域主要有如下几个方面 :气象学、地质学、采矿学、石油勘探与开发、计算机辅助设计与制造(CAD/CAM)、医学影像和机器人学等。一个三维 GIS空间信息系统应该能够模拟、表示、管理、分析与三维实体相关的状态信息 ,并为用户提供决策支持1。4开放型GIS (Open GIS)目前有一种多用户且跨平台的 Open GIS技术正在被国外的许多研究机构、政府部门和高等院校所研究和开发利用。开放型 GIS的研究和应用使得各政府部门及企业之间不同格式的数据能够实现方便地互访 ,这有利于网络GIS及分布式 GIS空间数据库的建立 ,并且使 GIS的应用领域及其功能大大拓宽5。5虚拟现实技术虚拟现实技术是目前 GIS研究领域的另一重要的研究方向。虚拟现实是对人类真实世界某一部分或某一过程进行的逼真模拟 ,能够给人提供视觉、听觉、触觉、力觉、嗅觉等信息 ,令人完全置身于虚拟世界中 ,却能够体验到与现实系统一致或接近的感觉 ,从而能让人产生一种虽幻犹真的沉浸感1。美国 Multi Gen公司生产的Multi Gen软件已经可以利用地理信息中心的数字地形海拔数据 (DTED)、数字文化特征数据(DFAD)和与之配套的航空或卫星照片 ,快速高效地构造任何地区的地形地貌和文化特征。 我国GIS形容工作开始于20世纪80年代初,以1980年中国科学院遥感应用研究所成立全国第一个GIS研究室为标志6。从20世纪90年代开始,GIS在我国进入快速发展阶段。目前,中国已经基本完成了覆盖全国的1:100万和1:25万基础的地理数据库的建设,即将开始投入建设的有1:5万基础地理数据库和7大流域的1:1万基础地理数据库项目;此外,中国已经完成了1100多个大、中型数据库以及难以计数的各类数字化地理基础图、专题图、城市地籍图等的建设。但是,由于这些数据标准不一致,目前其兼容性较差,利用率也较低,所以必须建立完善的体制才能对这些有形资产进行统一管理6。应该注意,我国现在GIS产业的总体规模仍然比较小,从事GIS的公司,无论从数量还是规模,都无法与一些发达国家的同类公司相比拟。GIS产业仍然面临着数据资源不足、标准不全、专业应用模型缺乏和市场不规范等问题。全面规范市场,推动以市场为主导的GIS技术行业的发展和应用,加快GIS相关标准和规范的制定,并积极参与国际GIS市场的竞争,提升公司的素质和规模,是发展我国GIS产业的重要途径。我国GIS技术的发展虽然较晚,但GIS技术已在许多部门和领域得到应用,并且得到了政府部门的高度重视。从应用方面来看,地理信息系统已经在资源开发、环境保护、城市规划建设、交通、能源、地图测绘、土地管理、农作物调查与结产、林业、房地产开发、自然灾害的监测与评估、金融、保险、石油与天然气、军事、犯罪分析、运输与导航、110报警公共汽车调度等方面得到了具体应用2。近年来我国的GIS软件及产品也取得了长足的进步,国产GIS软件已经在国民经济建设中发挥重要的作用,例如,国产的软件MapGIS在我国“神舟号”发射中起了重要的作用;国产的软件GeoSTAR已经成功地用于七大江河流域DEM数据生产7。代表GIS发展新方向的InternetGIS国产软件已经逐步成熟;越来越多的GIS软件产品采用组件化GIS空间和属性数据一体化存储、多用户协同工作等前沿技术,使得技术创新和市场开拓实现了良好的互动。已经有一批高等院校设立了一些与GIS有关的专业或学科,还有一批专门从事GIS产业活动的高新技术产业相继成立。此外,国内还成立了“中国GIS协会”和“中国GPS技术应用协会”等。21世纪,GIS应用的技术已经趋成熟,GIS应用的社会背景已经基本形成,无疑,在未来GIS会成为我国IT业中最为活跃的领域之一。1.3 本章小结随着社会的发展和科技的进步,汽车的数量将越来越多,交通拥堵和交通事故等已经成为了不容忽视的社会问题。为了能够缓解甚至解决这些问题,GIS应用技术已经渐渐的在发展起来。现在GIS被广泛应用的社会背景已经基本形成了,但是还是存在有各种缺陷,所以设计一套功能相对完备的道路交通GIS管理系统已经成为一种必要。37第二章第二章 道路交通GIS系统介绍及方案选择2.1 系统简介地理信息系统(Geographic Information System 简称GIS)是一项以计算机技术为基础的新兴技术,围绕着这项技术的研究、开发和应用已经形成了一门交叉性、边缘性的学科,是对空间数据进行管理和研究的技术系统,在计算机软硬件支持下,它可以对空间数据按地理坐标或空间位置进行各种处理、对数据进行有效的管理、研究各种空间实体之间的相互关系。通过对多种因素的综合分析,它可以迅速地获取满足应用所需要的信息,并能以地图、图形或数据的形式表示出处理的结果。道路交通GIS管理系统的目的就是对道路交通的安全管理、事故预测和事故检测的实现提供一个方便快捷的方案。系统的核心是实现对有异常情况的车辆实现精确定位,关于这点,初步的找出有以下三种设计方案:方案一,利用嵌入Google Map Api,实现地图定位的输出;方案二,内置地图图片,利用自定义的定位算法,实现地图定位输出;方案三,利用组件式GIS进行二次开发。2.2 GIS设计方案对比2.2.1 方案一:嵌入Google Map Api进行开发Google Map API是谷歌提供的一个基于Javascript技术的应用程序的接口,它对开发环境的要求并不高,只需要一个能够支持Google Map Api的浏览器即可(几乎目前所有主流的浏览器都支持)。他提供给所有对Google Map有兴趣的用户一个设计自己地图网络或地图应用程序的服务,并且可以免费使用。而且随着Google Map API的不断升级,完成的功能也越来越多。Google Map API最新的版本是第三版,新版本的主要的特点是提高了执行的速度。相对于第二版,新版本的API的主要功能有:1) 不再需要API keys,这样用户可以将代码集成进入RSS阅读器,并且不会有任何的错误出现;2) 基于MVC(Model-View-Controller)的框架,这样可以减少Javascript的下载量,并且简单医用;3) 能够自动开启默认的UI界面,并且提供默认的UI控件和方法供用户使用,这样使得用户开发的界面能够自动更新为最新的格式,当然用户也可以禁止该项功能等8。虽然Google Map API有许多的优点,但是他的地图并不是内置的,而是需要通过网络不断更新和下载的,而且地图数据较为庞大,当网络状态不佳的时候会出现地图跟性能速度慢,从而可能导致无法快速精确定位。固该种方案不予以考虑。2.2.2 方案二:内置地图图片,采用自定义定位算法将地图以图片的形式内置与计算机中,能够对地图进行本地化,只需要在要显示顶图的时候将图片显示出来即可。一般的地图图片的有bmp、jpg等多种不同的格式,都可以很方便的被应用程序所使用,但是一般这种数据格式的地图都不带有GPS数据在其中,所以,我们必须为其设计一定的定位算法:在地图上随机选取几个点,然后利用GPS接收机等设备去实地地测试这几个点的真实GPS数据,然后利用这些数据和地图上这几个像素点的相对偏移量综合起来,能够计算出图片上每个特定的像素点所对应的GPS数据,制成一个图片与GPS数据的映射表,这样,就能够实现定位的功能,并且由于地图的本地化,所以位置变换和显示的速度不受当前网络状态的影响,是一种不错的方案。虽然该方案有它一定的优势,但是它的劣势也是显而易见的。一方面,图片格式的地图数据资源本来就相当的少,而且如果所要使用的地图范围越大,图片也就越大,那么GPS数据与地图的映射表的制作也就越发困难,而且成本也越高,准确度也相应的越低。以上种种的限制导致了以这种方案进行设计的难度大大的提高,并且适合度也大大的降低。2.2.3 方案三:利用组件式GIS进行二次开发组件式软件技术是当今软件技术的潮流之一,它的出现大大的改变了以往封闭、复杂、难以维护的软件开发模式。ComGIS(即组件式GIS)便是顺应了这一潮流而出现的新一代的地理信息管理系统,是面向对象技术和组件技术在GIS领域的软件开发中的应用。ComGIS的基本的思想是把GIS的功能有效地划分为多个模块,每个模块均以控件的形式存在,每个控件完成不同的功能。在各个GIS的控件之间,以及GIS控件和其他的非GIS控件之间,可以方便的地通过各种可视化的软件开发工具集成在一起,以形成最终的GIS应用。各个控件如果一堆各种各样的积木,可以分别实现完全不同的功能(它包括GIS功能和非GIS功能),再根据实际情况把实现各种所需要的功能的“积木”搭建起来,就能够构成地理信息管理系统的基础平台和应用系统。ComGIS还有以下几个重要的优势:1) 与语言无关性。首先,组件式GIS不需要专门的二次开发语言,只要按照一定的标准(如Microsoft的ActiveX 控件标准)开发接口,提供一套实现GIS基本功能的函数构件。换一句话说,就是GIS的开发者,不需要掌握专门的GIS开发语言,只需要熟悉基于Windows平台的通用的集成开发语言和开发环境(如 Visual Basic, Visual C+,Visual FoxPorc, Borland C+等),及组件式GIS各个构件的方法、事件和属性即可,就能够完成应用系统的开发和集成。2) 二次开发能力强。一个完全组件化了的组件式GIS,它的二次开发能力是非常强大的。因为它将GIS的每个功能模块都组件化了,并且它的功能既是提供给二次开发用户使用,同时也是组件GIS内部调用的接口。为了实现一个完整的GIS功能,各个功能模块的组件及接口必须是定义得很完备和详细。3) 开放性和扩展性。组件GIS是不依赖于任何一种开发语言而存在的,可以嵌入到通用的开发环境中实现GIS功能。专业模型则不仅可以使用这些通用的开发环境来实现,也可以通过插入专业模型的分析控件,这样能有效地克服了传统的GIS软件在系统集成上面存在的低效、“有缝”等缺陷,从而实现高效、无缝的系统集成。4) 大众化。由于组件式技术已经渐渐的成为了行业的标准,即“组件”标准化,使得用户可以像使用其他的ActiveX控件一样来使用组件GIS的控件,这样,非专业的普通用户也能够集成和开发所需要的专用GIS应用系统,使得GIS从专家们的实验室开始走向社会,这样有力地促进了GIS的普及和大众化的进程。5) 低成本。由于组件式GIS本身可以分解为若干个完全不同的功能的组件,使得用户可以根据实际需要选择必要的组件,同时,由于组件GIS只是提供GIS的通用的功能组件,其他非GIS的专业功能可以使用专业厂商提供的其他专门的功能控件,这样,就可以大大的减轻用户的经济负担,从而降低GIS软件的开发成本。6) 分布式多数据源的集成。组件化使得GIS在应用中可以轻易地实现分布式多数据源的集成9。7) 互操作性。互操作性的GIS还正处在与研究的阶段,但是组件化GIS是互操作GIS的基础9。只有组件化的GIS的功能模块化、标准化,各个GIS厂商按照标准以组件的方式来实现各个功能模块,不同厂商的功能模块相互之间才可以系统工作和达到互操作的目的,从而使GIS的应用能够达到一个更加方便和大众化的水平。8) 能够操纵集成了GPS信息的地图图层。大多数的组件式GIS均提供出了对加入了GPS数据信息的地图图层的处理,使得对地图的操作和车辆的定位变得方便和精确,并且能够实现地图的放大,缩小,漫游等等常用的功能。而且支持地图数据本地化。2.3 最终方案通过对比上面的三种解决方案可以看出,采用组件式GIS进行系统的二次开发,其支持本地化地图和对地图的操作功能的强大,克服了采用Google Map API时所受的当前网络状态的影响,也不用设计出非常复杂的映射表,并且,地图数据的来源非常广泛,目前,我国有许多专门制作可以给组件式GIS应用的地图数据,加个低廉,数据详细,基本上能遍及全国的各个街道。目前,有关GIS开发都是使用专业的GIS 控件进行开发的。但是伴随着软件重用化的发展趋势,基本上主流GIS 软件公司都提供了组件方式的GIS 产品,用户可以利用这些组件,遵循相关的开发规范,来实现强大的GIS 功能。同时,由于这些组件式控件可以无缝地嵌入各类编程语言和开发环境之中,开发者可以使用自己熟悉的程序语言和开发工具进行开发。这样既沿用了专业GIS 产品的强大的制图功能和图层处理功能,又可以按照用户的实际需求,灵活地实现各种管理功能,如此完全可以达到大多数用户的要求。由于以上的优点,本系统决定采用MapX 控件实现数字地图部分的功能。在本次设计中,采用的方案是:在Windows XP操作系统下的Visual Studio 2008 开发环境中,嵌入组件式GIS控件,并采用Visual C+开发语言进行开发,利用MFC控件库设计相应的操作界面。组件式GIS采用的MapInfo公司的MapInfo MapX v5.0。MapX 控件是MapInfo 公司推出的基于ActiveX的可编程控件,基于32 位系统平台,采用Inproc 直接调用方式,所以无论是管理大数据的能力还是处理速度方面均不比传统GIS 软件逊色10本系统在Visual Studio 2008环境中进行开发,在Visual Studio 2008 中使用这类组件的时侯需要通过标准的自动化对象接口IDispatch对其成员函数进行调用,以此即可达到控制与操作电子航图的目的。下面将对本次设计的方案进行一些简单的初步介绍,并在后面的章节中将会进行详细的介绍:本次设计的道路交通GIS管理系统从软件功能上来看,能够分成以下几个模块:网络监听模块、车辆调度模块、中央数据处理模块、操作界面、GPS/GIS地图定位模块、网络文件传输模块。下面是系统的框架图: 图 2.3.1 系统框架图1) GPS/GIS地图定位模块:负责将车载终端传递来的GPS数据转换通过一定算法转换为GIS能够使用的数据,并且利用GIS组件实现地图图层的控制,显示对应车辆的当前位置,并能实现实时刷新车辆的位置,该模块是本次设计的核心功能模块,在后面的章节中将会有重点的介绍。2) 网络监听模块:负责接收车载终端通过3G网络传递过来的信息,并将信息投递到中央数据处理模块。该信息的类型可能为报警信息、请求语音通话信息、以及注册信息。3) 车辆调度模块:负责将中央数据处理模块传递过来的用户从操作界面输入的调度命令通过3G网络发送到特定的车载终端。4) 网络文件传输模块:负责接收车载终端的现场图片或现场视频,并经由中央数据处理模块使其能在显示器上显示出来。5) 中央数据处理模块:负责整个系统各个模块的同步和数据的处理和传递。6) 操作界面:为用户提供直观的UI界面,并且能够显示GIS地图。2.4 本章小结本章介绍了设计GIS管理系统是可能采用的各种方案,并且介绍了各种方案的优势与劣势所在,最后根据实际设计的需要并且综合了各个方面的因素,做出了最后方案的选择:采用组件式GIS技术进行系统的设计。并且简略地介绍了整个系统所需要设计的各个模块的功能。第三章第三章 介绍GIS地图显示方法和定位方法3.1 GIS地图显示的原理 一般的矢量电子地图文件中的各个地点和建筑物的所在位置及其外形特征都是以其图元的关键点的经纬度坐标形式给出的,为了能够将电子地图文件中的数据显示在计算机的屏幕上,首先需要按照一定的索引算法来建立起一棵查找索引树(如R 树或四叉树),然后再按照所需要访问的地理位置范围查找索引树,读出其中包含的经纬度的信息,再以一定的坐标转换算法(如高斯克吕格算法等),将地理经纬度坐标成功转换为高斯平面直角坐标,然后在确定了屏幕坐标原点后,再按比例将图元的平面直角坐标投影到显示屏幕上,从而完成了电子地图的显示。空间数据结构是GIS 系统的基石。GIS 系统通过这些地理空间拓扑结构来建立地理图形的空间数据模型,并且定义各个空间数据之间的关系,从而实现地理图形和数据库的结合。如图3.1.1所示,地理信息系统是采用分层管理的方法来管理地图数据,同一类型的空间对象存放在同一个图层中。图3.1.1 MapX的空间数据结构图MapX是按图层来组织地图的,每次在创建一个图层时,都必须要为该图层建立一张表,与该图层所对应的表中不仅存储了该图层中对象的地理信息,还存储了许多和对象相关联的其他的属性信息;通常在MapX中使用的图层就都是矢量图层,从而可以进行无限制的缩放而不丢失该图层的任何地理信息;MapX控件采用的是面向对象的方法来处理地理信息系统,且对地理数据的操作实际上是对各类对象的操作;MapX基本的组成单元是Object(单个对象)和Collection(集合),其中集合包括了对象,是多个对象的一个组合,每种对象和集合只能够处理地图的某一方面的功能11。 MapX控件主要包括有以下的对象:1) Map 。 Map是MapX的顶层的属性,每一个Map对象主要包括有Datasets、Layers、Annotations这三个对象的集合。Map对象包括了一些主要的属性,如Zoom 用来设置地图的放大级别,Ratation用来控制地图的旋转的角度,CenterX和CenterY用来设置地图的显示窗口的中心坐标位置。2) Layers 。 在MapX控件中,地理信息是按照图层的集合(Layers Collection)来表示的,每张单独的地图都是被表示成单独的图层的,所有的图层都存储在Layers集合当中。Layer对象由Features对象所组成的,Features对象又是由Feature对象所组成的,Feature对应于地图中的点、线、面以及其他符号等的地图实体。3) GeoSet 。GeoSet是在GeoManager中建立起来的GST文件,是图层及其设置的集合体,用于控制程序中所显示的地图。4) DataSets 。在MapX控件中,属性数据的操作是主要通过数据的绑定来实现的。DataSets是用于实现地图与数据的绑定的工具。数据绑定的数据源既可以是DAO、ODBC数据源、ADO、RDO、MapInfo Table文件,也可以是一个规定了格式的文本文件。要绑定一个数据源,首先必须要制定所绑定的图层,然后再制定与图层中的地图对象相匹配的关键字段。5) Annotations 。Annotations集合为用户提供了操纵地图中文字和符号的简单的方法。Annotations位于所有图层的最上方,并且不与任何数据有连接。3.2 GIS地图显示的具体实现 由于MapX控件所操纵的对象是图层,而一个完整的地图是有很多的图层所构成的,比如说一级道路图层、二级道路图层、湖泊图层、铁路图层、建筑物图层等。地图范围越大,数据越详细,所设计到的地图图层数量就越大,动辄几十到上百个图层。由于地图图层的增多,使得对图层的操作也显得越难且越不方便。而且由于人为的设置地图的放大和缩小,不仅仅是所有的地图图层的比例大小随着产生大小的变化,所显示的图层的数量也必须随着变化,当地图放大时,所显示的图层数量会越多,当地图放大到最大时,所有的地图图层都将会显示到荧幕上;当地图缩小时,所显示的图层也会相应的缩小,一些标识级别比较低的图层必须在显示的图层中去除。由于地图图层的数据量的大,使得系统对图层的操作的难度也变得相当大。传统的那种每个图层分别控制的方法在这个系统中已经不再合适,所以寻找一种更加合适、且方便快捷的操作方法已经成为一种必要。MapX控件是一个ActiveX控件,它使用了自动化对象的操作方法,对它的使用需要通过利用标准的自动化对象接口IDispach来实现。它提供了一个SetGeoSet()的操作方法,允许我们对整个地图所有的图层进行智能化的管理。它所操作的对象必须是一个图层的集合,即是一个GeoSet类型的对象。我们可以利用MapInfo工具将所有地图图层结合到一个GeoSet类型的对象中去,那么我们只需要操作这个对象,便能够方便快捷的实现各种操作。一下是对地图图层显示的具体的操作和关键代码:(1) 创建一个MFC对话框工程;(2) 定义所需要的对象;CMapX m_MapX; / 定义一个地图对象CMapXLayer m_MapXLayer; / 定义一个图层CMapXFeature m_MapXFeature; / 定义一个图元对象CMapXFeatureFactory m_MapXFactory; / 定义一个类厂对象CMapXPoint m_MapXPoint; / 定义一个点对象CMapXStyle m_MapXStyle; / 定义一个风格对象(3) 创建一个地图显示图层;CRect GPSclientRC;GetClientRect(&GPSclientRC);GPSclientRC.DeflateRect(5,120,5,2);/ 创建一个地图对象m_MapX.Create(NULL,WS_VISIBLE,GPSclientRC,this,IDC_MAP1);/ 将该地图对象与数据源绑定,并显示m_MapX.SetGeoSet(pathname.c_str();m_MapX.SetTitleText(_T();/ 设置显示地图的长度单位和当前的操作工具m_MapX.SetMapUnit(miUnitKilometer);m_MapX.SetCurrentTool(miArrowTool);m_MapX.SetZoom(0.5);通过上面的程序,基本上就能够实现电子地图的显示。显示效果如下图所示:图3.2.1 GIS地图显示效果图(较小比例)图3.2.2 GIS地图显示效果图(较大比例)3.3 GIS定位的原理学科发展走向综合是一个普遍的趋势, 比如全球定位系统( GPS) 与地理信息系统( GIS) 的集成应用。随着计算机技术的飞速发展, GIS 得到了广泛的重视和应用, GPS 技术也已深入到各行各业,GPS 与GIS 的集成具有广泛的应用需求, 它可以实现GPS 导航信息在地图上的可视化、一体化和集成化, 能够在地图上实时动态地跟踪目标和显示地理方位12。GPS 导航信息在地图上的可视化给用户的决策带来极大的方便, 尤其是会对高技术条件下的道路交通管理具有重要的应用价值。GIS所操纵的地图对象是专用的地图数据,他不仅存储了直观的地理信息(如道路、湖泊、建筑物、铁路等)外,还通过一定的算法融合了所有地理位置的GPS数据到地图中,在这个基础上,我们只需要知道对应的车辆当前所在的地理位置的坐标,我们就能通过对地图对象进行一定的操作从而实现定位的功能。当需要对车辆位置进行定位的时候,车载终端会定时将GPS接收机接收到的车辆当前所在位置的GPS信息通过3G网络传递到GIS管理系统。GIS管理系统会为对应的车辆创建一个新的图层,并置于地图图层的最顶层,图层上显示着一个车辆的小图标。在接收到车载终端发送来的GPS位置信息的时候,首先将数据投递进一个数据转换器中,利用一定的算法将车载终端发来的GPS信息转换为合适GIS系统使用的GPS数据,然后将转换后的数据投递到图层重绘器中,该图层重绘器会根据投递进来的GPS数据,对所创建的车辆图层进行重绘,使得车辆的图标能够实时更新到相应的坐标上,并且将车辆的图标置于地图显示界面的最中间位置,让人感觉车辆就在地图上移动,从而实现对车载终端的实时动态定位。当要停止对车辆进行定位时,GIS系统会自动回收所创建的车辆的图层,即把车辆图标从地图上擦除。3.4 GIS定位和刷新的实现方法我们可以通过操作一个地图图层集合来控制地图的显示效果,如放大、缩小、漫游等。但是为了实现GIS定位的功能,我们必须将收到的GPS信息转换为地图上的某个特定点,并采用一定的标示符标识出来以表示车辆的位置,为了使得整个效果更加的形象生动,标识小车位置的图标用了一个小车子的ico图标。为了实现上面效果,本个设计将面临两个设计难题:1)GPS信息的转换和地图的定位。通常GPS信息采集设备所采集到的数据的格式并不能直接应用于MapX控件的接口中,而且MapX并没有直接提供定位功能的接口函数,所以进行设计数据格式转换算法和地图定位算法是必须要克服的困难。2)车辆图标在地图图层上的显示。由于MapX所操作的对象只是图层,并不可能直接对ico格式或者是其他任何格式的图标进行操作,所以设计一个可以在图层上显示图标的合适的算法是另一个需要攻克的课题。为了能够实现GIS的地图定位、图标显示和车辆移动刷新等功能,本次设计需要完成四个功能模块的设计:1)GPS数据转换器。这个模块用于将GPS信息采集设备所采集的数据转换为能够为MapX控件所使用的数据格式。2)图层创建器。由于MapX只能操作图层对象,所以要显示车辆图标,就必须将车辆图标利用一定的算法嵌入到图层中,然后再将该图标图层以透明化的方式显示在地图图层的顶端,这样就能成功实现图标的显示。并且该图层创建器还实现了一次定位的功能,MapX虽然没有提供直接定位的接口,但是它提供了两个设置中心点的接口函数SetCenterX()和SetCenterY(),他们分别接受经度和纬度作为参数,利用这两个接口函数,本次设计采用了下面的方法实现定位:将出送过来的经过转换过的GPS信息的经纬度分开 ,并且分别作为参数传递到SetCenterX()和SetCenterY()中去,能够将该点设置为地图显示窗口的中心点位置,然后再利用一定的算法将车辆图标显示到该点处,这样子便巧妙的实现了定位的功能,且能够保证车辆一直出现在地图窗口的中间位置,不会偏出显示窗口。3)图层重绘器。为了实现车辆能够动态地再地图上“行驶”,我们必须对图标所在的图层进行重绘,即是将原来存在的车辆图标从图层中去除,然后再新的GPS坐标点的位置处将车辆图标显示出来,这样子便能够实现车辆在地图上的动态“行驶”。4)图层回收器。当不进行车辆的定位时,必须要将车辆图层在地图显示窗口中禁止显示,所以需要对该图层进行回收,等到下次需要进行定位功能是在显示出来,实现回收在利用的功能。下面是对这四个功能模块的简要解析和关键代码:1) GPS数据转换器该转换器实质上是一个功能函数,它是根据本系统服务器与车载终端的特定的通讯协议来实现的,它的接口如下:void CGPSMapDlg:GPS_Convert ( string &buffer, UINT &Num, double &longtitude, double &latitude);其中buffer是投递进来的要进行转换的原始数据,longtitude和latitude是转换之后输出的相应的纬度和经度。2) 图层创建器图层创建器的实质也是一个功能函数,它是根据对应的地图对象、图层对象、图元对象、类厂对象、点对象、风格对象、图标对象以及相应的经纬度来创建一个新图层,并置于所有地图图层的最上方,并进行第一次定位。下面是该图层创建器的实现代码:void CGPSMapDlg:CreateCarLayer(CMapX *pMapx , CMapXLayer *pLayer , CMapXFeature *pFeature , CMapXFeatureFactory *pFactory,CMapXPoint *pPoint , CMapXStyle *pStyle , double longitude , double latitude, wchar_t *Bitmap )pMapx-SetAutoRedraw(TRUE); / 设置为自动重绘*pLayer = pMapx-GetLayers().CreateLayer(_T(),NULL,2,40); / 设置图层特性pLayer-SetDrawLabelsAfter(TRUE);pFeature-CreateDispatch(pFeature-GetClsid();pPoint-CreateDispatch(pPoint-GetClsid();pStyle-CreateDispatch(pStyle-GetClsid();pStyle-SetSymbolType(miSymbolTypeBitmap);pStyle-SetSymbolBitmapSize(25);/位图文件必须放在安装目录的CUSTSYMB /文件夹下 pStyle-SetSymbolBitmapName(Bitmap);pStyle-SetSymbolBitmapTransparent(TRUE);/位图白色背景设置为透明 / 定位并将车辆图标设置为地图显示窗口的中间位置pLayer-SetDrawLabelsAfter(FALSE);pLayer-SetEditable(TRUE);pPoint-Set(longitude,latitude);pMapx-SetCenterX(longitude); pMapx-SetCenterY(latitude); / 设置图层风格VARIANT varPoint;VARIANT varStyle;varPoint.vt = VT_DISPATCH;varPoint.pdispVal = *pPoint;varStyle.vt = VT_DISPATCH;varStyle.pdispVal = *pStyle;*pFactory = pMapx-GetFeatureFactory();*pFeature = pFactory-CreateSymbol(varPoint,varStyle);pLayer-AddFeature(*pFeature);pLayer-Refresh();pMapx-SetAutoRedraw(TRUE);pLayer-SetEditable(FALSE);3) 图层重绘器 图层重绘器是一个刷新车辆当前位置的功能函数,它的接口类似与图层创建器,但是它的实现中必须先擦除原来车辆所在位置的图标,然后再重新创建新的图标并在新的位置进行显示,从而实现车辆在地图上得动态“行驶”。其实现的关键代码如下:void CGPSMapDlg:CarPosRefresh(CMapX *pMapx ,CMapXLayer *pLayer , CMapXFeature *pFeature , CMapXFeatureFactory *pFactory,CMapXPoint *pPoint , CMapXStyle *pStyle ,double longitude , double latitude, wchar_t

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论