假如你的城市,每台公交车上都装了一个gps,更幸运的是你还可以获得这些gps上报的位置信息,那如何做一款公交位置查询app,或者公交位置监控软件呢?
宏观上: 实时性(每辆车每10秒上报一次位置信息,全市上万量公交,个接口的吞吐量以及实时性是一个考验)
准确性(如何准确判断每辆车的位置,以及行驶方向)
微观上: 火星坐标系的转换(gps上报的是原生坐标系,而我们的第三方地图控件都是基于火星坐标系的)
公交方向判断(gps上报上来的是每10s的一点,而http无状态,所以服务器就必须保留之前的状态才能判断出方向)
关于gps原生坐标系,以及火星坐标系看了下面2个链接自然会明白
http://bbs.amap.com/thread-18617-1-2.html
http://dnby007.blog.163.com/blog/static/1456565201422725235211/
比较无解的是转化问题,如果没有下面找到的转化算法,我可能要另辟蹊径去辅助修正判断的准确性
http://www.tuicool.com/articles/7VNNRvA
下面是系统架构图
|
1.考虑到量的问题,公交位置收集层可以做成一个web集群,开放给gps上报模块一个web接口,作为生产者将位置信息录入redis中供后续模块使用。
2.数据库中的线路以及站点信息可以加载在内存中,或者后期存在redis中,由分布式系统中的master维护。
3.公交调度计算模块作为消费者,不断的去获得生产者的位置信息,进行计算。此处2个算法 公交方向判定算法和公交到站判定算法,前者 由位置点来判定当前公交是正向还是方向,后者根据方向来判定车辆经过的站点
对于 公交方向判定算法,可以根据近两次距离最近的站点,通过比较2个最近站点的order来判断正向还是反向,(只要距离最近的站点变化,我们就可以迅速获得方向 考虑到公交到底站回头的情况,所以判断方向的算法必须快速响应),设想一下以下这种情况
距离当前位置最近的是站点3,3的order比站点2大,所以依然不会造成方向性判断错误。
但是这种计算方法只是一个瞬时点,作为一个商用系统这种不确定性是很可怕的,所以还要考虑采取记录车子的到站信息来2方面综合判断。
4.在得到车辆方向的基础上,再判断过站就变的简单了,为每个站点设定一个距离阈值,通过比较距离是否小于这个阈值来判断是否过站。
(gps精度基本在20m以内)
其实第三点和第四点是相辅相成的,如果方向判断正确的基础上自然会得到正确的过站信息,亦可以通过推断的方法来校验 线路判断的准确性。
原创文章,转载请声名出处 http://spjich.iteye.com/blog/2264025
相关推荐
本系统采用结构化设计的方法来实现系统总体功能,提高系统的各项指标,即将整个系统合理的划分成各个功能模块,正确地处理模块之间和模块内部的联系以及和数据库的联系,定义各模块的内部结构,通过对模块的设计和...
公交查询系统的毕业论文 需求分析 系统设计 系统测试
4系统功能模块实现 10 4.1 前端页面功能实现 11 4.1.1车次查询模块实现 11 4.1.2站点查询模块实现 11 4.2 后端页面功能实现 12 4.2.1登陆页面的实现 12 4.2.2车次管理页面的实现 13 4.2.3站点管理页面的实现 14 5 ...
基于Android手机的实时公交查询系统设计与实现.pdf
在车辆导航方面,通过GPS车辆监控系统在城市中建立数字化电台,实时发布交通信息,车载设备通过GPS精确定位,结合电子地图和实时的交通信息,自动匹配最优路径,并实现车辆的自动导航。 因此,本系统将GPS技术应用...
即查询公交路线上站点的信息,和查询实时路况功能,对于需要换乘用户来说,还可以进行公交换乘路线查询,即用户可以根据需要去往的地点,通过换乘路线的查询来决定在哪个站点换乘,系统还会进行路况的录入,以便来更...
java代码 结合 lucene 实现的 公交搜索系统 java代码 结合 lucene 实现的 公交搜索系统 java代码 结合 lucene 实现的 公交搜索系统 java代码 结合 lucene 实现的 公交搜索系统 java代码 结合 lucene 实现的 公交...
一个简单实用的公交查询系统,用C++编程,通过控制台实现,各个函数都有注释,方便扩展
# 基于城市公交车辆实时信息分享管理系统的毕业设计实现 本毕业设计旨在实现一个城市公交车辆实时信息分享管理系统。该系统可以帮助城市公交公司实时监控车辆的运营情况,提供准确的公交信息给乘客,同时也可以方便...
基于python实现的公交换成系统源码(求解最短路径+最少换乘问题)带GUI界面.zip 基于python实现的公交换成系统源码(求解最短路径+最少换乘问题)带GUI界面.zip 基于python实现的公交换成系统源码(求解最短路径+最少换乘...
基于Android手机的实时公交查询系统设计与实现 (2).pdf
我国城市公交乘客信息系统的发展处于一个较落后的水平,广大乘客可以获得信息的方式很少,为了解决这种问题,加快发展城市公交信息化,设计一个城市公交查询系统是具有一定实际应用意义的。在此背景下,我开发了这个...
这是一个城市公交查询系统的设计文档,可以作为毕业论文参考。
4系统功能模块实现 12 4.1 前端页面功能实现 12 4.1.1车次查询模块实现 12 4.1.2站点查询模块实现 13 4.2 后端页面功能实现 13 4.2.1登陆页面的实现 13 4.2.2车次管理页面的实现 15 4.2.3站点管理页面的实现 16 5 ...
实现公交查询系统,而且带有GUI界面, 背景:本次实验需要你去完成本系统的初始数据读取。你需要完成ReadData.java 来实现从文件中读取对应的信息并且创建相应的对象。 为了完成本次实验,你需要完成类ReadData。...
基于Android系统的智能公交查询系统的设计与实现.docx基于Android系统的智能公交查询系统的设计与实现.docx基于Android系统的智能公交查询系统的设计与实现.docx基于Android系统的智能公交查询系统的设计与实现.docx...
基于参与式感知的实时公交网站的设计与实现,高晨宇,,随着城市交通问题日益严重,乘坐公交车的人越来越多,带来的问题便是等车难,因此实时公交技术应运而生。随着移动互联网的发展和
基于Android的公交查询系统是一款方便、快捷的公交信息查询应用程序,它可以帮助用户轻松地查询公交线路、站点、车辆到站时间等信息,让用户更方便地规划出行路线。 该应用程序具有以下主要功能: 公交线路查询:...
ASP.NET基于.NET的城市公交查询系统的设计与实现(源代码论文).rar
这是一款基于Android的移动公交查询系统的设计与实现毕业设计,内附,演示视频,需求报告等等,完整的毕设源码附件。