CN111356074A - 公交站点定位方法及装置、服务器、介质 - Google Patents
公交站点定位方法及装置、服务器、介质 Download PDFInfo
- Publication number
- CN111356074A CN111356074A CN201811574601.8A CN201811574601A CN111356074A CN 111356074 A CN111356074 A CN 111356074A CN 201811574601 A CN201811574601 A CN 201811574601A CN 111356074 A CN111356074 A CN 111356074A
- Authority
- CN
- China
- Prior art keywords
- bus
- stop
- time
- passenger
- geographic
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W4/00—Services specially adapted for wireless communication networks; Facilities therefor
- H04W4/02—Services making use of location information
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/23—Clustering techniques
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W4/00—Services specially adapted for wireless communication networks; Facilities therefor
- H04W4/30—Services specially adapted for particular environments, situations or purposes
- H04W4/40—Services specially adapted for particular environments, situations or purposes for vehicles, e.g. vehicle-to-pedestrians [V2P]
- H04W4/42—Services specially adapted for particular environments, situations or purposes for vehicles, e.g. vehicle-to-pedestrians [V2P] for mass transport vehicles, e.g. buses, trains or aircraft
Landscapes
- Engineering & Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Theoretical Computer Science (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Evolutionary Biology (AREA)
- Evolutionary Computation (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Bioinformatics & Computational Biology (AREA)
- Aviation & Aerospace Engineering (AREA)
- Artificial Intelligence (AREA)
- Life Sciences & Earth Sciences (AREA)
- Traffic Control Systems (AREA)
Abstract
本公开揭示了一种公交站点定位方法及装置、服务器、介质,该方法包括:获取经停公交站点的公交车辆的经停时间段;从乘客刷乘车码记录库中,获取乘坐车辆标识是公交车辆的标识、地理位置上报时间落在经停时间段内的乘客刷乘车码记录,其中,乘客刷乘车码记录库中每条乘客刷乘车码记录包括:乘坐车辆标识、上报的地理位置、地理位置上报时间;对获取的乘客刷乘车码记录中的地理位置进行聚类;根据地理位置聚成的类中地理位置个数最大的类,确定公交站点位置。本公开提供的技术方案,解决了公交站点的位置不准确或者部分公交站点丢失的问题。
Description
技术领域
本公开涉及互联网技术领域,特别涉及一种公交站点定位方法及装置、服务器、计算机可读存储介质。
背景技术
目前很多地图软件提供地图服务,地图服务主要通过图形和文字界面为客户提供地理位置和路线的查询服务。用户可以通过地图随时了解全国各大城市的位置情况,并获得到达目的地的路线图、交通状况、路线选择等信息。
人们可以使用Web(网页)地图或是其他移动终端地图软件来查询公交路线,即用户在软件使用界面上输入一个起点和一个终点,软件输出一条或多条公交路线。针对用户选择的公交路线,在地图中会显示出该公交路线经过的站点位置。
但是,很多时候因公交站点的位置变动,数据更新不及时,导致地图中显示的部分公交站点位置不准确或者站点丢失。而人工采集站点的位置信息,费时费力,人力成本较高。
发明内容
为了解决相关技术中公交站点位置不准确或丢失,而人工采集站点位置,费时费力,人力成本较高的问题,本公开提供了一种公交站点自动定位方法,能够实现准确定位,且节省人力成本。
一方面,本公开提供了一种公交站点定位方法,包括:
获取经停所述公交站点的公交车辆的经停时间段;
从乘客刷乘车码记录库中,获取乘坐车辆标识是所述公交车辆的标识、地理位置上报时间落在所述经停时间段内的乘客刷乘车码记录,其中,乘客刷乘车码记录库中每条乘客刷乘车码记录包括:乘坐车辆标识、上报的地理位置、地理位置上报时间;
对获取的乘客刷乘车码记录中的地理位置进行聚类;
根据地理位置聚成的类中地理位置个数最大的类,确定所述公交站点的位置。
一方面,本公开还提供一种公交站点定位装置,包括:
经停时间获取模块,用于获取经停所述公交站点的公交车辆的经停时间段;
乘车记录获取模块,用于从乘客刷乘车码记录库中,获取乘坐车辆标识是所述公交车辆的标识、地理位置上报时间落在所述经停时间段内的乘客刷乘车码记录,其中,乘客刷乘车码记录库中每条乘客刷乘车码记录包括:公交车辆的标识、上报的地理位置、地理位置上报时间;
地理位置聚类模块,用于对获取的乘客刷乘车码记录中的地理位置进行聚类;
公交站点定位模块,用于根据地理位置聚成的类中地理位置个数最大的类,确定所述公交站点的位置。
此外,本公开还提供了一种服务器,所述服务器包括:
处理器;
用于存储处理器可执行指令的存储器;
其中,所述处理器被配置为执行上述公交站点定位方法。
本公开还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序可由处理器执行完成上述公交站点定位方法。
本公开的实施例提供的技术方案可以包括以下有益效果:本公开提供的技术方案,通过针对经停所述公交站点的公交车辆的经停时间段,获取不同乘客在该经停时间段乘坐这些公交车辆的记录中上报的地理位置,对获取的地理位置进行聚类,从而得到公交站点的位置。该方案可以对已有的公交站点进行位置纠正,或者对新增的公交站点进行定位,解决了公交站点的位置不准确或者部分公交站点丢失的问题,由于无需人工采集站点位置,节省了人力成本,缩短了进行公交站点定位的时间。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性的,并不能限制本公开。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并于说明书一起用于解释本公开的原理。
图1是本公开示例性实施例示出的公交站点定位方法的应用环境的构架图;
图2A-2H是本公开示例性实施例示出的乘客终端和服务器的界面示意图;
图3是根据一示例性实施例示出的一种公交站点定位方法的流程图;
图4是根据一示例性实施例示出的图3对应实施例中步骤310的细节流程图;
图5是根据一示例性实施例示出的图3对应实施例中步骤310的细节流程图;
图6是根据一示例性实施例示出的图3对应实施例中步骤310的细节流程图;
图7是根据一示例性实施例示出的图6对应实施例中停止时间阈值的获得流程图;
图8是根据一示例性实施例示出的异常点的示意图;
图9是根据一示例性实施例示出的地理位置个数最大的类的地理位置点示意图;
图10是根据一示例性实施例示出的对图9中地理位置求平均地理位置得到的公交站点的位置示意图;
图11是在电子地图中展示公交线路的界面示意图;
图12是根据一示例性实施例示出的一种公交站点定位装置的框图;
图13是根据一示例性实施例示出的一种服务器的硬件结构图。
具体实施方式
现在将参考附图更全面地描述示例实施方式。然而,示例实施方式能够以多种形式实施,且不应被理解为限于在此阐述的范例;相反,提供这些示例实施方式使得本公开的描述将更加全面和完整,并将示例实施方式的构思全面地传达给本领域的技术人员。附图仅为本公开的示意性图解,并非一定是按比例绘制。图中相同的附图标记表示相同或类似的部分,因而将省略对它们的重复描述。
此外,所描述的特征、结构或特性可以以任何合适的方式结合在一个或更多示例实施方式中。在下面的描述中,提供许多具体细节从而给出对本公开的示例实施方式的充分理解。然而,本领域技术人员将意识到,可以实践本公开的技术方案而省略所述特定细节中的一个或更多,或者可以采用其它的方法、组元、步骤等。在其它情况下,不详细示出或描述公知结构、方法、实现或者操作以避免喧宾夺主而使得本公开的各方面变得模糊。
附图中所示的一些方框图是功能实体,不一定必须与物理或逻辑上独立的实体相对应。可以采用软件形式来实现这些功能实体,或在一个或多个硬件模块或集成电路中实现这些功能实体,或在不同网络和/或处理器装置和/或微控制器装置中实现这些功能实体。
图1是本公开示例性实施例示出的公交站点定位方法的应用环境的构架图。本公开所涉及的应用场景包括服务器101。
服务器101的数据库中存储有不同公交车辆在每个公交站点的经停时间段,以及乘客刷乘车码记录,从而服务器101可以采用本公开提供的公交站点定位方法,从数据库中获取公交车辆经停某个公交站点的经停时间段、获取乘坐车辆标识是该公交车辆的标识、地理位置上报时间落在该经停时间段内的乘客刷乘车码记录,通过对所获取乘客刷乘车码记录中的地理位置进行聚类,确定该公交站点的位置。
根据需要,本公开所涉及的体系构建还包括乘客终端102以及车辆终端103。服务器101分别与乘客终端102和车辆终端103进行通信。具体而言,乘客终端102可以向服务器101上报上述乘客刷乘车码记录。乘客上下车时,让车辆终端103扫一下乘客终端102生成的代表乘客身份的二维码。然后,乘客终端102可以向服务器101上报乘客刷乘车码记录。车辆终端103可以向服务器101上报公交车辆经停每个公交站点的经停时间。当然,服务器101也可以从自身的数据库中获得公交车辆经停每个公交站点的经停时间。这样,服务器101基于乘客终端102和车辆终端103上报的数据,采用本公开提供的方法,可以在电子地图中确定公交站点的具***置。
图1中的乘客终端102可以是手机、PAD、智能手表、手环、无线上网本等各种形式的终端,可以进行乘车码的显示。图1中的车辆终端103可以是带有扫码器的终端,根据乘车码类型的不同,扫码器可以是二维码扫码器,条形码扫码器等。车辆终端103可以安装在公交车辆的前门和/或后门,也可以由售票员手持。
图1中的服务器101可以是由一台计算机构成的服务器,也可以是由多台计算机合起来构成的集群服务器,也可以是只占用一台计算机的一部分的虚拟服务器,也可以是分别占用多台计算机的各自的一部分或全部的虚拟集群服务器。尤其在云环境下,虚拟集群服务器应用得比较普遍。
下面,参考图2A-2H,结合具体应用场景,简单描述一下在实际应用中实现公交站点定位的过程。
图2A、2B是服务器的显示界面图。服务器可以获取每辆公交车辆在各公交站点的经停时间段,即按公交车辆统计(见图2A)。服务器也可以获取某一个公交站点经停的每个公交车辆的经停时间段,即按公交站点统计(见图2B)。
图2C、2D是乘客终端的界面示意图。在上车时,乘客终端可以进行乘车码的展示(见图2C)。在车辆终端扫描到乘客终端的乘车码后,车辆终端通知服务器乘车用户标识、乘坐车辆标识、获取乘车码时间(即刷码时间)以及公交站点标识等。进而服务器向乘客终端反馈已上车通知(包括乘坐车辆标识、刷码时间等),由此乘客终端的用户界面提示已完成上车扫码(见图2D),根据需要,乘客终端还可以进行乘坐车辆标识、刷码时间等的显示。
图2E是服务器的界面示意图。在一种实施例中,乘客终端可以在开启乘车码应用后,定时向服务器上报当前地理位置,由服务器对该乘客终端上报的地理位置、地理位置上报时间、以及乘客终端标识相关联进行存储。如图2C、2D所示,在乘客刷码时,服务器还接收到车辆终端发来的车辆标识、刷码时间和相关联的乘客终端标识,服务器将可以该车辆标识、刷码时间与从乘客终端上报的地理位置、地理位置上报时间按乘客终端标识关联在一起,形成乘客刷乘车码记录。每条乘客刷乘客码记录包括:乘坐车辆标识、上报的地理位置、地理位置上报时间、刷码时间等(见图2E)。可选的,每个乘客终端可以定时上报地理位置,因此,对于每个乘客终端,可能在刷码前后,产生多条地理位置信息,进而产生多条乘客刷乘客码记录。在一个实施例中,可能仅采用那些上报地理位置的时间与刷码时间相差在时间阈值之内的那些乘客刷乘客码记录。
图2F、2G是乘客终端的界面示意图。在下车时,乘客终端可以再次进行乘车码的展示(见图2F),车辆终端采集到乘客终端显示的乘车码后,车辆终端通知服务器乘车用户标识、乘坐车辆标识、获取乘车码时间(即刷码时间)等,进而服务器在判断出该乘车用户标识之前已处于上车状态时,向乘客终端反馈已下车通知(包括乘坐车辆标识、刷码时间等),由此乘客终端的用户界面提示已完成下车扫码(见图2G)。
图2H是服务器的界面示意图。与乘客上车的过程类似,乘客终端可以在开启乘客码后定时向服务器上报当前地理位置,由服务器对该乘客终端上报的地理位置、地理位置上报时间、以及乘客终端标识相关联进行存储。由于如图2F、2G所示,在乘客刷码时,服务器还接收到车辆终端发来的车辆标识、刷码时间和相关联的乘客终端标识,服务器将可以该车辆标识、刷码时间与从乘客终端上报的地理位置、地理位置上报时间按乘客终端标识关联在一起,形成乘客刷乘车码记录。每条乘客刷乘客码记录包括:乘坐车辆标识、上报的地理位置、地理位置上报时间、刷码时间等(见图2H)。每个乘客终端定时上报地理位置和时间,因此,对于每个乘客终端,可能在刷码前后,产生多条地理位置信息,进而产生多条乘客刷乘客码记录。在一个实施例中,可能仅采用那些上报地理位置的时间与刷码时间相差在时间阈值之内的那些乘客刷乘客码记录。
由此,服务器根据图2A或图2B获得的经停某个公交站点的公交车辆的经停时间段,以及乘客刷乘车码记录库中,乘坐车辆标识是该公交车辆的标识、地理位置上报时间落在该经停时间段内的乘客刷乘车码记录(如图2E和图2H),对这些乘客刷乘车码记录中的地理位置进行聚类,得到该公交站点在电子地图中的位置。
应当注意,上述图2A-2H的界面只是一种应用场景下的界面的例示,只是为了便于后续说明和理解本公开实施例的应用场景。这些界面可以被重新设计和改变,这些重新设计和改变都落在本公开的框架之内。
图3是根据一示例性实施例示出的一种公交站点定位方法的流程图。该方法的适用范围和执行主体可以是服务器,该服务器可以是图1所示应用环境中的服务器101。
电子地图(Electronic map),即数字地图,是利用计算机技术,以数字方式存储和查阅的地图。用户只需输入起点和终点,通过电子地图即可以查询出行线路,输出乘坐的公交线路、方向以及换乘站等。通过电子地图还可以查询每一路公交线路的行驶路线以及经过的公交站点位置及站点名称。这里的电子地图是指一切可以以图形的形式显示地理位置的工具。它不限于高德地图、百度地图等专用地图,它还可以是其它应用(例如打车软件、订餐软件)中用到的对该应用进行辅助支撑、并非是该应用的主功能的电子地图。
本公开提供的方案可以确定电子地图中公交站点的位置,由此在电子地图上展示公交线路时,可以准确标示出该公交线路经过的公交站点的位置,利于乘客按照电子地图的指示,到指定位置的公交站点进行乘车。本公开提供的方案可以用于新建公交站点的定位或者对现有公交站点位置的纠正。
如图3所示,本公开示例性实施例提供的公交站点定位方法可以包括以下步骤:
步骤310,获取经停所述公交站点的公交车辆的经停时间段;
步骤320,从乘客刷乘车码记录库中,获取乘坐车辆标识是所述公交车辆的标识、地理位置上报时间落在所述经停时间段内的乘客刷乘车码记录,其中,乘客刷乘车码记录库中每条乘客刷乘车码记录包括:乘坐车辆标识、上报的地理位置、地理位置上报时间;
步骤330,对获取的乘客刷乘车码记录中的地理位置进行聚类;
步骤340,根据地理位置聚成的类中地理位置个数最大的类,确定所述公交站点位置。
下面对这些步骤进行详细描述。
在步骤310中,获取经停所述公交站点的公交车辆的经停时间段。
公交站点是指由公交公司规定的公交车辆在行驶途中应该停靠的位置名称。例如,前门站、鼓楼站、王府井站等。公交车辆是指按照规定路线行驶的公共交通车辆,为区分不同行驶路线的公交车辆,以数字命名为1路、12路、7路等等。每一条行驶路线可以包括一辆或多辆按照该路线行驶的公交车辆,经停某个公交站点的公交车辆可以是一辆或多辆。
经停时间段是指公交车辆在某个公交站点停车的起始时间点到结束时间点。在一种实施例中,停车的起始时间点可以是开启车门的时间点、结束时间点可以是关闭车门的时间点。当然,在某个公交站点停车的起始时间点也可以是检测到行车速度为0的时间点,结束时间点可以为检测到行车速度从0开始变化的时间点。
在一个实施例中,服务器101本身就以公交站点为索引,存储了各个公交站点的经停各公交车辆、以及经停时间段,如图2B所示。在这种情况下,获取经停所述公交站点的公交车辆的经停时间段,可以直接以所述公交站点为索引进行获取。
在另一个实施例中,服务器101以公交车辆为索引,存储了各个公交车辆经停的每一公交站点、和经停每一公交站点的经停时间段,如图2A所示。在这种情况下,获取经停所述公交站点的公交车辆的经停时间段,包括:
确定索引下存储的内容包括所述公交站点的索引;
在确定的索引下,确定与所述公交站点对应的经停时间段。
如图2A所示,针对公交站点“科学馆站”,确定三个索引“21路”、“17路”、“2路”下都含有该内容,然后在确定的三个索引下,分别找到与“科学馆站”对应的经停时间段,分别是6:15-6:18,6:14-6:16,8:00-8:02。
在一种实施例中,如图4所示,上述步骤310具体可以包括以下步骤:
步骤311,获取经停所述公交站点的公交车辆的起始站发出时间、所述公交车辆从起始站到所述公交站点经过的站数、所述公交车辆的每站经停时间和相邻站间行驶时间;
步骤312,基于经停所述公交站点的公交车辆的起始站发出时间、所述公交车辆从起始站到所述公交站点经过的站数、所述公交车辆的每站经停时间和相邻站间行驶时间,确定所述经停时间段。
需要解释的是,在步骤311中,经停某个公交站点的公交车辆可以是一个或多个公交路线的车辆。例如,对于科学馆,可能21路、17路、2路都经停该公交站点。对于某一个路线来说,由于公交路线一般按车辆顺序发车(例如,公交路线21有5辆车,分别标识为21-A、21-B、21-C、21-D、21-E,按照21-A、21-B、21-C、21-D、21-E的顺序离开始发站),这样,在某个特定经停时间段经停某一公交站点的一般是同一标识的车辆。这样,该公交车辆在某一公交站点的经停时间就是对应的公交路线在该公交站点的经停时间。
起始站发出时间可以是经停该公交站点的某一辆公交车辆从始发站开出的时间点。举例来说,经停前门站的某辆公交车辆从始发站开出的时间点是7:00:00。由于每辆公交车辆在行驶途中需停靠的公交站点是由公交公司事先规划好的,所以该公交车辆从起始站到该公交站点(例如前门站)经过的站数是已知量,经过的站数可以认为是从起始站到该公交站点之间的站点数量。该公交车辆的每站经停时间和相邻站行驶时间可以是事先规划好的已知量,也可以是在该公交车辆行驶途中采集的。
举例来说,公交车辆的车辆终端可以开启计时功能,在行驶途中向服务器发送每站经停时间以及相邻站间行驶时间。其中,每站经停时间可以相同也可以不同,每站经停时间可以是开启车门到关闭车门之间的时间,例如三分钟。相邻站行驶时间是指从一个站点行驶到下一个站点的时间,相邻站行驶时间可以相同也可以不同,相邻站行驶时间可以是10分钟。
需要说明的是,经停某个公交站点的公交车辆的起始站发出时间、该公交车辆从起始站到该公交站点经过的站数、每站经停时间以及相邻站行驶时间可以在获取这些数据之前,事先存储在服务器的数据库中。当然,这些数据也可以由车辆终端上报,并存储在服务器的数据库中。
需要解释的是,步骤312中经停某个公交站点的公交车辆在该公交站点的经停时间段可以根据该公交车辆的起始站发出时间、从起始站到该公交站点经过的站数、每站经停经停时间以及相邻站间行驶时间进行计算。假设,经停前门站的某辆公交车辆(例如编号999)从始发站开出的时间点是7:00:00,从始发站到该前门站经过的站数(即中间的站点数量)是2站,也就是说,前门站是第四站。假设从始发站到第二站行驶时间8分钟,在第二站经停2分钟,从第二站到第三站行驶时间7分钟,在第三站经停1分钟,从第三站到第四站行驶时间6分钟,由此,到第四站前门站需历时24分钟,到达时间点为7:24:00,假设在第四站经停1.5分钟,则在第四站前门站经停时间段为7:24:00~7:25:30。
通过上述实施例提供的方案确定经停某个公交站点的公交车辆的经停时间段,无需人工操作,且经停时间段的计算结果更准确,从而便于后续准确获取在经停时间段内的乘客刷乘车码记录。
在一种示例性实施例中,上述步骤312具体包括:设经停所述公交站点的公交车辆的起始站发出时间为t0,所述公交车辆从起始站到所述公交站点经过的站数为n,所述公交车辆的每站经停时间为Δt,所述相邻站间行驶时间为ΔT,所述经停时间段为(Pn+1,Qn+1),Pn+1为所述经停时间段的开始时间点,Qn+1为所述经停时间段的结束时间点,则
Pn+1=t0+(n+1)ΔT+nΔt
Qn+1=t0+(n+1)ΔT+(n+1)Δt。
需要说明的是,在该实施例中,默认公交车辆是严格按照规定的时间进行停靠和行驶的,并且在每一站经停的时间相同,每两个相邻站间行驶时间是相同的。
举例来说,假设起始站发出时间t0为7:00:00,从起始站到某个公交站点A经过的站数n为2站,每站经停时间Δt为2分钟,相邻站间行驶时间ΔT为7分钟,由此,从起始站到达公交站A需历时(n+1)ΔT+nΔt=25分钟,在公交站点A经停时间段的开始时间点Pn+1为7:25:00,在公交站点A经停时间段的结束时间点Qn+1为7:27:00。
上述实施例提供的方案,通过保证每个公交站点经停时间相同,相邻站间行驶时间也相同,既无需人工操作,又简化了经停时间段的计算过程。
在其他实施例中,如图5所示,上述步骤310具体可以包括以下步骤:
步骤311’,接收所述公交车辆的车辆终端发出的经停开始指令,所述经停开始指令中具有所述公交车辆的标识和公交站点的标识;
步骤312’,接收所述公交车辆的车辆终端发出的经停结束指令,所述经停结束指令中具有所述公交车辆的标识和公交站点的标识;
步骤313’,将接收到所述经停开始指令的时间、与接收到所述经停结束指令的时间,分别确定为所述经停时间段的开始时间点、所述经停时间段的结束时间点。
需要说明的是,每辆公交车辆安装有对应的车辆终端。公交车辆进站时,可以由司机点击公交站点对应的按钮,触发车辆终端向服务器发送经停开始指令。在公交车辆出站时,也可以由司机点击公交站点对应的按钮,触发车辆终端向服务器发送经停结束指令。其中,经停开始指令和经停结束指令中可以携带该公交车辆的标识以及公交站点的标识。公交车辆的标识可以是公交车辆的编号或车牌号,还可以是公交线路的标识加上该公交线路中每个公交车辆的编号。公交站点的标识可以是公交站点的名称、编号等。
经停开始指令和经停结束指令也可以不响应于司机在车辆终端上点击对应的按钮来发出,也可以采取司机在司机专用的应用的页面上点击“开始经停”和“结束经停”来发生。这时,经停开始指令和经停结束指令不是由车辆终端发出,而是由司机携带的便携终端发出。
服务器接收公交车辆的车辆终端发送的经停开始指令和经停结束指令,根据经停开始指令和经停结束指令中携带的公交车辆的标识和公交站点的标识,将接收到经停开始指令的时间作为该公交车辆在该公交站点经停的开始时间点,将接收到经停结束指令的时间作为该公交车辆在该公交站点经停的结束时间点。
由于实际可能每一站上车人数不同、行驶途中也可能存在堵塞现象,因而每一站的经停时间和相邻站间的行驶时间都会存在变化,上述实施例提供的技术方案由用户触发车辆终端发送经停开始指令和经停结束指令,便于服务器获得更加与实际情况相符的,公交车辆的经停时间段。
在其他实施例中,如图6所示,上述步骤310具体可以包括以下步骤:
步骤311”,接收所述公交车辆的车辆终端响应于检测到车辆停止时间超过停止时间阈值而发出的第一指令,所述第一指令中具有车辆停止的位置;
步骤312”,查找各公交站点标识与所属区域对应关系表,确定所述车辆停止的位置所在的所述区域对应的公交站点标识;
步骤313”,将接收到第一指令的时间减去所述停止时间阈值的结果,确定为所述经停时间段的开始时间点;
步骤314”,接收所述车辆终端响应于检测到车辆开始运动而发出的第二指令;
步骤315”,将接收到第二指令的时间,确定为所述经停时间段的结束时间点。
需要说明的是,公交车辆中可以安装速度传感器,速度传感器检测到车辆速度为0可以认为车辆停止。在步骤311”中,当车辆终端的速度传感器检测到车辆停止时间超过时间阈值时,利用车辆终端自带的定位***(例如GPS***)获取车辆终端所处的位置,即车辆停止的位置。车辆终端向服务器发送第一指令,该第一指令具有车辆停止的位置。服务器接收该第一指令。停止时间阈值可以设置成大于历史上紧急刹车或道路拥堵所造成的车辆静止的平均时间或该平均时间乘以一定比例。其目的是减少将车辆刹车或道路拥塞造成的车辆静止误认成车辆进站的情况。例如,统计紧急刹车或道路拥堵所造成的车辆静止的平均时间是15s,则可以将15秒设置为停止时间阈值。
在步骤312”中,服务器查找各公交站点标识与所属区域对应关系表。也就是说,在一个表中记录了每个公交站点标识对应的区域。
在一个实施例中,公交站点标识与所属区域对应关系表通过以下方式获得:
将不同于定位所述公交站点的电子地图的另一电子地图分成相同的方格,每个方格作为一个区域;
将所述另一电子地图上所述区域中含有的公交站点的标识与该方格区域对应存储。
如果在所述另一电子地图上,该方格区域中含有公交站点,则将所述公交站点的标识与该方格区域对应存储。如果在另一电子地图上,该方格区域中不含有公交站点,则不存储该方格区域。
例如,如果本公开实施例要实现“公交出行”应用中的各公交站点的定位,该“公交出行”应用中的电子地图是定位所述公交站点的电子地图。另一电子地图可以是高德地图,或百度地图。该另一电子地图中的各公交站点的位置可能是不准确的,如果准确就可以直接采用该位置,而不需要本公开实施例的定位方法,但其只是用来确定公交站点所在的一个方格区域,因此,这种不准确不会给确定其所在的方格区域造成太大的影响。
上述实施例通过简单的方法建立了公交站点标识与所属区域对应关系表,减少了建立公交站点标识与所属区域对应关系表的成本。
在一个实施例中,查找各公交站点标识与所属区域对应关系表,确定所述车辆停止的位置所在的所述区域对应的公交站点标识,包括:
确定所述车辆停止的位置所属的区域;
在各公交站点标识与所属区域对应关系表中,查找到与该区域对应的公交站点标识;
确定查找到的各公交站点标识对应的位置与车辆停止的位置的距离;
将所述距离最小的公交站点标识确定为所述车辆停止的位置所在的所述区域对应的公交站点标识。
由于上述实施例中,每个区域用一个方格标识,方格的四个角的位置坐标就代表了这个方格的位置。如果车辆停止的位置的坐标在这个方格的位置中间,则这个方格区域就是车辆停止的位置所述的区域。
由于在一个区域中,可能有多个公交站点标识,在这种情况下,需要逐一确定每个公交站点标识对应的位置与车辆停止的位置的距离,找到距离最小的一个公交站点标识,作为所述车辆停止的位置所在的所述区域对应的公交站点标识。也就是说,车辆最有可能是停在了这个公交站点。
通过上述查找各公交站点标识与所属区域对应关系表的方式,以比较低的执行成本确定出了车辆停在的公交站点。
需要解释的是,车辆终端检测到车辆停止时间超过停止时间阈值时发出第一指令,由此在步骤313”中,服务器将接收第一指令的时间减去停止时间阈值可以认为是车辆在该公交站点经停的开始时间点。其中,步骤312”和步骤313”的先后顺序不限。
在步骤314”中,当车辆终端的速度传感器检测到车辆开始运动时,即速度从0开始变化时,服务器接收车辆终端发送的第二指令,即认为停在该站点已经结束,又开始下一段行驶。在步骤315”中,服务器可以将接收到第二指令的时间认为是车辆在该公交站点经停的结束时间点。上述得到的公交车辆在该公交站点经停的开始时间点和结束时间点,即为经停该公交站点的公交车辆的经停时间段。
举例来说,假设停止时间阈值为1分钟,车辆终端在检测到车辆停止时间大于1分钟时,向服务器发送第一指令,假设服务器在7:01:00接收到车辆终端发送的第一指令。由此,服务器可以得到第一指令指示的车辆停止位置,并且确定车辆经停的开始时间点为7:00:00,服务器根据每个公交站点标识与所属区域的对应关系,可以确定车辆停止位置所在区域对应的公交站点标识。假设服务器在7:03:03接收到车辆终端发送的第二指令,则服务器可以确定车辆在该公交站点经停的结束时间点为7:03:03,在该公交站点经停的公交车辆的经停时间段为7:00:00—7:03:03。
上述实施例提供的技术方案,解放了用户操作,并且公交车辆经停时间段的计算简单,实现了获取公交车辆在公交站点经停时间段的智能化。
在步骤320中,从乘客刷乘车码记录库中,获取乘坐车辆标识是所述公交车辆的标识、地理位置上报时间落在所述经停时间段内的乘客刷乘车码记录,其中,乘客刷乘车码记录库中每条乘客刷乘车码记录包括:乘坐车辆标识、上报的地理位置、地理位置上报时间。
需要解释的是,乘客刷乘车码记录库是指存储有乘客刷乘车码记录的数据库。
在一种实施例中,乘客终端可以在启动乘车码小程序后,按照预设时间间隔定时向服务器上报当前地理位置,服务器对乘客终端上报的地理位置、地理位置上报时间与乘客终端标识相关联地进行存储。在乘客刷码时,服务器还接收到车辆终端发来的车辆标识、刷码时间和相关联的乘客终端标识,服务器将可以该车辆标识、刷码时间与从乘客终端上报的地理位置、地理位置上报时间按乘客终端标识关联在一起,形成乘客刷乘车码记录。每条乘客刷乘客码记录包括:乘坐车辆标识、上报的地理位置、地理位置上报时间、刷码时间等。每个乘客终端定时上报地理位置和时间,因此,对于每个乘客终端,可能在刷码前后,产生多条地理位置信息,进而产生多条乘客刷乘客码记录。在一个实施例中,可能仅采用那些上报地理位置的时间与刷码时间相差在时间阈值之内的那些乘客刷乘客码记录。
乘坐车辆标识是指乘客乘坐的公交车辆的标识,该乘坐车辆标识可以是乘客刷乘车码时所在公交车辆的标识,乘坐车辆标识可以是车辆的编号或车牌号等。上报的地理位置可以是指乘客终端定时上报的地理位置。上报地理位置的时间即上报的定时,它可以在刷码时间前,也可以在刷码时间点,也可以在刷码时间后。因此,上报的地理位置可以是乘客终端刷码前后或刷码时乘客终端采集到的地理位置。在一个实施例中,可以只选用那些上报地理位置的时间点与刷码时间相差小于时间阈值的那样的地理位置来进行本公开实施例中公交站点的定位。地理位置可以是包含经度和纬度的GPS(Global PositioningSystem,全球定位***)数据。
具体的,服务器获取经停某个公交站点的公交车辆的经停时间段后,服务器可以根据经停该公交站点的公交车辆的经停时间段,从上述乘客刷乘车码记录库中找出乘坐车辆标识是该公交车辆的标识、地理位置上报时间在该经停时间段内的乘客刷乘车码记录,获得该乘客刷乘车码记录中包含的上报的地理位置。由于乘客刷乘车码记录库中包含不同乘客终端的乘客刷乘车码记录,所以从乘客刷乘车码记录库中可能获取到乘坐车辆标识是该公交车辆的标识以及地理位置上报时间在该经停时间段内(但可能是在刷码时间前、后或刷码时间点)的多个乘客终端的乘客刷乘车码记录。
在步骤330中,对获取的乘客刷乘车码记录中的地理位置进行聚类。
需要解释的是,一个乘客终端上报的地理位置不够准确,本公开服务器根据经停某个公交站点的公交车辆的经停时间段,可以从乘客刷乘车码记录库中获取到乘坐车辆标识是该公交车辆的标识以及地理位置上报时间在该经停时间段内的多个乘客终端的乘客刷乘车码记录。进而可以对获取的多条乘客刷乘车码记录中的地理位置进行聚类。
其中,将物理或抽象对象的集合分成由类似的对象组成的多个类的过程被称为聚类。由聚类所生成的簇是一组数据对象的集合,这些对象与同一个簇中的对象彼此相似,与其他簇中的对象相异。对获取的乘客刷乘车码记录中的地理位置进行聚类是指对获取的多条乘车刷乘车码记录中的地理位置进行分类,将相近的地理位置归为一类,保证同一类的地理位置距离接近,与其他类中的地理位置距离较远。
举例来说,可以采用DBSCAN(密度聚类)算法,DBSCAN是一种基于密度的聚类算法,这类密度聚类算法一般假定类别可以通过样本(例如本公开中的地理位置点)分布的紧密程度决定。同一类别的样本,他们之间是紧密相连的,也就是说,在该类别任意样本周围不远处一定有同类别的样本存在。通过将紧密相连的样本划为一类,这样就得到了一个聚类类别。通过将所有各组紧密相连的样本划为各个不同的类别,就得到了最终的所有聚类类别结果。
具体的,DBSCAN是将一个核心点与其密度可达的所有对象构成一个聚类。参数(∈,MinPts)用来描述邻域的样本分布紧密程度,其中,∈描述了某一样本的邻域距离阈值,也就是邻域半径(eps),在一种实施例中eps=30米。MinPts描述了与某一样本的距离为∈的邻域中样本个数的阈值,也就是最小包含点数(min_samples),在一种实施例中,min_samples=max(int(获取的记录数/5),2)。也就是说,每一类包含的地理位置点不少于获取的所有位置点的20%且至少应大于2个位置点。如果与某个地理位置点的距离小于eps的地理位置点的数量大于min_samples,则该地理位置点可以认为是核心点,该地理位置点与其密度可达的所有对象构成一个聚类。其中,密度可达是指存在一个从p(地理位置点)到q(地理位置点)的直接密度可达的对象链,则称p密度可达q。如果q是一个核心点,p属于q的邻域(即p到q的距离小于eps),则称p直接密度可达q。
其中,地理位置点与地理位置点之间的距离可以采用球面距离函数进行计算。球面距离函数是计算球面上两点间距离的公式。举例来说,假设点A的地理位置为纬度角β1,经度角α1;点B的地理位置为纬度角β2,经度角α2,则距离S=R·arc cos[cosβ1cosβ2cos(α1-α2)+sinβ1sinβ2],其中R为球体半径,本公开中R为地球半径。
在步骤340中,根据地理位置聚成的类中地理位置个数最大的类,确定所述公交站点的位置。
需要解释的是,步骤330对获取的乘客刷乘车码记录中的地理位置进行聚类,可以将地理位置聚成多个类,每一类具有若干个地理位置,进而可以从聚成的多个类中,找到地理位置个数最多的一个类,即获得步骤340中地理位置聚成的类中地理位置个数最大的类。
具体的,根据该地理位置个数最大的类中的地理位置点,通过寻找这些地理位置点的中间点,可以将这些地理位置点的中间点作为步骤310中公交站点位置点。
下表1是针对同一公交站点获取到的乘客刷乘车码记录中的地理位置进行聚类的结果。
表1针对同一公交站点的地理位置聚类结果
纬度 | 经度 | 分类变量 | 纬度 | 经度 | 分类变量 |
23.13011200 | 113.33364000 | 0 | 23.13352600 | 113.33391600 | -1 |
23.13005829 | 113.33370972 | 0 | 23.13071060 | 113.33382416 | 1 |
23.12999000 | 113.33360000 | 0 | 23.13012500 | 113.33382400 | 0 |
23.13071000 | 113.33390000 | 1 | 23.13000870 | 113.33380127 | 0 |
23.13011200 | 113.33366000 | 0 | 23.13075066 | 113.33389282 | 1 |
23.13006210 | 113.33385468 | 0 | 23.13064384 | 113.33382416 | 1 |
23.13012500 | 113.33382400 | 0 | 23.13083267 | 113.33392334 | 1 |
23.13083267 | 113.33392334 | 1 | 23.13012500 | 113.33382400 | 0 |
23.13003000 | 113.33390000 | 0 | 23.13047028 | 113.33395386 | 1 |
23.12987328 | 113.33388519 | 0 | 23.12986000 | 113.33370000 | 0 |
23.13079643 | 113.33385468 | 1 | 23.13073540 | 113.33376312 | 1 |
23.13073000 | 113.33410000 | 1 | 23.13013800 | 113.33367000 | 0 |
22.56983600 | 113.22960000 | -1 | 23.13074000 | 113.33390000 | 1 |
23.13083267 | 113.33392334 | 1 | 23.12990379 | 113.33386993 | 0 |
23.12997000 | 113.33370000 | 0 | 22.56983600 | 113.22960000 | -1 |
23.13012100 | 113.33366000 | 0 | 23.13071000 | 113.33370000 | 1 |
23.13054085 | 113.33396912 | 1 |
如上表1所示,针对该公交站点一共存在33个乘客刷乘车码记录中的地理位置。使用DBSCAN(设eps为30米,min_samples=33/5,地理位置点之间的距离采用球面距离函数)算法对这33个地理位置进行聚类,得到cluster(分类变量)=0的地理位置个数为16个,cluster=1的地理位置个数为14个,cluster=-1的地理位置个数为3个。换句话说,将33个地理位置聚成3类,第一类的地理位置个数为16个,第二类的地理位置个数为14个,第三类的地理位置个数为3个。其中,第一类(cluster=0)属于地理位置个数最大的类。根据第一类的16个地理位置,可以确定该公交站点在电子地图中的位置。公交站点在电子地图中的位置包括公交站点在电子地图中的经度和纬度。
在一种示例性实施例中,上述步骤340具体包括:从地理位置聚成的类中地理位置个数最大的类中,任取一个地理位置,作为所述公交站点位置。
以表1举例来说,对获取的33个地理位置进行聚类,可以聚成3类,即地理位置聚成的类可以是3类,从这三类中找出地理位置个数最大的类,即分类变量为0,地理位置个数为16的这一类。从这16个地理位置中任取一个地理位置,作为步骤310中公交站点在电子地图中的位置。
通过从地理位置个数最大的类中任取一个地理位置,作为公交站点位置,公交站点的位置确定更加简单、快捷。
在其他实施例中,上述步骤340具体包括:对地理位置聚成的类中地理位置个数最大的类中所有地理位置求平均地理位置,作为所述公交站点的位置。
其中,平均地理位置是指地理位置点所对应坐标的平均值,举例来说,平均地理位置可以是地理位置点所对应经度的平均值和地理位置点所对应纬度的平均值。
具体的,在步骤330之后,从地理位置聚成的类中找出地理位置个数最大的类,对该地理位置个数最大的类中的所有地理位置,求平均地理位置。具体可以通过计算这所有地理位置的平均纬度值和平均经度值,将该平均经度值和平均纬度值作为公交站点位置。上述方案融合了最密集类中的所有位置点,由此得到的公交站点的位置更加准确。
在其他实施例中,上述步骤340具体包括:对地理位置聚成的类中地理位置个数最大的类中的核心地理位置求平均地理位置,作为所述公交站点位置。
需要说明的是,以某个地理位置为圆心,半径为eps的圆内,如果存在地理位置的数量大于min_samples,则该地理位置可以称为核心地理位置。从地理位置聚成的所有类中找出地理位置个数最大的类,从该类中找出所有的核心地理位置,并求这些核心地理位置的平均地理位置,作为公交站点位置。
在一种示例性实施例中,上述步骤310具体包括:获取经停所述公交站点的所有公交车辆的经停时间段;上述步骤330具体包括:针对经停所述公交站点的每一个公交车辆,对获取的带有该公交车辆的标识的乘客刷乘车码记录中的地理位置分别进行聚类;上述步骤340具体包括:
步骤341,针对经停所述公交站点的每一个公交车辆,根据聚成的类中地理位置个数最大的类,确定与该公交车辆对应的、所述公交站点位置;
步骤342,基于与各公交车辆对应的、所述公交站点位置,确定所述公交站点位置。
需要说明的是,经停某个公交站点的公交车辆不止一辆,在该实施例中,步骤310可以获取经停该公交站点的所有公交车辆的经停时间段。步骤320可以针对每一公交车辆,从库中获取乘坐车辆标识是该公交车辆的标识、地理位置上报时间落在该公交车辆的经停时间段内的乘客刷乘车码记录。在步骤330中可以针对每一公交车辆,对获取的带有该公交车辆的标识的乘客刷乘车码记录中的地理位置分别进行聚类。也就是说,每辆公交车辆对应的乘车刷乘车码记录中的地理位置单独进行聚类,聚类方式可以采用上文所述的密度聚类算法。在此不再赘述。由此,在步骤341中,针对每一公交车辆,都能从聚成的类中找到地理位置个数最大的类,并根据此类中的地理位置确定公交站点的一个位置。由此,针对经过某个公交站点的每一公交车辆,都能针对该公交车辆确定该公交站点的一个位置。进而在步骤342中,根据针对每一公交车辆确定的公交站点的位置,通过计算这些位置点坐标的平均值,可以得到该公交站点的位置。
上述实施例提供的技术方案,不再根据一个公交车辆的经停时间段获取在该时间段内的地理位置,而是根据经停某个公交站点的每一公交车辆的经停时间段,针对每一公交车辆都找出该公交站点在电子地图中的位置,进而对这些位置点进行融合得到公交站点的准确位置,提高了确定公交站点位置的准确性。
在一种示例性实施例中,上述步骤341具体包括:针对经停所述公交站点的每一个公交车辆,对聚成的类中地理位置个数最大的类中所有地理位置求平均地理位置,作为与该公交车辆对应的、所述公交站点位置。
由于针对每一公交车辆,对获取的带有该公交车辆的标识的乘客刷乘车码记录中的地理位置分别进行聚类。所以,针对每一公交车辆,均能从聚成的多个类中找出地理位置个数最大的类,并计算该类中所有地理位置的平均地理位置,将该平均地理位置作为对应于该公交车辆获得的公交站点的位置。针对每一公交车辆,均能获得对应于该公交车辆计算得到的公交站点的位置。
在一种示例性实施例中,上述步骤342具体包括:对与各公交车辆对应的、所述公交站点位置,求平均地理位置,作为所述公交站点位置。
在求出了与各公交车辆对应的、所述公交站点位置之后,针对这些与各公交车辆对应的、所述公交站点位置可以求平均。求平均的方法是将与各公交车辆对应的、所述公交站点位置坐标的x坐标进行平均,得到平均地理位置的x坐标,将与各公交车辆对应的、所述公交站点位置坐标的y坐标进行平均,得到平均地理位置的y坐标。
该实施例提出了一种简便易行的求平均地理位置的方法,降低了公交站点定位的复杂度。
在一种示例性实施例中,上述步骤342具体包括:将与各公交车辆对应的、所述公交站点位置,按照为各公交车辆分配的权重,确定加权平均地理位置,作为所述公交站点位置。
在一个实施例中,所述权重根据历史上该公交车辆的在该经停时间段的平均乘坐人数确定。所述权重可以如下确定:
针对每一公交车辆,在多天中,由该公交车辆上的摄像头拍摄每天该经停时间段车上照片;
从多天的车上照片中识别出每天该经停时间段的车上人数;
基于每天该经停时间段的车上人数,确定该公交车辆该经停时间段平均人数;
按照所述权重与该公交车辆该经停时间段平均人数的正比关系,确定所述权重。
该公交车辆上的摄像头可以每天间隔一段时间定期拍摄车上照片,并与拍摄时间相应存储。当确定出经停时间段后,可以从定期拍摄的车上照片中识别车上的人,并确定出人数。摄像头可以分布在车辆的各个角落。从每天的车上照片可以识别出当天该经停时间段的车上人数。对每天识别出的该经停时间段的车上人数求平均,就可以得到该公交车辆该经停时间段平均人数。按照所述权重与该公交车辆该经停时间段平均人数的正比关系,就可以确定所述权重。
举例来说,假设经停某个公交站点的公交车辆一共有3辆,第一辆确定出的该经停时间段平均人数15人,第二辆平均人数20人,第三辆平均人数30人,则第一辆公交车辆的权重可以为0.23,第二辆公交车辆的权重为0.31,第三辆公交车辆的权重为0.46。假设对应于第一辆公交车辆计算得到的公交站点的位置为纬度23.13,经度112.33,对应于第二辆公交车辆计算得到的公交站点的位置为纬度23.12,经度112.30,对应于第三辆公交车辆计算得到的公交站点的位置为纬度23.11,经度112.31,加权平均地理位置可以通过是对纬度进行加权相加,对经度进行加权相加得到。具体的,纬度加权平均值为23.13×0.23+23.12×0.31+23.11×0.46=23.1177。经度加权平均值为112.33×0.23+112.30×0.31+112.31×0.46=112.3115。由此,得到公交站点最终的位置为纬度23.1177,经度112.3115。
由于不同公交车辆所乘坐人数不同,因此可以为不同乘坐人数的公交车辆配置不同的权重,以此进一步提高所确定公交站点位置的准确性。
在一种示例性实施例中,每条乘客刷乘车码记录还包括刷乘车码时间,即刷码时间。
在上述步骤330之前,本公开提供的方法还包括:从获取的乘客刷乘车码记录中,滤除刷乘车码时间与地理位置上报时间的间隔时间大于间隔时间阈值的乘客刷乘车码记录;
上述步骤330具体包括:对滤除后的乘客刷乘车码记录中的地理位置进行聚类。
其中,刷乘车码时间是指车辆终端获取到乘客终端展示的乘车码的时间。乘客上下车之前,让车辆终端扫描乘客终端上展示的乘车码。刷乘车码时间可以由车辆终端发送给服务器。当接收到乘客终端上报的地理位置、地理位置上报时间后,将地理位置、地理位置上报时间与刷乘车码时间合成一条乘客刷乘车码记录,放在乘客刷乘车码记录库中。由此服务器根据经停某个公交站点的公交车辆的经停时间段,可以从该库中获取乘坐车辆标识是该公交车辆的标识、地理位置上报时间(GPS上报时间)落在该经停时间段内的乘客刷乘车码记录。
进而从获取的这些乘客刷乘车码记录中,可以滤除刷乘车码时间与GPS上报时间的间隔时间大于间隔时间阈值的乘客刷乘车码记录。间隔时间阈值可以根据实际精度要求设定。因为如果GPS上报的时间与刷乘车码时间间隔不大,可以认为上报的GPS信息的时间基本上就是刷乘车码的时间,可以采信这样一条记录;如果GPS上报的时间与刷乘车码时间间隔很大,可以认为上报的GPS信息完全不是刷乘客码时的GPS信息,不采信这样一条记录。去除这一类的乘客刷乘车码记录,有利于提高定位的准确性。从获取的乘客刷乘车码记录中,去除地理位置不准确的乘客刷乘车码记录后,对剩余的乘客刷乘车码记录中的地理位置进行聚类。聚类方式可以参见上文。
在一种实施例中,如图7所示,上述间隔时间阈值可以通过以下方式获得:
步骤710,获取乘客刷乘车码记录库中的所有乘客刷乘车码记录中的刷乘车码时间与地理位置上报时间;
步骤720,确定所述刷乘车码时间与地理位置上报时间的时间间隔;
步骤730,将针对所有乘客刷乘车码记录确定的所述时间间隔按照从小到大排序;
步骤740,基于所有乘客刷乘车码记录的总数乘以预定包容比例的积,确定分界序号;
步骤750,将所述时间间隔按照从小到大排序后序号为所述分界序号的时间间隔,确定为所述间隔时间阈值。
具体的,在步骤710中服务器获取乘客刷乘车码记录库中每条记录包含的刷乘车码时间与地理位置上报时间。在步骤720中服务器计算每条记录中刷乘车码时间与地理位置上报时间的时间间隔。在步骤730中服务器将对应于每条记录获得的时间间隔按照从小到大排序,并对每个时间间隔按序进行编号。在步骤740中服务器根据库中总的乘客刷乘车码记录条数,以及预设的包容比例,将库中总的记录条数乘以该包容比例,得到的乘积作为分界序号。假设库中总的乘客刷乘车码记录有10条,包容比例为90%,则分界序号为10×90%=9。在步骤750中服务器将时间间隔按照从小到大排序后序号为分界序号的时间间隔,作为上文中的间隔时间阈值。
举例来说,库中总的乘客刷乘车码记录有10条,计算每条记录中刷乘车码时间与地理位置上报时间的时间间隔,则得到10个时间间隔,假设为0.01、0.12、0.13、0.02、0.15、0.14、0.19、0.11、0.18、0.16。对这10个时间间隔按照从小到大排序,得到0.01、0.02、0.11、0.12、0.13、0.14、0.15、0.16、0.18、0.19。假设包容比例是90%,则分界序号为9,上述排序的时间间隔中第9个时间间隔,即0.18作为间隔时间阈值。
该实施例的好处是,这样确定的间隔时间阈值能够让预定包容比例的记录中的间隔时间都小于间隔时间阈值,根据实际运行时产生的间隔时间来确定间隔时间阈值,使确定的间隔时间阈值更反映客观实际。
在一种示例性实施例中,每条乘客刷乘车码记录还可以包括:上报的地理位置的精度。
在步骤330之前,本公开提供的方法还包括:从获取的乘客刷乘车码记录中,滤除上报的地理位置的精度大于地理位置精度阈值的乘客刷乘车码记录。
上述步骤330具体包括:对滤除后的乘客刷乘车码记录中的地理位置进行聚类。
上报的地理位置的精度是指上报的地理位置与实际所在地理位置之间的误差大小。举例来说,影响GPS定位精度的主要因素,包括大气层(电离层和对流层对GPS信号的延迟)、多径效应(经过其他表面反射到接收机天线中的GPS信号)、当前可见GPS卫星数量、当前可见GPS卫星的几何分布、GPS卫星钟差、GPS卫星轨道差、人为干扰(例如SA政策、微波发射装置)等。由此,上报的地理位置与实际所在地理位置可能误差。
其中,地理位置精度阈值可以根据普通手机的GPS精度得到,举例来说,地理位置精度阈值可以是30米。服务器根据经停某个公交站点的公交车辆的经停时间段,可以从该库中获取乘坐车辆标识是该公交车辆的标识、地理位置上报时间落在该经停时间段内的乘客刷乘车码记录,并从获取的这些乘客刷乘车码记录中去除上报的地理位置的精度大于地理位置精度阈值(如30米)的乘车刷乘车码记录,进而对获取的乘客刷乘车码记录中剩余乘客刷乘车码记录中的地理位置进行聚类。
上述实施例,事先去除地理位置不准确的乘客刷乘车码记录,从而在对地理位置进行聚类时,可以得到准确性更高的公交站点的位置。
在一种示例性实施例中,每条乘客刷乘车码记录还包括:上报地理位置的终端的运动速度。
在步骤330之前,本公开提供的方法还包括:从获取的乘客刷乘车码记录中,滤除上报的地理位置的终端的运动速度大于运动速度阈值的乘客刷乘车码记录;
上述步骤330具体:对滤除后的乘客刷乘车码记录中的地理位置进行聚类。
需要解释的是,有时候乘客在车辆启动一段时间后才刷乘车码(例如,一开始上传忘了刷码,刷码后车辆已经开动,上报的地理位置已经不能反映停车时的位置),而并非在公交站点刷的乘车码,因此对于在车辆启动后刷乘车码产生的乘车刷乘车码记录也需要删除。具体的,乘客终端可以利用自身具备的速度传感器,检测上报地理位置时的运动速度。如果运动速度大于运动速度阈值,可以认为乘客是在车辆行驶过程中刷的乘车码,而并非在公交站点刷的乘车码,因此,服务器可以从获取的乘客刷乘车码记录中,滤除上报的地理位置的终端的运动速度大于运动速度阈值的乘客刷乘车码记录。其中,运动速度阈值可以是0或接近于0的值。在滤除后,对获取的剩余乘客刷乘车码记录中的地理位置进行聚类。
上述实施例,去除了在车辆行驶过程中刷乘车码产生的乘车刷乘车码记录,使上报的地理位置尽可能都是在公交站点产生的,从而进一步提高定位公交站点的准确性。
在一种示例性实施例中,在上述步骤340之前,本公开提供的公交站点的定位方法还包括:将最大聚类半径大于最大聚类半径阈值的类进行滤除。
举例来说,最大聚类半径阈值可以是30米,最大聚类半径是指包含某一聚类簇中所有地理位置点的最小圆的半径。对获取的乘客刷乘车码记录中的地理位置进行聚类后,可以去除最大聚类半径大于30米的类。
在一种示例性实施例中,在上述步骤340之前,将聚成的类中的地理位置数低于地理位置数阈值的类进行滤除。
其中,地理位置数阈值可以是参与聚类的地理位置的总数的20%,也就是需要保证聚类的类中的地理位置数大于总地理位置数的20%。当然,地理位置数阈值应该大于等于2,也就是需要保证聚类的类中的地理位置数至少有2个,对于聚成的类中的地理位置数低于地理位置数阈值的类可以认为是异常点,需要进行去除。
以表1中数据举例来说,cluster=-1的类只有3个地理位置数,地理位置的总数是33个,所以cluster=-1的类就是没有满足条件的记录(噪点/异常点),需要将cluster=-1的记录去除。
如图8所示,存在仅有一个位置点的类,该位置点可以认为是异常点,可以先去除该异常的地理位置点。进而可以找出地理位置个数最多的类,例如表1中cluster=0的记录,得到图9所示的地理位置点。之后,可以对图9所示的地理位置点求平均值,算出纬度平均值和经度平均值作为公交站点的位置,得到图10所示的公交站点位置。
在一种实施例中,上述地理位置数阈值等于获取的乘客刷乘车码记录总数与预定比例的乘积、以及最小地理位置数阈值两者最大的一个。
其中,预定比例可以是20%,25%、15%等。最小地理位置数阈值可以是2、3等。地理位置数阈值=max(int(获取的乘客刷乘车码记录总数×预定比例),最小地理位置数阈值),Int代表取整。
在一种示例性实施例中,每条乘客刷乘车码记录还包括乘坐方向的标识。
上述步骤310具体包括:获取经停所述公交站点的公交车辆的在特定乘坐方向上的经停时间段;
上述步骤320具体包括:从乘客刷乘车码记录库中,获取乘坐车辆标识是所述公交车辆的标识、地理位置上报时间落在所述经停时间段内、乘坐方向的标识是特定乘坐方向标识的乘客刷乘车码记录;
上述步骤340具体包括:根据地理位置聚成的类中地理位置个数最大的类,确定所述公交站点特定乘坐方向上的位置。
需要说明的是,公交车辆可能是从A向C行驶,也可能从C向A行驶,也就是说,公交车辆存在两个相反的行驶方向,可以称为上行和下行。该公交车辆从A向C行驶时,可能经过公交站点B,从C向A行驶也经过公交站点B。上行方向的公交站点B和下行方向的公交站点B可能不是一样的,例如隔一条马路,需要分别确定每个公交站点在每个方向上的站点位置。
由此,在步骤310中需要获取经停某个公交站点的公交车辆在特定行驶方向上的经停时间段。公交车辆的数量可以是一辆或多辆。特定行驶方向可以是上行或下行。举例来说,获取经停公交站点B的公交车辆在从A-C行驶方向上的经停时间段。经停时间段的获取方法可以参考上文步骤310对应的实施例。
在步骤320中,服务器从乘客刷乘车码记录库中,获取乘坐车辆标识是上述公交车辆的标识、地理位置上报时间落在该经停时间段内、乘坐方向的标识是特定乘坐方向标识的乘客刷乘车码记录。
乘坐方向的标识可以是按照方向进行的命名,例如A-C,也可以称为上行;相反的方向C-A称为下行;当然,也可以将从A-C的方向编号为1,将从C-A的方向编号为2。乘客刷乘车码记录库中,乘坐方向的标识可以由车辆终端发送给服务器,也可以由乘客终端同地理位置、乘坐车辆标识、上报地理位置时间等一起发送至服务器,由服务器存储在数据库中。需要说明的是,乘客终端的乘坐车辆标识可以由车辆终端发送给服务器,再由服务器转发给乘客终端。
在步骤330对获取的乘客刷乘车码记录中的地理位置进行聚类后,在步骤340中,根据地理位置聚成的类中地理位置个数最大的类,确定所述公交站点特定乘坐方向上的位置。
举例来说,服务器获取经停公交站点B的公交车辆在从A-C行驶方向上的经停时间段。进而服务器从数据库中获取乘坐车辆标识是上述公交车辆的标识、地理位置上报时间落在该经停时间段内、乘坐方向的标识是A-C的乘客刷乘车码记录。之后服务器对这些乘客刷乘车码记录中的地理位置进行聚类,并找出地理位置个数最大的类,并对这个类中的地理位置取平均值,作为公交站点B在电子地图上从A-C行驶方向上的位置。
需要说明的是,同一公交站点在上行方向和下行方向的位置存在差异,上述实施例进一步对公交车辆的乘坐方向进行区分,确定公交站点在特定方向上的位置,进一步提高了公交站点定位的准确性。
如图11所示,在利用本公开提供的方法确定公交站点的位置后,在电子地图上展示公交线路时,可以准确显示出该公交线路经过的每个站点的位置。由此在乘客需要到公交站点换成公交车辆时,可以按照电子地图中指示的公交站点的位置,进行导航乘车。
通过本公开上述实施例提供的技术方案,计算得到的公交站点的位置与实际公交站点的位置的平均距离在15米以内,解决了电子地图中的站点位置不准确或覆盖不全的问题,解决了人工采集站点位置,费时费力的缺陷,降低了人力成本,便于新建公交站点的快速定位,以及现有公交站点位置的及时纠正。
下述为本公开装置实施例,可以用于执行本公开上述服务器101执行的公交站点定位方法实施例。对于本公开装置实施例中未披露的细节,请参照本公开公交站点定位方法实施例。
图12是根据一示例性实施例示出的一种公交站点定位装置的框图,该公交站点定位装置可以用于图1所示实施环境的服务器101中,执行上述方法实施例中的全部或者部分步骤。如图13所示,该装置包括但不限于:经停时间获取模块1310、乘车记录获取模块1320、地理位置聚类模块1330以及公交站点定位模块1340。
经停时间获取模块1310,用于获取经停所述公交站点的公交车辆的经停时间段;
乘车记录获取模块1320,用于从乘客刷乘车码记录库中,获取乘坐车辆标识是所述公交车辆的标识、地理位置上报时间落在所述经停时间段内的乘客刷乘车码记录,其中,乘客刷乘车码记录库中每条乘客刷乘车码记录包括:乘坐车辆标识、上报的地理位置、地理位置上报时间;
地理位置聚类模块1330,用于对获取的乘客刷乘车码记录中的地理位置进行聚类;
公交站点定位模块1340,用于根据地理位置聚成的类中地理位置个数最大的类,确定所述公交站点位置。
上述装置中各个模块的功能和作用的实现过程具体详见上述公交站点定位方法中对应步骤的实现过程,在此不再赘述。
可选的,上述公交站点定位模块1340包括:
地理位置计算单元,用于对地理位置聚成的类中地理位置个数最大的类中所有地理位置求平均地理位置,作为所述公交站点位置。
可选的,上述经停时间获取模块1310包括:
数据获取单元,用于获取经停所述公交站点的公交车辆的起始站发出时间、所述公交车辆从起始站到所述公交站点经过的站数、所述公交车辆的每站经停时间和相邻站间行驶时间;
时间计算单元,用于基于经停所述公交站点的公交车辆的起始站发出时间、所述公交车辆从起始站到所述公交站点经过的站数、所述公交车辆的每站经停时间和相邻站间行驶时间,确定所述经停时间段。
可选的,上述时间计算单元的具体计算过程为:
设经停所述公交站点的公交车辆的起始站发出时间为t0,所述公交车辆从起始站到所述公交站点经过的站数为n,所述公交车辆的每站经停时间为Δt,所述相邻站间行驶时间为ΔT,所述经停时间段为(Pn+1,Qn+1),Pn+1为所述经停时间段的开始时间点,Qn+1为所述经停时间段的结束时间点,则
Pn+1=t0+(n+1)ΔT+nΔt
Qn+1=t0+(n+1)ΔT+(n+1)Δt。
可选的,上述经停时间获取模块1310包括:
开始指令接收单元,用于接收所述公交车辆的车辆终端发出的经停开始指令,所述经停开始指令中具有所述公交车辆的标识和公交站点的标识;
结束指令接收单元,用于接收所述公交车辆的车辆终端发出的经停结束指令,所述经停结束指令中具有所述公交车辆的标识和公交站点的标识;
经停时间确定单元可用于将接收到所述经停开始指令的时间、与接收到所述经停结束指令的时间,分别确定为所述经停时间段的开始时间点、所述经停时间段的结束时间点。
可选的,上述经停时间获取模块1310具体用于:获取经停所述公交站点的所有公交车辆的经停时间段;
上述地理位置聚类模块1330具体用于:针对经停所述公交站点的每一个公交车辆,对获取的带有该公交车辆的标识的乘客刷乘车码记录中的地理位置分别进行聚类;
上述公交站点定位模块1340包括:
位置确定单元,用于针对经停所述公交站点的每一个公交车辆,根据聚成的类中地理位置个数最大的类,确定与该公交车辆对应的、所述公交站点位置;
位置融合单元,用于基于与各公交车辆对应的、所述公交站点位置,确定所述公交站点位置。
上述位置确定单元包括:
针对经停所述公交站点的每一个公交车辆,对聚成的类中地理位置个数最大的类中所有地理位置求平均地理位置,作为与该公交车辆对应的、所述公交站点位置。
上述位置融合单元包括:
将与各公交车辆对应的、所述公交站点位置,按照为各公交车辆分配的权重,确定加权平均地理位置,作为所述公交站点位置。
可选的,每条乘客刷乘车码记录还包括刷乘车码时间,本公开提供的在电子地图中的公交站点的定位装置还包括:
第一记录滤除模块,用于在对获取的乘客刷乘车码记录中的地理位置进行聚类之前,从获取的乘客刷乘车码记录中,滤除刷乘车码时间与地理位置上报时间的间隔时间大于间隔时间阈值的乘客刷乘车码记录;
上述地理位置聚类模块1330具体用于对滤除后的乘客刷乘车码记录中的地理位置进行聚类。
可选的,每条乘客刷乘车码记录还包括:上报的地理位置的精度,本公开提供的在电子地图中的公交站点的定位装置还包括:
第二记录滤除模块,用于在对获取的乘客刷乘车码记录中的地理位置进行聚类之前,从获取的乘客刷乘车码记录中,滤除上报的地理位置的精度大于地理位置精度阈值的乘客刷乘车码记录;
上述地理位置聚类模块1330具体用于对滤除后的乘客刷乘车码记录中的地理位置进行聚类。
可选的,本公开提供的在电子地图中的公交站点的定位装置还包括:
类滤除模块,用于在根据地理位置聚成的类中地理位置个数最大的类,确定所述公交站点位置之前,将聚成的类中的地理位置数低于地理位置数阈值的类进行滤除。
可选的,每条乘客刷乘车码记录还包括乘坐方向的标识,
上述经停时间获取模块1310具体用于:获取经停所述公交站点的公交车辆在特定乘坐方向上的经停时间段;
上述乘车记录获取模块1320具体用于:从乘客刷乘车码记录库中,获取乘坐车辆标识是所述公交车辆的标识、地理位置上报时间落在所述经停时间段内、乘坐方向的标识是特定乘坐方向标识的乘客刷乘车码记录;
上述公交站点定位模块1340具体用于
根据地理位置聚成的类中地理位置个数最大的类,确定所述公交站点特定乘坐方向上的位置。
下面参照图13来描述本公开实施方式中的服务器101。图13显示的服务器101仅仅是一个示例,不应对本公开实施例的功能和使用范围带来任何限制。
如图13所示,服务器101以通用计算设备的形式表现。服务器101的组件可以包括但不限于:至少一个处理单元810、至少一个存储单元820、连接不同***组件(包括存储单元820和处理单元810)的总线830。
所述存储单元存储有程序代码,所述程序代码可以被所述处理单元810执行,使得所述处理单元810执行本说明书上述示例性方法的描述部分中描述的根据本公开各种示例性实施方式的步骤,具体地,执行一种公交站点定位方法,该方法包括:
获取经停所述公交站点的公交车辆的经停时间段;
从乘客刷乘车码记录库中,获取乘坐车辆标识是所述公交车辆的标识、地理位置上报时间落在所述经停时间段内的乘客刷乘车码记录,其中,乘客刷乘车码记录库中每条乘客刷乘车码记录包括:乘坐车辆标识、上报的地理位置、地理位置上报时间;
对获取的乘客刷乘车码记录中的地理位置进行聚类;
根据地理位置聚成的类中地理位置个数最大的类,确定所述公交站点位置。
可选的,所述根据地理位置聚成的类中地理位置个数最大的类,确定所述公交站点位置,包括:
对地理位置聚成的类中地理位置个数最大的类中所有地理位置求平均地理位置,作为所述公交站点位置。
可选的,所述获取经停所述公交站点的公交车辆的经停时间段,包括:
获取经停所述公交站点的公交车辆的起始站发出时间、所述公交车辆从起始站到所述公交站点经过的站数、所述公交车辆的每站经停时间和相邻站间行驶时间;
基于经停所述公交站点的公交车辆的起始站发出时间、所述公交车辆从起始站到所述公交站点经过的站数、所述公交车辆的每站经停时间和相邻站间行驶时间,确定所述经停时间段。
可选的,所述基于经停所述公交站点的公交车辆的起始站发出时间、所述公交车辆从起始站到所述公交站点经过的站数、所述公交车辆的每站经停时间和相邻站间行驶时间,确定所述经停时间段,包括:
设经停所述公交站点的公交车辆的起始站发出时间为t0,所述公交车辆从起始站到所述公交站点经过的站数为n,所述公交车辆的每站经停时间为Δt,所述相邻站间行驶时间为ΔT,所述经停时间段为(Pn+1,Qn+1),Pn+1为所述经停时间段的开始时间点,Qn+1为所述经停时间段的结束时间点,则
Pn+1=t0+(n+1)ΔT+nΔt
Qn+1=t0+(n+1)ΔT+(n+1)Δt。
可选的,所述获取经停所述公交站点的公交车辆的经停时间段,包括:
接收所述公交车辆的车辆终端发出的经停开始指令,所述经停开始指令中具有所述公交车辆的标识和公交站点的标识;
接收所述公交车辆的车辆终端发出的经停结束指令,所述经停结束指令中具有所述公交车辆的标识和公交站点的标识;
将接收到所述经停开始指令的时间、与接收到所述经停结束指令的时间,分别确定为所述经停时间段的开始时间点、所述经停时间段的结束时间点。
可选的,所述获取经停所述公交站点的公交车辆的经停时间段,包括:获取经停所述公交站点的所有公交车辆的经停时间段;
所述对获取的乘客刷乘车码记录中的地理位置进行聚类,包括:针对经停所述公交站点的每一个公交车辆,对获取的带有该公交车辆的标识的乘客刷乘车码记录中的地理位置分别进行聚类;
所述根据地理位置聚成的类中地理位置个数最大的类,确定所述公交站点位置,包括:
针对经停所述公交站点的每一个公交车辆,根据聚成的类中地理位置个数最大的类,确定与该公交车辆对应的、所述公交站点位置;
基于与各公交车辆对应的、所述公交站点位置,确定所述公交站点位置。
可选的,所述针对经停所述公交站点的每一个公交车辆,根据聚成的类中地理位置个数最大的类,确定与该公交车辆对应的、所述公交站点位置,包括:
针对经停所述公交站点的每一个公交车辆,对聚成的类中地理位置个数最大的类中所有地理位置求平均地理位置,作为与该公交车辆对应的、所述公交站点位置。
可选的,所述基于与各公交车辆对应的、所述公交站点位置,确定所述公交站点位置,包括:
将与各公交车辆对应的、所述公交站点位置,按照为各公交车辆分配的权重,确定加权平均地理位置,作为所述公交站点位置。
可选的,每条乘客刷乘车码记录还包括刷乘车码时间,
在对获取的乘客刷乘车码记录中的地理位置进行聚类之前,所述方法还包括:从获取的乘客刷乘车码记录中,滤除刷乘车码时间与地理位置上报时间的间隔时间大于间隔时间阈值的乘客刷乘车码记录;
所述对获取的乘客刷乘车码记录中的地理位置进行聚类,包括:对滤除后的乘客刷乘车码记录中的地理位置进行聚类。
可选的,每条乘客刷乘车码记录还包括:上报的地理位置的精度,
在对获取的乘客刷乘车码记录中的地理位置进行聚类之前,所述方法还包括:从获取的乘客刷乘车码记录中,滤除上报的地理位置的精度大于地理位置精度阈值的乘客刷乘车码记录;
所述对获取的乘客刷乘车码记录中的地理位置进行聚类,包括:对滤除后的乘客刷乘车码记录中的地理位置进行聚类。
可选的,在根据地理位置聚成的类中地理位置个数最大的类,确定所述公交站点位置之前,所述方法还包括:
将聚成的类中的地理位置数低于地理位置数阈值的类进行滤除。
可选的,每条乘客刷乘车码记录还包括乘坐方向的标识,
所述获取经停所述公交站点的公交车辆的经停时间段,包括:获取经停所述公交站点的公交车辆在特定乘坐方向上的经停时间段;
所述从乘客刷乘车码记录库中,获取乘坐车辆标识是所述公交车辆的标识、地理位置上报时间落在所述经停时间段内的乘客刷乘车码记录,包括:从乘客刷乘车码记录库中,获取乘坐车辆标识是所述公交车辆的标识、地理位置上报时间落在所述经停时间段内、乘坐方向的标识是特定乘坐方向标识的乘客刷乘车码记录;
所述根据地理位置聚成的类中地理位置个数最大的类,确定所述公交站点位置,包括:根据地理位置聚成的类中地理位置个数最大的类,确定所述公交站点特定乘坐方向上的位置。
存储单元820可以包括易失性存储单元形式的可读介质,例如随机存取存储单元(RAM)8201和/或高速缓存存储单元8202,还可以进一步包括只读存储单元(ROM)8203。
存储单元820还可以包括具有一组(至少一个)程序模块8205的程序/实用工具8204,这样的程序模块8205包括但不限于:操作***、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。
总线830可以为表示几类总线结构中的一种或多种,包括存储单元总线或者存储单元控制器、***总线、图形加速端口、处理单元或者使用多种总线结构中的任意总线结构的局域总线。
服务器101也可以与一个或多个外部设备700(例如键盘、指向设备、蓝牙设备等)通信,还可与一个或者多个使得用户能与该服务器101交互的设备通信,和/或与使得该服务器101能与一个或多个其它计算设备进行通信的任何设备(例如路由器、调制解调器等等)通信。这种通信可以通过输入/输出(I/O)接口650进行。并且,服务器101还可以通过网络适配器860与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。如图所示,网络适配器860通过总线830与服务器101的其它模块通信。应当明白,尽管图中未示出,服务器101可以使用其它硬件和/或软件模块实现,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、RAID***、磁带驱动器以及数据备份存储***等。
通过以上的实施方式的描述,本领域的技术人员易于理解,这里描述的示例实施方式可以通过软件实现,也可以通过软件结合必要的硬件的方式来实现。因此,根据本公开实施方式的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中或网络上,包括若干指令以使得一台计算设备(可以是个人计算机、服务器、终端装置、或者网络设备等)执行根据本公开实施方式的方法。
在本公开的示例性实施例中,还提供了一种计算机程序介质,其上存储有计算机可读指令,当所述计算机可读指令被计算机的处理器执行时,使计算机执行上述方法实施例部分中描述的方法。
根据本公开的一个实施例,还提供了一种用于实现上述方法实施例中的方法的程序产品,其可以采用便携式紧凑盘只读存储器(CD-ROM)并包括程序代码,并可以在终端设备,例如个人电脑上运行。然而,本公开的程序产品不限于此,在本文件中,可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行***、装置或者器件使用或者与其结合使用。
所述程序产品可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以为但不限于电、磁、光、电磁、红外线、或半导体的***、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。
计算机可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了可读程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。可读信号介质还可以是可读存储介质以外的任何可读介质,该可读介质可以发送、传播或者传输用于由指令执行***、装置或者器件使用或者与其结合使用的程序。
可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于无线、有线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言的任意组合来编写用于执行本公开操作的程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如Java、C++等,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。在涉及远程计算设备的情形中,远程计算设备可以通过任意种类的网络,包括局域网(LAN)或广域网(WAN),连接到用户计算设备,或者,可以连接到外部计算设备(例如利用因特网服务提供商来通过因特网连接)。
应当注意,尽管在上文详细描述中提及了用于动作执行的设备的若干模块或者单元,但是这种划分并非强制性的。实际上,根据本公开的实施方式,上文描述的两个或更多模块或者单元的特征和功能可以在一个模块或者单元中具体化。反之,上文描述的一个模块或者单元的特征和功能可以进一步划分为由多个模块或者单元来具体化。
此外,尽管在附图中以特定顺序描述了本公开中方法的各个步骤,但是,这并非要求或者暗示必须按照该特定顺序来执行这些步骤,或是必须执行全部所示的步骤才能实现期望的结果。附加的或备选的,可以省略某些步骤,将多个步骤合并为一个步骤执行,以及/或者将一个步骤分解为多个步骤执行等。
通过以上的实施方式的描述,本领域的技术人员易于理解,这里描述的示例实施方式可以通过软件实现,也可以通过软件结合必要的硬件的方式来实现。因此,根据本公开实施方式的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中或网络上,包括若干指令以使得一台计算设备(可以是个人计算机、服务器、移动终端、或者网络设备等)执行根据本公开实施方式的方法。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本公开的其它实施方案。本申请旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由所附的权利要求指出。
Claims (15)
1.一种公交站点定位方法,其特征在于,包括:
获取经停所述公交站点的公交车辆的经停时间段;
从乘客刷乘车码记录库中,获取乘坐车辆标识是所述公交车辆的标识、地理位置上报时间落在所述经停时间段内的乘客刷乘车码记录,其中,乘客刷乘车码记录库中每条乘客刷乘车码记录包括:乘坐车辆标识、上报的地理位置、地理位置上报时间;
对获取的乘客刷乘车码记录中的地理位置进行聚类;
根据地理位置聚成的类中地理位置个数最大的类,确定所述公交站点的位置。
2.根据权利要求1所述的方法,其特征在于,所述根据地理位置聚成的类中地理位置个数最大的类,确定所述公交站点的位置,包括:
对地理位置聚成的类中地理位置个数最大的类中所有地理位置求平均地理位置,作为所述公交站点的位置。
3.根据权利要求1所述的方法,其特征在于,所述获取经停所述公交站点的公交车辆的经停时间段,包括:
获取经停所述公交站点的公交车辆的起始站发出时间、所述公交车辆从起始站到所述公交站点经过的站数、所述公交车辆的每站经停时间和相邻站间行驶时间;
基于经停所述公交站点的公交车辆的起始站发出时间、所述公交车辆从起始站到所述公交站点经过的站数、所述公交车辆的每站经停时间和相邻站间行驶时间,确定所述经停时间段。
4.根据权利要求3所述的方法,其特征在于,所述基于经停所述公交站点的公交车辆的起始站发出时间、所述公交车辆从起始站到所述公交站点经过的站数、所述公交车辆的每站经停时间和相邻站间行驶时间,确定所述经停时间段,包括:
设经停所述公交站点的公交车辆的起始站发出时间为t0,所述公交车辆从起始站到所述公交站点经过的站数为n,所述公交车辆的每站经停时间为Δt,所述相邻站间行驶时间为ΔT,所述经停时间段为(Pn+1,Qn+1),Pn+1为所述经停时间段的开始时间点,Qn+1为所述经停时间段的结束时间点,则
Pn+1=t0+(n+1)ΔT+nΔt
Qn+1=t0+(n+1)ΔT+(n+1)Δt。
5.根据权利要求1所述的方法,其特征在于,所述获取经停所述公交站点的公交车辆的经停时间段,包括:
接收所述公交车辆的车辆终端发出的经停开始指令,所述经停开始指令中具有所述公交车辆的标识和公交站点的标识;
接收所述公交车辆的车辆终端发出的经停结束指令,所述经停结束指令中具有所述公交车辆的标识和公交站点的标识;
将接收到所述经停开始指令的时间、与接收到所述经停结束指令的时间,分别确定为所述经停时间段的开始时间点、所述经停时间段的结束时间点。
6.根据权利要求1所述的方法,其特征在于,
所述获取经停所述公交站点的公交车辆的经停时间段,包括:获取经停所述公交站点的所有公交车辆的经停时间段;
所述对获取的乘客刷乘车码记录中的地理位置进行聚类,包括:针对经停所述公交站点的每一个公交车辆,对获取的带有该公交车辆的标识的乘客刷乘车码记录中的地理位置分别进行聚类;
所述根据地理位置聚成的类中地理位置个数最大的类,确定所述公交站点位置,包括:
针对经停所述公交站点的每一个公交车辆,根据聚成的类中地理位置个数最大的类,确定与该公交车辆对应的、所述公交站点的位置;
基于与各公交车辆对应的、所述公交站点的位置,确定所述公交站点的位置。
7.根据权利要求6所述的方法,其特征在于,所述针对经停所述公交站点的每一个公交车辆,根据聚成的类中地理位置个数最大的类,确定与该公交车辆对应的、所述公交站点的位置,包括:
针对经停所述公交站点的每一个公交车辆,对聚成的类中地理位置个数最大的类中所有地理位置求平均地理位置,作为与该公交车辆对应的、所述公交站点的位置。
8.根据权利要求6所述的方法,其特征在于,所述基于与各公交车辆对应的、所述公交站点的位置,确定所述公交站点的位置,包括:
将与各公交车辆对应的、所述公交站点的位置,按照为各公交车辆分配的权重,确定加权平均地理位置,作为所述公交站点的位置。
9.根据权利要求1所述的方法,其特征在于,每条乘客刷乘车码记录还包括刷乘车码时间,
在对获取的乘客刷乘车码记录中的地理位置进行聚类之前,所述方法还包括:从获取的乘客刷乘车码记录中,滤除刷乘车码时间与地理位置上报时间的间隔时间大于间隔时间阈值的乘客刷乘车码记录;
所述对获取的乘客刷乘车码记录中的地理位置进行聚类,包括:对滤除后的乘客刷乘车码记录中的地理位置进行聚类。
10.根据权利要求1所述的方法,其特征在于,每条乘客刷乘车码记录还包括:上报的地理位置的精度,
在对获取的乘客刷乘车码记录中的地理位置进行聚类之前,所述方法还包括:从获取的乘客刷乘车码记录中,滤除上报的地理位置的精度大于地理位置精度阈值的乘客刷乘车码记录;
所述对获取的乘客刷乘车码记录中的地理位置进行聚类,包括:对滤除后的乘客刷乘车码记录中的地理位置进行聚类。
11.根据权利要求1所述的方法,其特征在于,在根据地理位置聚成的类中地理位置个数最大的类,确定所述公交站点的位置之前,所述方法还包括:
将聚成的类中的地理位置数低于地理位置数阈值的类进行滤除。
12.根据权利要求1所述的方法,其特征在于,每条乘客刷乘车码记录还包括乘坐方向的标识,
所述获取经停所述公交站点的公交车辆的经停时间段,包括:获取经停所述公交站点的公交车辆在特定乘坐方向上的经停时间段;
所述从乘客刷乘车码记录库中,获取乘坐车辆标识是所述公交车辆的标识、地理位置上报时间落在所述经停时间段内的乘客刷乘车码记录,包括:从乘客刷乘车码记录库中,获取乘坐车辆标识是所述公交车辆的标识、地理位置上报时间落在所述经停时间段内、乘坐方向的标识是特定乘坐方向标识的乘客刷乘车码记录;
所述根据地理位置聚成的类中地理位置个数最大的类,确定所述公交站点位置,包括:根据地理位置聚成的类中地理位置个数最大的类,确定所述公交站点在特定乘坐方向上的位置。
13.一种公交站点定位装置,其特征在于,包括:
经停时间获取模块,用于获取经停所述公交站点的公交车辆的经停时间段;
乘车记录获取模块,用于从乘客刷乘车码记录库中,获取乘坐车辆标识是所述公交车辆的标识、地理位置上报时间落在所述经停时间段内的乘客刷乘车码记录,其中,乘客刷乘车码记录库中每条乘客刷乘车码记录包括:乘坐车辆标识、上报的地理位置、地理位置上报时间;
地理位置聚类模块,用于对获取的乘客刷乘车码记录中的地理位置进行聚类;
公交站点定位模块,用于根据地理位置聚成的类中地理位置个数最大的类,确定所述公交站点的位置。
14.一种服务器,其特征在于,所述服务器包括:
处理器;
用于存储处理器可执行指令的存储器;
其中,所述处理器被配置为执行权利要求1-12任意一项所述的公交站点定位方法。
15.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机程序,所述计算机程序可由处理器执行完成权利要求1-12任意一项所述的公交站点定位方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811574601.8A CN111356074B (zh) | 2018-12-21 | 2018-12-21 | 公交站点定位方法及装置、服务器、介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811574601.8A CN111356074B (zh) | 2018-12-21 | 2018-12-21 | 公交站点定位方法及装置、服务器、介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111356074A true CN111356074A (zh) | 2020-06-30 |
CN111356074B CN111356074B (zh) | 2021-12-10 |
Family
ID=71193710
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811574601.8A Active CN111356074B (zh) | 2018-12-21 | 2018-12-21 | 公交站点定位方法及装置、服务器、介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111356074B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112370790A (zh) * | 2020-12-01 | 2021-02-19 | 腾讯科技(深圳)有限公司 | 游戏地图绘制方法、装置、电子设备和存储介质 |
CN112820102A (zh) * | 2020-12-30 | 2021-05-18 | 支付宝(杭州)信息技术有限公司 | 公交车辆的乘车提醒方法及装置 |
CN116142263A (zh) * | 2023-01-09 | 2023-05-23 | 广州新科佳都科技有限公司 | 一种列车到离站信息生成方法、装置、设备以及存储介质 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20110119350A (ko) * | 2010-04-27 | 2011-11-02 | 주식회사 에이텍 | 정류장의 하차 시스템 및 그 제어방법 |
CN104134343A (zh) * | 2014-06-23 | 2014-11-05 | 上海城市交通设计院有限公司 | 一种基于交通卡数据的乘客上下车时间和位置的获取方法 |
US20150286936A1 (en) * | 2012-10-17 | 2015-10-08 | Hitachi, Ltd. | Transportation analysis system |
CN106571036A (zh) * | 2016-11-14 | 2017-04-19 | 中国联合网络通信集团有限公司 | 公共交通站点确定方法和装置 |
CN107274705A (zh) * | 2016-04-06 | 2017-10-20 | 高德软件有限公司 | 公交车位置的确定方法、装置和*** |
CN108495253A (zh) * | 2018-03-01 | 2018-09-04 | 腾讯科技(深圳)有限公司 | 公共交通工具定位方法和装置、存储介质及电子装置 |
-
2018
- 2018-12-21 CN CN201811574601.8A patent/CN111356074B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20110119350A (ko) * | 2010-04-27 | 2011-11-02 | 주식회사 에이텍 | 정류장의 하차 시스템 및 그 제어방법 |
US20150286936A1 (en) * | 2012-10-17 | 2015-10-08 | Hitachi, Ltd. | Transportation analysis system |
CN104134343A (zh) * | 2014-06-23 | 2014-11-05 | 上海城市交通设计院有限公司 | 一种基于交通卡数据的乘客上下车时间和位置的获取方法 |
CN107274705A (zh) * | 2016-04-06 | 2017-10-20 | 高德软件有限公司 | 公交车位置的确定方法、装置和*** |
CN106571036A (zh) * | 2016-11-14 | 2017-04-19 | 中国联合网络通信集团有限公司 | 公共交通站点确定方法和装置 |
CN108495253A (zh) * | 2018-03-01 | 2018-09-04 | 腾讯科技(深圳)有限公司 | 公共交通工具定位方法和装置、存储介质及电子装置 |
Non-Patent Citations (1)
Title |
---|
宋爽: "《基于SVM和Kalman滤波的公交到站时间预测方法研究》", 《中国优秀硕士学位论文全文数据库》 * |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112370790A (zh) * | 2020-12-01 | 2021-02-19 | 腾讯科技(深圳)有限公司 | 游戏地图绘制方法、装置、电子设备和存储介质 |
CN112820102A (zh) * | 2020-12-30 | 2021-05-18 | 支付宝(杭州)信息技术有限公司 | 公交车辆的乘车提醒方法及装置 |
CN116142263A (zh) * | 2023-01-09 | 2023-05-23 | 广州新科佳都科技有限公司 | 一种列车到离站信息生成方法、装置、设备以及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN111356074B (zh) | 2021-12-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20190120639A1 (en) | Systems and methods for route planning | |
CN107845259B (zh) | 公交运行情况实时反馈***及公交实时运行数据处理方法 | |
CN111356074B (zh) | 公交站点定位方法及装置、服务器、介质 | |
CN104156778A (zh) | 预测性运输计算 | |
CN112204604A (zh) | 信息处理装置、信息处理方法以及程序 | |
US11212649B2 (en) | Determining a non-GNSS based position of a mobile device | |
US10699575B2 (en) | Parking availability monitor for a non-demarcated parking zone | |
CN107403550B (zh) | 公交路网数据采集方法、装置和终端设备 | |
US20200167883A1 (en) | Vehicle allocation management device, vehicle allocation management method, and computer program for vehicle allocation management | |
CN109154507A (zh) | 预测对于估计到达时间的兴趣点等待时间 | |
CN112418556B (zh) | 一种基于互联网共享平台下的网格化服务*** | |
US11272334B2 (en) | Determining a path of a mobile device in a public transportation building | |
CN112219217A (zh) | 信息处理装置、信息处理方法以及程序 | |
US9671232B2 (en) | Grid-based arrival time prediction | |
CN108020854B (zh) | 一种场面目标态势显示方法及*** | |
Tadic et al. | GHOST: A novel approach to smart city infrastructures monitoring through GNSS precise positioning | |
CN113657681A (zh) | 联结智能公交站台和共享交通的方法、***和存储介质 | |
CN113160542A (zh) | 基于信息反馈的乘车方法及装置 | |
Budimir et al. | Floating car data technology | |
US20180073881A1 (en) | Computer-Implemented Method, System, and Computer Program Product for Detecting Modes of Transportation of a User | |
JP2022001840A (ja) | 制御装置、プログラム、システム、及び制御方法 | |
US20220057809A1 (en) | Method and Apparatus for Predicting Demand for Personal Mobility Vehicle and Redistributing Personal Mobility Vehicle | |
CN113611116B (zh) | 一种基于用户位置的伴随式服务提供方法及*** | |
CN115759660A (zh) | 一种无人驾驶车辆的调度方法、装置、设备和介质 | |
CN115129769A (zh) | 一种居民出行调查扩样方法、装置及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: DE Ref document number: 40024348 Country of ref document: HK |
|
GR01 | Patent grant | ||
GR01 | Patent grant |