基于判断线段是否相交的叫车订单播送系统的制作方法

文档序号:6624578阅读:121来源:国知局
基于判断线段是否相交的叫车订单播送系统的制作方法
【专利摘要】本发明涉及出租车订单分配方法的【技术领域】,具体公开了一种基于判断线段是否相交的叫车订单播送系统,其包括:判断模块,订单播送模块;所述判断模块,用于判断各在线出租车针对某一叫车订单是否需要跨越障碍物;所述订单播送模块,用于向不需要跨越障碍物的出租车播送所述叫车订单信息。本发明的技术方案基于线段是否相交的判断,能检测出订单周围的司机是否有需要跨越障碍物的情形,因此在算法的性能和复杂度上有非常好优势,相比与传统的基于路面距离的计算,无需考虑实时路况,大大降低了服务器的计算性能;同时也避免了向需要跨越障碍物的司机推送订单,也提高了订单推送的效率和准确度。
【专利说明】基于判断线段是否相交的叫车订单播送系统

【技术领域】
[0001]本发明涉及出租车智能设备【技术领域】,尤其涉及出租车订单分配方法的【技术领域】。

【背景技术】
[0002]随着打车软件的普及,人们的打车习惯已经被深刻的改变。现有的打车软件使用时,乘客通过打车软件发出叫车订单需求,服务器接收到叫车订单需求后,自动匹配该订单起点位置周围的多个司机,将该订单推送给相关司机。
[0003]然而由于目前实时路况的复杂性,在获取一订单周围的司机方面,现有的打车软件只能以直线距离为准。这样就暴露出一个问题,对南方的某些城市如武汉、上海、杭州等,存在跨江播送的情况。以武汉为例,武汉市中心被长江切为两半,而现有的打车软件在计算司机与订单的距离时只能计算出直线距离,在这种情况下,某一订单A起点位置和某一司机甲当前位置分布在长江的两岸,直线距离只有0.5km,而司机甲从其当前位置实际接到订单A的乘客则需要先行驶较远距离,过桥,再返回一段路程,实际行程可能达到5km,因此司机甲实际上不属于订单A起点位置周围的司机,不应当将订单A推送给司机甲。


【发明内容】

[0004]本发明要解决的技术问题是:在叫车订单分配或推送过程中,如何克服只通过直线距离获取一订单周围的司机的方法的缺陷,避免向需要跨江、跨河以及跨越立交桥等障碍物的司机推送订单。
[0005]为了解决上述技术问题,本发明所采用的技术方案是:
[0006]一种基于判断线段是否相交的叫车订单播送系统,其包括:判断模块,订单播送模块;
[0007]所述判断模块,用于判断各在线出租车针对某一叫车订单是否需要跨越障碍物;
[0008]所述订单播送模块,用于向不需要跨越障碍物的出租车播送所述叫车订单信息。
[0009]优选的,所述判断模块包括如下步骤:
[0010]步骤1,采集障碍物上至少两个点,形成一个以上障碍物线段,取其中一个障碍物线段为P1P2 ;
[0011]步骤2,取叫车订单集合中任一叫车订单Q,设Q的起点位置为P3,设有一个以上的出租车符合出租车当前位置在叫车订单Q起点位置周围的条件,形成出租车信息集合;
[0012]步骤3,取出租车信息集合中任一个出租车C,设C的当前位置为P4,形成司机订单线段P3P4 ;
[0013]步骤4,判断P1P2和P3P4是否相交,如果是,则出租车C针对叫车订单Q需要跨越障碍物,转步骤6 ;如果否,转下一步骤;
[0014]步骤5,各障碍物线段是否已经遍历完,如果否,返回步骤4,取下一个障碍物线段判断是否与司机订单线段P3P4相交;如果是,则出租车C针对叫车订单Q不需要跨越障碍物,转步骤6 ;
[0015]步骤6,出租车信息集合是否已经遍历完,如果否,返回步骤3,取出租车信息集合中下一个出租车;如果是,转下一步骤;
[0016]步骤7,叫车订单集合是否已经遍历完,如果否,返回步骤2,取叫车订单集合中下一叫车订单;如果是,结束。
[0017]进一步优选的,所述判断P1P2和P3P4是否相交的步骤是:
[0018]设定条件I 为:Ρ3|?1Χ|73Ρ4<0,Ρ3Ρ2Χpspi>0;或者'papiXΡ3|?4>0,Ρ3|>2Χ|?3Ρ4<0;
[0019]设定条 件 2 为:Ρ?Ρ3ΧΡ?Ρ2<0, Fl?XPlP2>0;;或者FlP3XFlF2>0, pmxplp2<0;
[0020]如果条件I和条件2同时满足,则P1P2和P3P4相交。
[0021]进一步优选的,如果条件I ?两足,条件2不?两足,但时,如果叫车订单Q的起点位置P3在P1P2线段上,P1P2和P3P4是相交的;如果叫车订单Q的起点位置P3在P1P2线段的延长线上,P1P2和P3P4是不相交的。
[0022]进一步优选的,所述障碍物为江、河或立交桥。
[0023]本发明的上述技术方案基于线段是否相交的判断,能检测出订单周围的司机是否有需要跨越障碍物的情形,达到如下技术效果:
[0024]1、在算法的性能和复杂度上有非常好优势,相比与传统的基于路面距离的计算,无需考虑实时路况,大大降低了服务器的计算性能;
[0025]2、避免向需要跨越障碍物的司机推送订单,也提高了订单推送的效率和准确度。

【专利附图】

【附图说明】
[0026]图1本发明判断模块流程图。
[0027]图2基于向量的叉积方式判断两线段是否相交原理图。
[0028]图3基于向量的叉积方式判断两线段是否相交的一种特殊情况图。
[0029]图4基于向量的叉积方式判断两线段是否相交的另一种特殊情况图。

【具体实施方式】
[0030]下面结合附图和具体实施例对本发明作进一步说明,以使本领域的技术人员可以更好的理解本发明并能予以实施,但所举实施例不作为对本发明的限定。
[0031]本发明的工作原理是:基于判断线段是否相交,把江、河、立交桥等需要跨越的障碍物认为是若干个线段连接而成的折线;将司机-订单连线认为是一段线段,一次判断司机-订单线段与障碍物折线中的所有线段是否相交,如果发生相交,则认为存在跨越障碍物的情形;否则不存在跨越障碍物的情形。
[0032]本发明,基于判断线段是否相交的叫车订单播送系统,包括:判断模块,订单播送模块;
[0033]所述判断模块,用于判断各在线出租车针对某一叫车订单是否需要跨越障碍物;
[0034]所述订单播送模块,用于向不需要跨越障碍物的出租车播送所述叫车订单信息。
[0035]如图1所示,本发明判断模块流程图。所述判断模块包括如下步骤:
[0036]步骤1,采集障碍物上至少两个点,形成一个以上障碍物线段,取其中一个障碍物线段为P1P2 ;
[0037]步骤2,取叫车订单集合中任一叫车订单Q,设Q的起点位置为P3,设有一个以上的出租车符合出租车当前位置在叫车订单Q起点位置周围的条件,形成出租车信息集合;
[0038]步骤3,取出租车信息集合中任一个出租车C,设C的当前位置为P4,形成司机订单线段P3P4 ;
[0039]步骤4,判断P1P2和P3P4是否相交,如果是,则出租车C针对叫车订单Q需要跨越障碍物,转步骤6 ;如果否,转下一步骤;
[0040]步骤5,各障碍物线段是否已经遍历完,如果否,返回步骤4,取下一个障碍物线段判断是否与司机订单线段P3P4相交;如果是,则出租车C针对叫车订单Q不需要跨越障碍物,转步骤6 ;
[0041]步骤6,出租车信息集合是否已经遍历完,如果否,返回步骤3,取出租车信息集合中下一个出租车;如果是,转下一步骤;
[0042]步骤7,叫车订单集合是否已经遍历完,如果否,返回步骤2,取叫车订单集合中下一叫车订单;如果是,结束。
[0043]可以采用基于向量的叉积(cross product)方式判断两线段是否相交,也可以采用其他方法判断两线段是否相交。
[0044]采用向量的叉积(cross product)方式判断两线段对应向量和Ρ3:Ρ〗;是否相交的原理是:如图2所示,设有线段P1P2,P3P4。的叉积为正时,说明pspl在丨的顺时针方向上;+Ρ3Ρ!ΧΡ3Ρ(为负时,说明在7?KI的逆时针方向上;叉积为O说明两向量共线(同向或反向)。因此,当同时满足以下两个条件时则和:P3P|;相交:
[0045](I)
XP3P4>0,P3F2X P3P4<0 );
[0046](2) 和在 的两侧(即 PlJj!XyiI^cO,--?ρ4χρ?ρ?>0;.或者ριρ3χριι?2>0, Fimxmm<0 )。
[0047]图3和图4是特殊情况,满足条件(I),不满足条件(2),因为pipi;和P2P2重合,
即;和石完啲叉积为O。当叉积为O时要分情况讨论,当P3在线段P1P2上时两线段相交;当P3在线段P1P2的延长线上时两线段不相交。
[0048]根据上述基于向量的叉积方式判断两线段是否相交的方法,所述判断P1P2和P3P4是否相交的步骤是:
[0049]设定条件I 为:或者
[0050]设定条件 2 为:pip〗x Pii^cO,PiP4X Pi ρ?>0;或者Pi pb<Pt P2>0, pi piXPi卩《<0;
[0051]如果条件I和条件2同时满足,则P1P2和P3P4相交。
[0052]进一步的,如果条件I满足,条件2不满足,--..Ρ?Ρ3ΧPlffi=O时,如果叫车订单Q的起点位置P3在P1P2线段上,此时P1P2和P3P4是相交的;如果叫车订单Q的起点位置P3在P1P2线段的延长线上,此时P1P2和P3P4是不相交的。
[0053]具体实施例一:
[0054]以武汉为例,长江在武汉市内近似为一条直线,我们采用人工打点的方式,取长江在武汉的两端点(114.377997,30.666914)和(114.157229,30.380211)
[0055]某司机在湖北省武汉市江岸区中山大道1125号,经纬度(114.31108,,30.604891),某乘客在和平达到与秦园路交叉口发出订单,经纬度(114.338137,30.59485),单看司机与乘客的直线距离在2km以内,而因为司机乘客联系横跨了长江,导致司机需要绕桥接乘客,实际距离近8km。
[0056]将上面长江两点(114.377997,30.666914)和(114.157229,30.380211)作为 P1P2线段,司机(114.31108,, 3.604891)与订单(114.338137, 30.59485)连线作为 OD 线段,根据上述基于向量的叉积方式判断两线段是否相交的方法可准确识别出P1P2线段与OD线段相交,因而判断该订单对该司机为跨江播送,进而将该订单对该司机隔离,即不向该司机播送该订单。
[0057]具体实施例二:
[0058]上海的黄浦江相对复杂,在上海的走势不是一条直线,那么我们通过采集若干个关键点,将黄浦江在上海内的河段描述为一个折线,依次为P1P2、P2P3、P3P4、P5P6、P7P8,判断是否夸奖播送只需判断司乘连线OD是否与上面的任一条线段相交即可。
[0059]以上所述实施例仅是为充分说明本发明而所举的较佳的实施例,本发明的保护范围不限于此。本【技术领域】的技术人员在本发明基础上所作的等同替代或变换,均在本发明的保护范围之内。本发明的保护范围以权利要求书为准。
【权利要求】
1.一种基于判断线段是否相交的叫车订单播送系统,其特征在于,其包括:判断模块,订单播送模块; 所述判断模块,用于判断各在线出租车针对某一叫车订单是否需要跨越障碍物; 所述订单播送模块,用于向不需要跨越障碍物的出租车播送所述叫车订单信息。
2.如权利要求1所述的叫车订单播送系统,其特征在于,所述判断模块包括如下步骤: 步骤1,采集障碍物上至少两个点,形成一个以上障碍物线段,取其中一个障碍物线段为 P1P2 ; 步骤2,取叫车订单集合中任一叫车订单Q,设Q的起点位置为P3,设有一个以上的出租车符合出租车当前位置在叫车订单Q起点位置周围的条件,形成出租车信息集合; 步骤3,取出租车信息集合中任一个出租车C,设C的当前位置为P4,形成司机订单线段P3P4 ; 步骤4,判断P1P2和P3P4是否相交,如果是,则出租车C针对叫车订单Q需要跨越障碍物,转步骤6 ;如果否,转下一步骤; 步骤5,各障碍物线段是否已经遍历完,如果否,返回步骤4,取下一个障碍物线段判断是否与司机订单线段P3P4相交;如果是,则出租车C针对叫车订单Q不需要跨越障碍物,转步骤6 ; 步骤6,出租车信息集合是否已经遍历完,如果否,返回步骤3,取出租车信息集合中下一个出租车;如果是,转下一步骤; 步骤7,叫车订单集合是否已经遍历完,如果否,返回步骤2,取叫车订单集合中下一叫车订单;如果是,结束。
3.如权利要求2所述的叫车订单播送系统,其特征在于,所述判断P1P2和P3P4是否相交的步骤是: 设定条件 I 为:pspjx --Η<0,--?χΡ3Ρ<1>0;或者 Ρ3--?χ_^1>0,ρ3ρ:|χρ3ρ1<0; 设定条件 2 为:PiJ^XJJipI<0, ρ--4χ_ρ?ρ|>0;.或者pip|xpip|>0,PlMXPlP2<0; 如果条件I和条件2同时满足,则P1P2和P3P4相交。
4.如权利要求3所述的叫车订单播送系统,其特征在于, 如果条件I满足,条件2不满足,?Μ?κχPlK=O时,如果叫车订单Q的起点位置Ρ3在Ρ1Ρ2线段上,Ρ1Ρ2和Ρ3Ρ4是相交的;如果叫车订单Q的起点位置Ρ3在Ρ1Ρ2线段的延长线上,Ρ1Ρ2和Ρ3Ρ4是不相交的。
5.如权利要求1、2、3或4所述的叫车订单播送系统,其特征在于,所述障碍物为江、河或立交桥。
【文档编号】G06Q50/30GK104183123SQ201410421805
【公开日】2014年12月3日 申请日期:2014年8月25日 优先权日:2014年8月25日
【发明者】张凌宇 申请人:北京嘀嘀无限科技发展有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1