百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术文章 > 正文

一种基于GIS/GPS的危险车辆监控系统

zhezhongyun 2025-02-18 14:15 49 浏览

包振山,霍长毅,张文博

(北京工业大学,北京 100124)

摘 要: 随着经济的发展,危险品的使用量和运输量越来越大,由此带来的危险品车辆安全事故也越来越多,此类事故造成破坏极大,影响深远。针对危险品车辆的安全问题,本文利用MongoDB与SQLserver联合存储地图和一般数据,并结合GPS,GIS等技术,设计了一种危险车辆的监控系统,可以实时监控危险车辆的自身信息和行驶状态,减少危险车辆的安全隐患,及时处理突发事件。

0 引言

社会经济的发展,尤其是相对落后地区的基础设施建设,提高了对于以化工产品为代表的特殊危险品的应用需求,导致危险品的运输量迅速上升,运输种类也更加丰富。在运输过程当中,危险品车辆的位置以及环境一直在变化,很多时候运输过程需要几辆,十几辆甚至更多的车辆来完成,其路线未必相同,分布也更加广泛[1]。危险品由于特性带来巨大安全隐患,一旦发生事故,车辆自身以及公路周边的居民和环境都将受到恶劣的影响。尽管目前国家已经有很多相关法规和制度来规范危险车辆运输的安全与作业管理,同时采取许多措施来保障运输规范操作,但危险品运输仍有许多不安因素:一方面,危险品属于高危管控产品,其本身有巨大利润,不法分子会铤而走险,对危险品及其运输车辆进行恶意劫持绑架,或者违规操作,瞒报误报,传递虚假信息;另一方面,驾驶人员在驾驶过程中存在超速、超载等违规操作,车辆在行驶中不按预定路线前进或出现在违规区域,无法及时获取危险品信息状态等都会增加危险的隐患[2]。因此需要良好的监控系统对危险品运输进行管控,对可能出现的事故进行预警,当事故发生时可以及时响应,从而降低对企业单位和人员造成的损失,减少对周边地区环境造成的破坏。

从1990年Trimble公司研发了基于GPS的车辆监控系统Vtrack开始[3],各界都逐步加强了对车辆监控系统的研究,上世纪末美国政府开放了GPS数据的权限,在此契机下,各种车辆、移动定位系统蓬勃发展,也促使了车辆监控的进一步发展。国内虽然起步较晚,但近些年,随着无线网络技术的更新,车载终端设备性能的提升,定位技术的进步,结合GIS技术,车辆监控系统也已经取得巨大发展[4]。但是各种车辆监控系统的针对性相对较强,不同行业车辆监控系统的侧重点可能不一样,例如金融系统的车辆更侧重于防盗,反劫[5];而出租车辆的监控系统侧重于调度与管理[6];军用车辆偏重于车辆的保密以及安全性[7];物流车辆侧重于路线选择与定位监控等[8]。不同的车辆监控的目标不同,车辆监控系统的设计和软件实现都不一样,而危险车辆的监控又有独特的需求,因此本文结合某公司以工业混装车为代表的危险车辆,设计本系统。

GIS(地理信息系统)是一门结合了地理学、地图学、计算机等众多学科的综合学科[9],现已广泛应用在各个领域。作为一种基于计算机的工具,它可以对空间信息进行分析和处理,GIS技术把地图操作和地理分析功能与一般的数据库操作集成在一起。GIS软件在车辆监控系统中的应用,主要是建立相应的数据库系统对车辆的位置状态进行规范化标准化记录,并利用GIS的可视化平台对有关资料进行快速、高效的查询检索,为建立车辆监控和调度管理提供辅助决策支持[10]。随着互联网技术的发展,网络地图作为新一代地图产品脱颖而出,尤其随着瓦片(Tile)概念的提出,利用金字塔模型缓存地图瓦片的模式替代传统GIS地图模式构建新的地图框架,大幅提高了网络地图的响应速度和访问效率[11]。百度地图API是为开发者免费提供的一套基于百度地图服务的应用接口,在网站中构建功能丰富、交互性强的地图应用,支持PC端和移动端基于浏览器的地图应用开发,且支持HTML5特性的地图开发。利用百度地图API接口,获得更加丰富动态的地图数据,实时更新,确保了数据的时效性,节约了开发成本和时间[12]。

非关系型数据库,最早可追溯至1991年的Berkeley DB第一版,是一个键值(Kye/value Store)存储的Hash数据库。从2007年左右蓬勃发展,至今国外已有100多种不同NoSQL数据库。尤其在网络数据库中应用广泛,表现优异。NoSQL数据库相较于传统关系型数据库更适合处理高并发读写,海量数据处理,高扩展性和可用性的应用需求[13]。本文采用功能强大,用户体验良好的MongoDB作为存储地图的数据库,利用MongoDB独特高效的体系结构、存储机制、索引特点等关键技术将切割后的地图瓦片进行组织存储,访问效率比传统方式有显著提高。

1 系统分析

1.1 系统的设计目标

主要是为了设计一个实际有效、切实可行的危险车辆监控系统来保证危险品在生产和运输过程中的安全问题,实现数字化,智能化的运送手段,使危险车辆监管更加透明,实现对车辆实时监控,并且当发生事故时,可以尽快发出警报,采取适当应急措施,减少事故造成的破坏。

1.2 系统的功能需求

危险车辆作为一种特殊车辆,其监控系统功能需求也具有一般车辆监控系统的共性,例如:

(1)车辆位置监控。对监控车辆位置空间定位,在地图上明确显示以进行监控,并伴随车辆的移动可以实时更新车辆位置信息;在选定时间范围内可以对车辆轨迹进行回放,查看车辆行驶过程;同时也可以在不同监控车辆间进行切换,从而查看需要监控的车辆信息。

(2)车辆信息监控。实现对每个车辆的基本信息进行管理,包括车辆型号,牌照,载重以及所属车主和司机的一些基本个人信息;每次车辆执行运输任务时的具体情况(如时间,路线等)可能有变化,应当分别管理。

(3)用户管理。对负责监管的用户的个人信息进行管理,并根据管理员、普通用户等角色分类提供不同的功能和权限。

鉴于危险车辆的危险性和职能的特殊性,它的监控系统也有区别于一般车辆监控系统的功能:

(1) 车辆内部对于不同的危险品类型进行对于危险品的监控。

(2)鉴于危险品车辆的危险性和破坏性,应当有合适的警报系统。

(3)对于危险车辆发生紧急事故时,对危险车辆进行远程控制管理。

1.3 系统设计原则

为了实现设计目标,满足功能需求,在设计监控系统时应符合以下设计原则:

(1) 先进性和实用性相结合。系统的设计应充分利用已有的成熟技术,并且结合功能需求,从而达到有效实用,切实可行的目标。

(2) 通用性和安全性相结合。系统设计应具备一般车辆的共性,但也考虑危险车辆的特殊性,对安全有更高的需求,保证更高的安全性。

(3) 模块化设计和可扩展性相结合。系统采用模块化设计,便于对每个模块进行设计完成,各模块间相互独立,互相协作,并且预留可扩展模块和接口,方便以后对各模块及系统功能维护和扩展。

(4) 精确性和效率性结合相结合。既要提高车辆监控的精度,也要考虑数据实时更新等问题,提高效率。

2 系统设计

系统主要包括车载终端、监控终端和监控客户端。车载终端主要部署在车辆上,监控终端主要指服务器端,监控客户端等,便于不同角色的用户进行访问。基本结构如图1所示。

2.1 各部分功能

车载终端部分部署在危险品车辆上,作为监控危险品车辆的终端载体,它整合了车辆的一些基本功能,负责采集危险品车辆的一切信息,回馈给中心服务器,并对中心服务器的指令进行回应。车载终端结构如图2所示,其各部分功能如下。

(1)中央处理模块:作为车载终端的核心部分,负责将终端所有信息按协议打包交付通信模块发送,并将通信模块收到的中心服务器信息进行响应,协调各个模块的工作。

(2)定位模块:车载GPS设备,负责接收GPS卫星信息,并作处理得到位置信息。

(3)车辆监测模块:主要分为两个部分:一部分是车辆信息监测部分,负责监测车辆基本信息以及车辆的行驶信息(例如车速,胎压,质心高度,转向灯开启状况,刹车系统工作状态等);另一部分,主要由传感器等组成,负责监测车辆内部危险品状态,例如车厢内温度,湿度,光照度,气压,浓度泄漏等,并根据不同危险品种类所需的不同环境,进行特殊监测,例如对车辆行驶碰撞、颠簸状态等进行监测。

(4)视频采集模块:包括行车记录仪和车厢内部的视频监控。采集车辆运行过程中遇到的视频信息,记录画面;同时对车辆内部进行监测,对人为行动或碰撞等异常行为等车内一切可视化信息进行记录。

(5)警报模块:当监测模块监测到车辆自身故障或遭遇特殊恶劣环境,人为破坏等,会向中心监控服务器和驾驶员发送警报信号,并尽可能锁定问题原因;同时在车辆出现事故后,可以向周边车辆发出警报提醒附近过往车辆注意安全,并向就近安全部门发出求助信息。

(6)车辆控制模块:由远程控制中心发送的控制指令可以通过控制模块来控制车辆,包括紧急制动,断开油路,车辆锁定等,同时也可以设置计划,规定路线等。

(7)无线通信模块:负责通过无线网络与远程中心服务器沟通,实时或按需发送车辆状态以及警报等信息。保持与中心服务器的通信连接,一旦通信失联超过规定时间,会发送警报提醒驾驶员。

2.2 监控中心部分

监控中心是监控系统的核心部分,管理整个系统以及为用户提供各种服务。监控中心结构如图3所示,其各部分功能如下。

(1)中心服务器:监控中心的核心部分,处理监控中心的一切工作,并提供客户端操作。

(2)通信服务器:主要负责与车载终端进行通信,接收其发送的数据,并进行解析;将中心服务器处理的指令按协议打包发送给车载终端。

(3)数据库:采用SQL Server和MongoDB相结合存储信息,包括从车载终端传递的车辆的各种信息,以及用户操作信息。

(4)地图服务器:作为地图平台,将车辆的位置,行驶信息等显示在地图上,并提供地图操作,支持地图缩放,图层切换,显示周边环境,车辆路线预置导航,车辆轨迹回放等。

(5)客户端:用户通过客户端对车辆监控平台进行操作,包括查询车辆信息,定位车辆位置,设置车辆运行路线,对车辆进行远程控制,车辆调度等。

(6)警报系统:当监测到车辆信息异常之后,采取紧急预警方案,并向有关部门发送警报等。

(7)其他应用:作为预留拓展部分。

2.3系统数据存储

数据库组织采用关系型和非关系型数据库联合。对于一些静态数据,例如车辆信息,驾驶员信息等基本信息,具备典型的关系性特征,用SQL Server可以实现详尽灵活的存储。而对于地图的数据,采用NoSQL。地图数据采用瓦片地图技术,服务器端瓦片地图构建主要是对数据库中的空间数据进行符号化显示和分层瓦片切割,生成不同层次的电子地图瓦片,建立地图瓦片金字塔模型,采用数据库或文件目录的方式对瓦片地图数据进行入库或存储管理,并对金字塔地图瓦片建立线性四叉树瓦片索引。金字塔每层分别对应某个比例尺的数据集,最底层的地图比例尺最大,最顶层地图比例尺最小[14]。利用MongoDB可以存储海量数据,自动切片,搭建的缓存层可以避免下层数据源过载的特性,将地图数据存储在MongoDB中,并为每个图片建立索引,当用户请求某一范围地图时,服务器只需将相应的地图瓦片数据返回给用户即可。由于图片无须实时生成,大大减轻了服务器负担,并缩短了系统响应时间。

3 系统实现

结合多种技术,设计构建了一个危险车辆监控系统的原型系统,实现了对危险车辆的实时监控。基本功能实现:获取GPS信息、对车辆监控的定位、路径回放。如图4~图6所示。

4 结束语

危险品由于其特殊的危害性和价值,在生产运输使用过程中都要求严格的监控,本文为了更好地满足实际生产应用中对危险品车辆的监控需求,借鉴许多已有的监控系统,结合一些相对成熟的技术,设计一个有效可行的车辆监控系统,不仅能满足对于危险车辆进行监控,也能帮助用户管理危险车辆,危险物品等。随着技术的不断完善和进步,未来车辆会更加智能,车辆的监控系统也会更好地服务社会,减少安全隐患,创造更大价值。

参考文献

[1] 张令勇,高松,钟磊,等. 基于3G的危险品车辆在途监控预警系统的设计[J]. 山东理工大学学报(自然科学版),2010,24(1):70-74.

[2] 靖相顺. 危险品运输车辆监控系统设计[D].济南:山东大学,2013.

[3] 温宗周,陈改霞. 基于GPS/GPRS的远程车辆管理系统的设计[J]. 电子测量技术,2013(8):76-79.

[4] 惠晓威,刘彦每.基于GPS/GPRS的物流车载终端系统设计[J]. 计算机应用与软件,2015(6):80-82,119.

[5] 周冬. 基于TDVRP和STDVRP模型的金融押运车辆路径问题研究[D].北京:清华大学,2010.

[6] 连进. 基于GPS的出租车调度与监控系统的设计与实现[D].上海:上海交通大学,2011.

[7] 董哲. 基于北斗导航的军队车辆监控系统的设计与实现[D].济南:山东大学,2014.

[8] 胡琨鹏. 物流车辆监控系统的研究与设计[D].成都:西南交通大学,2010.

[9] 于浚烽,陈蔚芳,马万太. 基于GIS/GPS技术的肉品冷链物流监控与调度系统[J]. 计算机应用,2014(S1):312-314.

[10]步挺俊,孙恒. 烟草GIS车辆监控系统[J]. 计算机系统应用,2012,21(6):42-45,190.

[11]百度地图API官网.
http://developer.baidu.com/map/.

[12]杜清运,虞昌彬,任福. 利用嵌套金字塔模型进行瓦片地图数据组织[J]. 武汉大学学报(信息科学版),2011(5):564-567.

[13]金澈清,钱卫宁,周敏奇,等. 数据管理系统评测基准:从传统数据库到新兴大数据[J]. 计算机学报,2015(1):18-34.

[14]陈超,王亮,闫浩文,等. 一种基于NoSQL的地图瓦片数据存储技术[J]. 测绘科学,2013,38(1):142-143,159.

相关推荐

Python入门学习记录之一:变量_python怎么用变量

写这个,主要是对自己学习python知识的一个总结,也是加深自己的印象。变量(英文:variable),也叫标识符。在python中,变量的命名规则有以下三点:>变量名只能包含字母、数字和下划线...

python变量命名规则——来自小白的总结

python是一个动态编译类编程语言,所以程序在运行前不需要如C语言的先行编译动作,因此也只有在程序运行过程中才能发现程序的问题。基于此,python的变量就有一定的命名规范。python作为当前热门...

Python入门学习教程:第 2 章 变量与数据类型

2.1什么是变量?在编程中,变量就像一个存放数据的容器,它可以存储各种信息,并且这些信息可以被读取和修改。想象一下,变量就如同我们生活中的盒子,你可以把东西放进去,也可以随时拿出来看看,甚至可以换成...

绘制学术论文中的“三线表”具体指导

在科研过程中,大家用到最多的可能就是“三线表”。“三线表”,一般主要由三条横线构成,当然在变量名栏里也可以拆分单元格,出现更多的线。更重要的是,“三线表”也是一种数据记录规范,以“三线表”形式记录的数...

Python基础语法知识--变量和数据类型

学习Python中的变量和数据类型至关重要,因为它们构成了Python编程的基石。以下是帮助您了解Python中的变量和数据类型的分步指南:1.变量:变量在Python中用于存储数据值。它们充...

一文搞懂 Python 中的所有标点符号

反引号`无任何作用。传说Python3中它被移除是因为和单引号字符'太相似。波浪号~(按位取反符号)~被称为取反或补码运算符。它放在我们想要取反的对象前面。如果放在一个整数n...

Python变量类型和运算符_python中变量的含义

别再被小名词坑哭了:Python新手常犯的那些隐蔽错误,我用同事的真实bug拆给你看我记得有一次和同事张姐一起追查一个看似随机崩溃的脚本,最后发现罪魁祸首竟然是她把变量命名成了list。说实话...

从零开始:深入剖析 Spring Boot3 中配置文件的加载顺序

在当今的互联网软件开发领域,SpringBoot无疑是最为热门和广泛应用的框架之一。它以其强大的功能、便捷的开发体验,极大地提升了开发效率,成为众多开发者构建Web应用程序的首选。而在Spr...

Python中下划线 ‘_’ 的用法,你知道几种

Python中下划线()是一个有特殊含义和用途的符号,它可以用来表示以下几种情况:1在解释器中,下划线(_)表示上一个表达式的值,可以用来进行快速计算或测试。例如:>>>2+...

解锁Shell编程:变量_shell $变量

引言:开启Shell编程大门Shell作为用户与Linux内核之间的桥梁,为我们提供了强大的命令行交互方式。它不仅能执行简单的文件操作、进程管理,还能通过编写脚本实现复杂的自动化任务。无论是...

一文学会Python的变量命名规则!_python的变量命名有哪些要求

目录1.变量的命名原则3.内置函数尽量不要做变量4.删除变量和垃圾回收机制5.结语1.变量的命名原则①由英文字母、_(下划线)、或中文开头②变量名称只能由英文字母、数字、下画线或中文字所组成。③英文字...

更可靠的Rust-语法篇-区分语句/表达式,略览if/loop/while/for

src/main.rs://函数定义fnadd(a:i32,b:i32)->i32{a+b//末尾表达式}fnmain(){leta:i3...

C++第五课:变量的命名规则_c++中变量的命名规则

变量的命名不是想怎么起就怎么起的,而是有一套固定的规则的。具体规则:1.名字要合法:变量名必须是由字母、数字或下划线组成。例如:a,a1,a_1。2.开头不能是数字。例如:可以a1,但不能起1a。3....

Rust编程-核心篇-不安全编程_rust安全性

Unsafe的必要性Rust的所有权系统和类型系统为我们提供了强大的安全保障,但在某些情况下,我们需要突破这些限制来:与C代码交互实现底层系统编程优化性能关键代码实现某些编译器无法验证的安全操作Rus...

探秘 Python 内存管理:背后的神奇机制

在编程的世界里,内存管理就如同幕后的精密操控者,确保程序的高效运行。Python作为一种广泛使用的编程语言,其内存管理机制既巧妙又复杂,为开发者们提供了便利的同时,也展现了强大的底层控制能力。一、P...