假如你的城市,每台公交车上都装了一个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
相关推荐
在智能手机客户端上,用户可以方便地进行实时公交信息的查询,这对于提高公交系统的效率和便利性具有显著影响。 总之,该文章详细介绍了实时公交查询系统的设计理念、系统架构、技术实现以及核心功能。通过这样的...
在公交车实时显示及定位系统中,采用的是单点动态定位,即车载GPS终端自行获取并计算车辆实时位置,通过无线通信系统将位置信息发送至监控中心,实现车辆的实时监控。这种方法无需外部参考站,但可能存在一定的定位...
本文设计了一款基于Android手机的实时公交查询系统,以解决城市公交系统中的信息不透明和不便捷的问题。该系统由三大模块组成:后台服务器、车辆终端和手机客户端。后台服务器负责存储和更新公交线路、站点、车辆...
系统实现过程中,界面设计应简洁易用,符合Android平台的交互规范,确保用户能够轻松理解和操作。功能模块应包括线路查询、站点查询、路线规划、收藏夹等,满足不同用户的多样化需求。此外,考虑到离线使用的场景,...
"城市公交实时位置手机查询系统设计" 本文设计了一种基于移动客户端的城市公交实时位置查询系统,旨在解决用户无法准确获取公交...系统的设计和实现可以提高公交系统的效率和用户体验,为城市公交优先的实现提供支持。
【基于安卓的公交查询系统设计与实现】 在当今城市生活中,公共交通系统扮演着至关重要的角色。随着移动技术的发展,基于安卓平台的公交查询系统成为了解决城市交通信息获取难题的有效手段。本文主要探讨了一个利用...
底层通常处理大量的基础事务,如实时公交位置更新、线路数据的存储和检索;中间层可能包括数据分析和管理控制,如预测公交到达时间、优化线路调度;顶层则涉及战略决策,如公交网络的长期规划和资源配置。 在实现...
1. **定位功能**:利用GPS(全球定位系统)或网络定位技术,APP能够确定用户当前所在的位置,这是实时公交查询的基础。用户无需手动输入位置,只需开启定位服务,APP就能自动获取并显示最近的公交站点。 2. **指南...
《公交查询系统VC++实现详解》 公交查询系统是日常生活中极为常见的便民工具,它能够帮助用户快速查询公交线路,规划出行路线。本系统采用C++编程语言在Visual Studio环境下进行开发,通过控制台界面与用户交互,...
3. **实时公交位置**:如果集成实时公交数据,系统可以显示公交车当前的位置和预计到达时间。 4. **线路规划**:除了基本的公交线路查询,系统可能还具备根据用户出行时间、交通状况等因素智能规划线路的功能。 5. *...
在智慧公交系统的实现中,这些知识点相互结合,共同构建了一个能够实时监控、调度和管理公交运营的智能化平台。系统可能包括乘客查询、车辆定位、路线规划、排班管理、权限控制等功能,通过集成硬件设备如GPS追踪器...
同时,系统还支持实时公交位置查询,通过GPS定位技术,用户可以了解公交车的实时位置,预测到站时间,提高出行效率。 此外,换乘规划功能也是系统的一大亮点。它综合考虑了公交线路的频次、换乘次数和总耗时等因素...
本系统采用结构化设计的方法来实现系统总体功能,提高系统的各项指标,即将整个系统合理的划分成各个功能模块,正确地处理模块之间和模块内部的联系以及和数据库的联系,定义各模块的内部结构,通过对模块的设计和...
基于Android平台的实时公交查询系统实用文档 本文档是基于Android平台的实时公交查询系统的实用文档,旨在帮助出行者随时随地...本系统旨在帮助出行者随时随地快速选择正确的乘车线路,以提高公交系统的效率和便捷性。
【标题】:“毕业答辩-ASP.NET基于.NET的城市公交查询系统的设计与实现(源代码论文).rar”这个压缩包文件主要包含了一个使用ASP.NET技术在.NET框架下开发的城市公交查询系统的完整设计与实现过程,以及相关的源代码...
公交查询系统的测试和维护是系统实现之后的重要步骤。在测试和维护中,需要对系统进行详细的测试和检查,以确保系统的可靠性和可维护性。 知识点7:公交查询系统的应用前景 公交查询系统的应用前景非常广阔。随着...
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 ...