【VC++开源代码栏目提醒】:本文主要为网学会员提供“基于开源GIS的交通分析软件设计 - 毕业设计”,希望对需要基于开源GIS的交通分析软件设计 - 毕业设计网友有所帮助,学习一下!
第1期作者简介刘春1973-男江苏海门人博士同济大学测量与国土信息工程系副教授研究方向为GIS空间数据不确定性理论、LIDAR数据处理与分析和应用系统开发、智能交通信息系统卢群1984-男广西河池人同济大学测量与国土信息工程系硕士研究生研究方向为
开源GIS应用系统开发、智能交
通信息系统吴杭彬983-男浙江金华人同济大学测量与国土信息工程系博士研究生研究方向为三维激光扫描数据处理理论。
0引言地理信息系统GIS是在计算机软硬件的支持下以处理物体的空间数据以及与之相关的属性数据并解答用户
问题等为主要任务的
计算机系统。
它主要包括以下方面空间数据模型和存储、空间数据分析、数据显示。
由于交通管理的动态性和复杂性要求系统具备强大的空间分析能力和优秀的可视化能力因此其与GIS结合是必然的结果。
一般认为交通地理信息系统GISforTransportationGIST是在传统GIS基础上加入几何空间网络概念及线的叠置和动态分段等技术并配以专门的交通建模手段而组成的专业信息系统。
GIS-T平台的实现有以下几个方面要求1对多样性的数据进行有效管理。
管理小区社会
经济数据、OD矩阵、交通网络拓扑数据等要能够支持多种数据格式如矢量、栅格、网络数据等。
2特定的空间分析功能要求。
如车站的影响区分析、带转向延误的多源最短路径计算等。
3友好的用户操作界面。
友好的用户界面是交通网络编辑、交能分析结果输出的基础能够极大地提高工作效率。
4直观的专题地图输出。
交通需求分析的结果要制成直观的交通专题图输出有助于决策的进行。
本文立足于GIS-T平台的要求以及系统开发的需要选择合适的开发方式提出一种利用
开源软件的GIS-T设计方案。
1GIS开发方式比较为满足不同项目中对地理信息GIS功能的需要现实GIS开发
工作中进行得最多的就是GIS功能的二次开发其主要实施在以下几个方面1以现有的GIS桌面开台为基础开发扩展功能插件如ArcGIS的插件开发2开发基于网络的数据可视化和地图浏览工具如基于ArcIMS的利用JavsScript、
JSP、JavaBean进行的网络应用程序开发使用已有GIS组件利用其提供的应用程序接口API编制独立的应用程序如AO/AE、MapX的二次开发。
在目前的GIS工程项目中有相当大的部分都是基于少量的几个非常成功的商业GIS软件如ESRI的ArcInfo系列产品、INTERGRAPH公司GIS系列产品、MapInfo公司的MapInfoMapX国产的如SuperMap、GeoStar等。
这些产品及其组件功能强大使用方便能够减少开发时间和人力投入。
然而在某些项目中用商业GIS软件开发部署应用程序也许并不合适原因如下商业软件费用较高对小型项目和小型组织是较大的负担。
以商业软件为基础开发包含基本GIS功能的软件然后分发或出售给其它用户需要首先确保用户也拥有一份商业开发或运行环境才能使用。
然而该商业软件包的价格往往会高于小型项目的软件的价格这样轻重倒置的做法显然不合适。
基于
开源GIS的交通分析软件设计刘春卢群吴杭彬同济大学测量与国土信息工程系上海200092摘要分析了GIST和特定项目的需求通过对多种
开源GIS软件特点的比较描述了空间数据以及用于交通分析的属性数据在数据库中的存储方式提出了整合MapWinGIS和MySQL的交通分析软件平台的设计方案。
该
方案既能够在交通分析软件中方便地引入GIS功能又能减少开发的人财耗费同时满足了进一步的研究需要。
关键词GIS-TMapWinGISMySQL交通分析软件中图分类号TP3.4文献标识码A文章编号162-800200901-016-03第8卷第1期2009年1月Vol.8No.1Jan.2009软件导刊SoftwareGuid软件导刊2009年2在某些研究项目中可能需要完全拥有软件源
代码的产权也可能需要深入数据的底层以特定的方法、理论、模型来对数据进行挖掘和利用那么源
代码封闭的商业软件限制和阻止了研究的深入。
因此如果能以合适的
开源GIS软件或组件为基础进行开发则能够满足项目
软件对GIS功能的需要又能节约开发成本。
在对已有文献的查阅中发现现有的对
开源软件的应用研究并不多主要有基于
开源GIS的城市基准地价信息发布平台的
设计与实现其主要讨论了基于GeoTool平台和JavaApplet的
网络信息发布平台的设计。
2
开源GIS软件介绍
开源软件多种多样其有着来源广、费用低、扩展性强的特点而且
开源GIS软件基本都能遵守OpenGIS规范可定制性强可以采取更为灵活的方式进行二次功能开发。
因项目所用的操作
系统平台和开发语言不同有不同的
开源软件可用。
以下进行简单比较和介绍1
Java类①JavaTopologySuiteJTS它是许多ava类
开源软件拓扑分析的基础②UMPheUPUnifiedMap-pingPlatform它是一个可扩展的空间数据应用程序框架OpenJU和Degree这些
开源软件项目都以它为基础构建。
2C类。
使用C开发的
开源GIS项目较少也不太成熟。
主要有SharpMap、NetTopologySuiteNS等。
3C/C类①MapWinGIS是用C编制的ActiveX控件提供基本的GIS功能引入到Windows应用程序之中比较方便②QuantumGIS用QT编制是一个用户界面友好的地理信息系统能够通过插件扩展其功能也提供二次开发接口可运行在多种操作系统之上③GRASS是一个功能强大的地理信息系统在空间数据管理和分析、图象处理、图形/地图制作空间建模与可视化等方面都很出色。
后两项软件虽然功能强大但由于不是基于Windows的编程为在Windows上的程序开发和扩展带来了不少麻烦。
即使要使用其原来的开发工具和基础类库对习惯于Windows编程的开发人员也很不方便。
因此项目可以根据自身要求和软件的不同特点再综合考虑项目参与人员的自身情况选择合适的GIS开发方式。
各编程语言的
开源软件特点比较如表1所示。
3系统架构桌面应用
程序需要执行复杂的功能和算法要求程序运行速度较快同时考虑到Windows应用程序开发人员的习惯决定采用MapWinGIS和MySQL数据库相结合的系统设计方案。
MapWinGISActiveX是
开源的GIS控件允许自由使用和发布。
通过在应用程序中使用这一控件能够较方便地开发基本GIS功能支持多种数据读写、地图浏览、地图查询等。
MySQL是非常优秀的
开源数据库软件功能强大完全能够满足桌面系统对数据库管理的需要。
系统各模块的分工和联系如图1所示。
基于MFC构建程序UI。
MapWinGIS管理各种数据的读取和显示把空间数据和属性数据存入MySQL数据库中数据入库后交通管理业务模块直接与用户UI和MySQL数据库进行联络计算时不再重复读取源数据文件从而提高了计算和数据管理的效率。
4基于数据库的交通网络数据模型交通网络数据模型则可以定义为区域交通网络系统的抽象表示形式。
与有向图描述中的节点和一维路段不同交通网络还要包括①零维的节点②一维的路段③一维的转向④一维的OD对⑤二维的交通区。
实际的交通网络还包括大量的空间数据和属性数据。
数据模型是进行数学分析和计算的基础交通网络数据模型的好坏能够直接影响交通分配算法效率的高低。
经过分析得到城市道路交通路网数据模型如表2所示只列出节点、路段、交通区、转向表。
1节点表编号、名称、坐标、控制类型、分车种的饱和度等2路段表编号、名称、线路坐标、长度、车道数单向、等级等3交通区表编号、名称、人口、范围坐标、出行产生和吸引量等4转向表起节点编号、终节点编号、类型编号左直右表1各编程语言的
开源软件特点比较Java系软件C系软件C/C系软件已有功能较强较弱较强移植性较强较强较弱效率速度较慢速度一般较快表2路网数据库表结构名称字段Node节点表IDNameTypeGeometry……Link路段表IDNameTypeGeometry……Zone交通区表IDNameTypeGeometry……Turn转向表IDFromNodeIdViaNodeIdToNodeId……图1系统各模块关系GIS-T用户GIS-T应用程序UI使用MapWinGIS控件实现基本GIS功能数据管理模块空间数据和属性数据的MySQL数据库存储交通管理业务逻辑和算法、空间分析模块168--第1期U、限行设定等。
其中Geometry字段为Blob类型即把地理实体的空间坐标数据用二进制方式存储到一个字段中能够避免用多个字段来保存空间数据。
5程序实现简述在
VC6.0中使用MapWinGIS控件的方法如下1
注册ActiveX控件例如将MapWinGIS.ocx放在C:mapWindow文件夹下则在运行中键入regsvr32.exeC:MapWindowMapWinGISocx2在
VC.0新建项目中选择project-AddToPro-ject-ConponentsAndControls选择RegisteredActiveXCon-trols中的MapControl点击Add将其加入到应用程序之中成生封装类将其命名为CWinGISMap任意命名其头文件和源文件分别命名为MapWinGis.hMapWinGis.cpp3在StdAfx.h头文件中加入便可以使用Map控件了importD:VCPracticeMapWinGIS45MapWinGIS.ocxusingnamespaceMapWinGIS4在View类中引入mapwingis.h并声明Map对象便能够使用Map控件了includemapwingis.hclassCMyITSView:publicCViewCWinGISMapm_Map使用MapWinGIS能比较方便进行的操作有打开、编辑、保存栅格影像、矢量、TIN、DBF格式的文件、地图浏览、标注设置图层显示样式在地图中进行空间数据
查询、动态绘制图层等等能够满足大多GIS操作的要求关于空间数据入库在MySQL中存储的大容量二进制数据类型是Blob在数据库中建立表包含一个名为Geometry的字段类型为Blob用于保存空间数据在任何地理元素的属性表中都应该有这一字段空间数据的存储方法如下1必须首先定义空间数据的存储规则如下以点状数据为例PolyLine和PolyGon类似PointIntShapeType//用1来表示点DoubleUnused//空出一个int宽度DoubleUnusedDoubleXDoubleYDoubleZ2使用MFC和CAPI连接MySQL数据库在控制台下要引入windows.h在MFC中要引入afxsock.hincludeincludepragmacommentlibibmysqb3将坐标数据填入定义好的结构之中使用usgdogmysqraescapestriMYSQL
mysqlchartocostcharfromusgdoggth函数将上述结构包装成二进制串再使用SQL语句将其插入到数据库中即可4空间数据的输出和绘制从MySQL数据库中查询数据经过交通分析计算之后生成临时图层文件然后使用MapWinGIS绘制该临时图层文件即可6结束语使用
开源GIS软件进行系统开发优点在于花费少能降低开发成本可以自由使用开发后拥有全部的
代码产权便于进一步研究按以上思路结合MapWinGIS和MySQL进行交通分析软件的设计能够满足GIS-T软件对GIS功能的需求同时数据库的分析计算也能满足计算和数据管理效率的要求参考文献1任刚王炜交通管理措施下的交通分配模型与算法M南京东南大学出版社2007.2郑斌唐旭基于
开源GIS的城市基准地价信息发布平台J国土资源科技管理20065.3汤焱彬孟令奎一种中小城市实用WbGIS架构方案J地理空间信息20053.责任编辑赵峰DesignofTrafficAnalysisSoftwareBasedonOpenSourceGISAbstractRqurmtsofspcfcGISTadcharactrstcofopsourcGISsoftwararaayzdthspaprSpataldataadat-trbuts’orgazatodatabasaralsodscrbdThtgratoofMapWGISadMySQLcabrgGISfuctototraffcaaly-sssoftwarThsmthodwllalsohlptorducthcostofprojctadmtthdsroffurthrvstgatoKeyWordGISTMapWGISMySQLTrafficAnalysisSoftware刘春卢群吴杭彬基于
开源GIS的交通分析软件设计19--