专利名称:地理信息系统及基于该系统的定位存储及轨迹显示的方法
技术领域:
本发明属于城市公交网络技术领域,涉及一种地理信息系统,尤其是一种地理信息系统及基于该系统的定位存储及轨迹显示的方法,其是基于GIS技术下地图平台 MapInfo与程序开发工具Visual Studio C++之间的二次开发而来。
背景技术:
随着科学技术的发展,地理信息系统(GIS)的应用日趋广泛,不但在资源和环境管理与规划中成功应用,而且成为设施管理和工程建设的重要工具,同时还进入物流配送、 商业选址以及大型的企业管理领域中。地理信息系统二次开发成为发展趋势,利用MapInfo 进行二次开发,根据不同的操作方法、特点和具体情况选择合适的方法,将有助于再进行软件的二次开发时,提高开发效率,减少不必要的时间浪费。当今地理信息软件层出不穷,其中美国MapInfo公司的MapInfo Professional软件及Microsoft的OLE技术实现了地图与数据的完美结合,以数据可视化的方式,为决策提供了一种崭新的支持。MapInfo地理信息系统平台作为一个图形与文字信息完美结合的软件工具,能将所需要的信息资料、图像直观地与地理图形紧密的联系起来、提供各种常用的分析、查询功能,并将结果以图形、表格或信息的方式显示出来。Microsoft公司推出的Visual C++(简称VC)是目前被广泛应用于开发应用程序的可视化开发工具,由于其功能强大,越来越多的编程人员将其作为开发Windows应用程序的工具,具有开发速度快、开发的软件功能强大等优点。
发明内容
本发明的目的在于克服上述现有技术的缺点,提供一种地理信息系统及基于该系统的定位存储及轨迹显示的方法,该系统是利用VC基于OLE自动化的MapInfo 二次开发, 能够实现地图缩放,GIS视频弹出,车辆定位跟踪,车辆轨迹回放,区域看车,超速报警等功能。本发明的目的是通过以下技术方案来解决的这种地理信息系统,包括前台系统和后台系统,其中所述前台系统包括初始化MapInfo?椋媚?楹筇ǖ饔肕apinfo程序,以便进行数据操作;地图基本操作?椋媚?榫哂械赝挤糯蟆⒌赝妓跣、地图漫游、地图居中和距离测量的功能;定位跟踪模块,该?橥ü尴叽洌獹PS计算出的定位信息传送至地理信息系统,配合电子地图实现定位跟踪,实时了解车辆运行路径;实时告警?椋媚?榘ń艏北ň、超速报警、偏航报警、区域报警和疲劳驾驶报警;所述后台系统包括历史轨迹查询?椋媚?榻獹PS得到的数据通过ADO方式存放进数据库中,在地理信息系统根据指定时间段,查询具体该时间段的GPS经纬度信息,该?榈墓δ苤饕墙檠降氖葜苯哟莞旒;胤拍?椋诠旒;胤拍?橹薪檠隼吹木扯刃畔⒃诘赝忌舷允荆 轨迹回放?椋媚?槟芄谎《üツ骋皇奔涠危檠檬奔涠文谥付ǔ盗镜睦饭旒J荩⒔欣饭旒;胤。上述初始化MapInfo?橛葾fxOleInit ()函数实现其功能。上述地图基本操作?槭堑饔胢apinfo中的RunMenuCommand方法来实现其功能的。本发明还提出一种基于上述地理信息系统的定位存储及轨迹显示的方法,包括以下步骤1)首先,初始化MapInfo?槔煤鼳fxOleInit ()和CoInitializeO初始化 OLE环境;2)然后利用定位跟踪模块接收车辆上GPS的经纬度信息;3)如果车辆发生异常,或者车辆驶出规定区域,就会触发实时告警?椋凳备婢?榛峤婢畔⑾允境隼矗4)定位跟踪?榛岣菔凳备婢?橹械母婢荩诘赝忌献远ㄎ坏接泄收系某盗旧希煌庇没芄辉诘赝蓟静僮髂?橹卸缘赝冀蟹糯笏跣〉炔僮鳎员愀貌榭闯盗疚恢眯畔ⅲ5)用户通过历史轨迹查询?椴檠咛迨奔涠蔚某盗拘畔ⅲ6)最后,历史轨迹查询模块会将查询结果传入轨迹回放?橹校诠旒;胤拍?橹薪檠降氖菹允驹诘赝忌。本发明具有以下有益效果本发明的地理信息系统将外出车辆直观的显示在地图中,用户能够很方便的点击地图上的某一个车辆,获得该车辆的具体信息,包括速度和经纬度信息等,还能够随时查询历史行程,选定好时间段后马上在地图上显示出该车辆行驶路线,能够设定车辆行驶范围, 一旦车辆超出行驶范围,就会产生告警信息,方便了解车辆状况。
图1为本发明的结构框图;图2为本发明的函数调用示意图。
具体实施例方式下面结合附图对本发明做进一步详细描述参见图1,本发明的地理信息系统,包括前台系统和后台系统。其中前台系统包括用于后台调用Mapinfo程序的初始化MapInfo?椋员憬惺莶僮鳎痪哂械赝挤糯、地图缩小、地图漫游、地图居中和距离测量功能的地图基本操作?椋煌ü尴叽洌獹PS计算出的定位信息传送至地理信息系统,配合电子地图实现定位跟踪,实时了解车辆运行路径的定位跟踪?椋灰约笆凳备婢?椋舜κ凳备婢?榘ń艏北ň、超速报警、偏航报警、区域报警和疲劳驾驶报警。
后台系统包括历史轨迹查询?椋媚?榻獹PS得到的数据通过ADO方式存放进数据库中,在地理信息系统根据指定时间段,查询具体该时间段的GPS经纬度信息,该?榈墓δ苤饕墙檠降氖葜苯哟莞旒;胤拍?椋诠旒;胤拍?橹薪檠隼吹木扯刃畔⒃诘赝忌舷允荆还旒;胤拍?椋媚?槟芄谎《üツ骋皇奔涠危檠檬奔涠文谥付ǔ盗镜睦饭旒J荩⒔欣饭旒;胤。以下分别对各 ?榻邢晗附樯艹跏蓟疢apInfo?樵诘乩硇畔⑾低持谐跏蓟疢apInfo?橹饕饔檬呛筇ǖ饔肕apinfo程序,以便进行数据操作,该?槭峭ü鼳fxOleInit ()函数调用mapinfo程序主线程动态链接库从而在后台启动mapinfo程序,其中“Mapinfo. Application. 850”表示mapinfo的版本8. 5版本。地图基本操作?榈赝蓟静僮髂?椋涔δ馨赝挤糯、地图缩小、地图漫游、地图居中、距离测量等;该模块主要是调用mapinfo中的RimMenuCommand方法来实现以上功能的,利用 RunMenuCommand方法可以方便的实现MapInfo的菜单功能。在MapInfo中,每一个菜单功能都对应着一个ID号,在MapBasic安装目录下的MENU. DEF文件中可以查询到每个菜单对应的ID号。例如当希望客户程序的某一个按钮按下后弹出MapInfo的Change View对话框(对应MapInfo中Map菜单的Change View菜单项),只需要响应在这个按钮的OnClick 事件,在其中调用MapInfo的RunMenuCommand方法就可以了。定位跟踪模块定位跟踪?槭峭ü尴叽洌獹PS计算出的定位信息传送至地理信息系统, 配合电子地图实现定位跟踪,实时了解车辆运行路。定位跟踪?橹饕邮艿降腉PS数据值,传递给mapinfo程序,并同时在mapinfo地图上生成一个坐标点,从而在地图上显示该点的位置;该?橹饕ü饔胢apinfo程序中得DOO方法来实现其定位功能的,Do 方法向Mapinfo传递指令是利用Mapbasic语句实现的,启动MapInfo后就可以向它传送 Mapbasic指令,例如本发明中打开并且调入一幅地图,先定义一个字符串,存放调用地图的命令,ReadOnly表示只读地图,不对地图作任何修改,然后调用DO方法在Mapinfo中打开该地图,打开地图调用Open Table命令,这样就完成地图的调用;还有本发明中自定义鼠标右键菜单,调用Create Menu方法,其中MapperShortcut表示的是右键快捷菜单,Calling OLE是调用VC中的一个函数,该函数为消息函数,该命令起到的作用就是mapinfo与VC间进行交互,在地图上点击菜单项,触发VC内部消息函数,而所有具体实现代码都在消息函数中体现。实时告警?樽槌筛媚?榈慕艏北ň⒊俦ň、偏航报警、区域报警和疲劳驾驶报警具有如下功能(1)紧急报警车机上安装紧急报警按钮,按下按钮,指挥中心能够接受到报警信息,进行处理,例如监听车内情况、进行救援等。(2)超速报警以往当车辆因超速发生的事故无法通过数据来举证,那么通过GPS 实时记录车辆的历史轨?梢圆榭闯盗驹谑鹿使讨械乃俣(参考取证)。该功能与调度功能、电子地图结合根据 行驶路段级别(一级、二级、高速等最高行驶速度),提醒司机安全驾驶。(3)区域报警在中心下发若干矩形/多边形区域给GPS终端,当车辆进入设定区域后即可进驶出区域或驶入设定区域,则向监控中心发送报警信息。(4)偏航报警在电子地图上设定车辆的行走线路,并指定车辆的偏离距离,当车辆在行驶过程中偏离线路的指定距离时系统发出偏航报警。(5)疲劳驾驶报警为了防止司机会超时超负荷的工作,调度管理中心可以设置时间段,系统监测次时间段内,如果车辆连续行驶超出设定时间段时,服务中心将得到警报,提示司机已到疲劳驾驶状态,监管中心可下发信息提示司机休息,不要疲劳驾驶等相关 fn息ο该?橹饕昧 VC的回叫机制,在集成二次开发中,通常采用回叫机制从 MapInfo中获取信息。所谓回叫,是指当集成客户程序的MapInfo地图窗口中有事件发生时,MapInfο通过OLE自动化对象自动向客户应用程序发送消息的机制。利用回调机制,在如下情况下MapInfo可以向客户程序发送信息(I)MapInfo中执行菜单栏或者工具按钮的命令。(2)图窗口发生变化。(3)MapInfo状态条发生改变(用户在地图上移动鼠标)。而客户程序可以接收相应的信息,在自己定义的方法中进行处理。所以可以利用回叫机制在应用程序中实现下面的功能(1)定义MapInfo右键菜单。(2)过用户自定义工具同MapInfo交互。(3)控制发生变化的地图。(4)自定义客户程序状态栏显示的内容。回叫是利用OLE自动化集成二次开发的难点所在,其核心思想是MapInfo服务器向客户程序发送消息。轨迹回放?楦媚?槭鞘菘饽?橹械囊桓瞿?椋咛骞δ芪低晨裳《üツ骋皇奔涠危檠檬奔涠文谥付ǔ盗镜睦饭旒J荩⒔欣饭旒;胤。对于为日后责任认定、是否存在不按规定路线行驶、私自载货、装卸货物等行为进行追查提供参考数据。本发明中在回调函数CustomCommand中添加了触发鼠标事件的语句,该语句的作用是,当鼠标点击地图任意一点时,mapinfo会自动将该点的经纬度信息上传到VC的 CustomCommand回调函数中,首先初始化经纬度的精度,利用Format$方法,然后通过Eval 获得所点击的经纬度信息;其中初始化中的###· #########表示的是精确到小数点后9 位;还有区域信息汇总、指定区域停车告警、车辆违章告警等都用到了回调函数,具体操作与上述基本一致。上述本发明是由VC 6.0和mapinfo 8. 5相结合开发而成,数据库用的是SQL SEVER 2000,具体如图2所示在本发明中,专门设置有MapInfo服务器,图中的应用程序代表本发明的地理信息系统中的各个功能?椋硗馍柚肧QL Sever数据库,由本发明的各个功能模块调用MapInfo服务器上Mapinfo程序,MapInfo服务器上Mapinfo程序也能够以 OLE回叫的方式相应应用程序,应用程序和MapInfo服务器都与SQL Sever数据库进行数据交换。基于上述地理信息系统的定位存储及轨迹显示的方法如下
1)首先,初始化MapInfo?槔煤鼳fxOleInit ()和CoInitializeO初始化 OLE环境;2)然后利用定位跟踪?榻邮粘盗旧螱PS的经纬度信息;3)如果车辆发生异常,或者车辆驶出规定区域,就会触发实时告警?椋凳备婢?榛峤婢畔⑾允境隼矗4)定位跟踪?榛岣菔凳备婢?橹械母婢荩诘赝忌献远ㄎ坏接泄收系某盗旧希煌庇没芄辉诘赝蓟静僮髂?橹卸缘赝冀蟹糯笏跣〉炔僮鳎员愀貌榭闯盗疚恢眯畔ⅲ5)用户通过历史轨迹查询?椴檠咛迨奔涠蔚某盗拘畔ⅲ6)最后,历史轨迹查询模块会将查询结果传入轨迹回放模块中,在轨迹回放?橹薪檠降氖菹允驹诘赝忌。需要说明的是,对于本领域的专业人员来说,在了解了本发明内容和原理后,能够在不背离本发明的精神和范围的情况下,根据本发明的方法进行形式和细节上的各种修正和改变,但是这些基于本发明的修正和改变仍在本发明的权利要求保护范围之内。
权利要求
1.一种地理信息系统,其特征在于,包括前台系统和后台系统, 所述前台系统包括初始化MapInfO?椋媚?楹筇ǖ饔肕apinfo程序,以便进行数据操作; 地图基本操作?椋媚?榫哂械赝挤糯、地图缩小、地图漫游、地图居中和距离测量的功能;定位跟踪?椋媚?橥ü尴叽洌獹PS计算出的定位信息传送至地理信息系统, 配合电子地图实现定位跟踪,实时了解车辆运行路径;实时告警?椋媚?榘ń艏北ň、超速报警、偏航报警、区域报警和疲劳驾驶报m.θ ,所述后台系统包括历史轨迹查询?椋媚?榻獹PS得到的数据通过ADO方式存放进数据库中,在地理信息系统根据指定时间段,查询具体该时间段的GPS经纬度信息,该?榈墓δ苤饕墙檠降氖葜苯哟莞旒;胤拍?椋诠旒;胤拍?橹薪檠隼吹木扯刃畔⒃诘赝忌舷圆唬还旒;胤拍?椋媚?槟芄谎《üツ骋皇奔涠危檠檬奔涠文谥付ǔ盗镜睦饭旒J荩⒔欣饭旒;胤。
2.根据权利要求1所述的地理信息系统,其特征在于,所述初始化MapInfo?橛 AfxOleInitO函数实现其功能。
3.根据权利要求1所述的地理信息系统,其特征在于,所述地图基本操作?槭堑饔 map info中的RunMenuCommand方法来实现其功能。
4.一种基于权利要求1所述地理信息系统的定位存储及轨迹显示的方法,其特征在于,包括以下步骤1)首先,初始化MapInfo?槔煤鼳fxOleInit()和CoInitialize ()初始化OLE 环境;2)然后利用定位跟踪模块接收车辆上GPS的经纬度信息;3)如果车辆发生异常,或者车辆驶出规定区域,就会触发实时告警?椋凳备婢?榛峤婢畔⑾允境隼矗4)定位跟踪?榛岣菔凳备婢?橹械母婢荩诘赝忌献远ㄎ坏接泄收系某盗旧希煌庇没芄辉诘赝蓟静僮髂?橹卸缘赝冀蟹糯笏跣〉炔僮鳎员愀貌榭闯盗疚恢眯畔ⅲ5)用户通过历史轨迹查询?椴檠咛迨奔涠蔚某盗拘畔ⅲ6)最后,历史轨迹查询?榛峤檠峁牍旒;胤拍?橹校诠旒;胤拍?橹薪檠降氖菹允驹诘赝忌。
全文摘要
本发明公开了一种地理信息系统及基于该系统的定位存储及轨迹显示的方法,其中该地理信息系统,包括前台系统和后台系统,其中所述前台系统包括初始化MapInfo?、地图基本操作?、定位跟踪?楹褪凳备婢?椋凰龊筇ㄏ低嘲ɡ饭旒2檠?楹凸旒;胤拍?椤1痉⒚鹘獬龀盗局惫鄣南允驹诘赝贾校没芄缓芊奖愕牡慊鞯赝忌系哪骋桓龀盗荆竦酶贸盗镜木咛逍畔ⅲㄋ俣群途扯刃畔⒌龋鼓芄凰媸辈檠沸谐蹋《ê檬奔涠魏舐砩显诘赝忌舷允境龈贸盗拘惺宦废撸芄簧瓒ǔ盗拘惺环段В坏┏盗境鲂惺环段В突岵婢畔ⅲ奖懔私獬盗咀纯。
文档编号G01S19/42GK102446213SQ201110269709
公开日2012年5月9日 申请日期2011年9月13日 优先权日2011年9月13日
发明者张效奇, 曹江 申请人:西安大唐电信有限公司