具体实施方式
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
本发明中,多个用户出行时,多个用户组成一个用户群,通过相同的认证码进入用户群,利用所持有的终端设备通过该终端设备中的导航软件的导航页面进行路径导航,这里并不限于通过相同的认证码进入用户群,还可以采用其他的认证方式,例如根据用户ID,在此不做具体限定。
图1示出了根据本发明一个实施例的多个用户出行的路径计算方法的流程图。如图1所示,该方法包括以下步骤:
步骤S100,对多个用户中的每个用户进行位置定位,得到每个用户的位置坐标。
具体地,利用终端设备提供的GPS定位功能,对多个用户中的每个用户进行位置定位,得到每个用户的位置坐标,作为每个用户的起点。
步骤S101,根据多个用户的位置坐标计算中心点或中心区域。
其中,中心点或中心区域为视觉中心点或中心区域,指用户的视野在导航页面中的中心点或中心区域。
步骤S102,根据中心点或中心区域向多个用户分别推荐路径。
在本实施例中,用户可以选择中心点或中心点的临近地点或中心区域内地点或中心区域的临近地点,将用户选择的地点作为终点,向多个用户分别推荐路径。
根据本发明上述实施例提供的方法,对多个用户中的每个用户进行位置定位,得到每个用户的位置坐标,根据多个用户的位置坐标计算中心点或中心区域,根据中心点或中心区域向多个用户分别推荐路径,从而保证每个用户到达集合地点的时间差不多,避免了用户之间的相互等待,浪费用户时间。
下面针对多个用户为三个以上用户时详细介绍本发明的技术方案:
图2示出了根据本发明另一个实施例的多个用户出行的路径计算方法的流程图。如图2所示,该方法包括以下步骤:
步骤S200,对多个用户中的每个用户进行位置定位,得到每个用户的位置坐标。
具体地,利用终端设备提供的GPS定位功能,对多个用户中的每个用户进行位置定位,得到每个用户的位置坐标,作为每个用户的起点。
步骤S201,利用凸壳算法根据多个用户的位置坐标计算得到凸壳区域。
其中,凸壳区域为包含多个用户的位置坐标的多边形区域。
三个以上用户时,可以利用算法计算凸壳区域。其中,凸壳可以看做平面点集合的边界,在本发明中,将所有用户的位置坐标作为平面点集合,进行凸壳计算,所有用户的集合地点不能超出凸壳的边界。以图3所示,详细介绍凸壳区域计算方法:假设用户个数为12个,标记为P0-P12,在利用步骤S200确定每个用户的位置坐标后,选择其中任一点为原点,这里选择P0为原点,做P0与其它所有点的连线,取出最长线段P0P8与次最长线段P0P1,将P8P1相连,在P0P1P8三角形里,P1P8与P0P6、P0P3相交,选出两者之间的最长线段P0P3,连接P8P3、P1P3,形成两个三角形P0P3P8、P0P1P3,其中P0P6与P3P8相交,则连接P8P6、P6P3、P3P1。以上方法依次类推,直到连接的边没有其他线段与之相交为止,生成凸壳区域,从而缩小了集合地点的选择范围。
步骤S202,根据多个用户的位置坐标计算中心点或中心区域。
其中,中心点或中心区域为视觉中心点或中心区域。
虽然利用步骤S201计算得到凸壳区域,但该凸壳区域的范围太大,可供选择的地点非常多,为了进一步缩小可供用户选择的地点,保证多个用户到达的时间相似,本实施例进一步计算中心点或中心区域,其中,中心点或中心区域位于计算得到的凸壳区域内。
在步骤S201中计算得到了凸壳区域,该凸壳区域为多边形区域,现在针对具体多边形区域详细介绍中心点或中心区域的计算方法:
若凸壳区域为三角形区域,可以采用如下方法计算中心点:计算三角形区域的重心,将重心作为中心点,也就是说,在根据多个用户的位置坐标计算得到的凸壳区域为三角形时,中心点为三角形的重心(三角形三边中线的交点)。
若凸壳区域为四边形区域,可以采用如下方法计算中心点:计算四边形区域的长对角线的中点,将中点作为中心点,具体地,将四边形的各顶点相连,得到两条对角线,取长对角线的中点作为四边形区域的中心点。
若凸壳区域为五边形区域及以上区域,可以采用如下方法计算中心点:计算凸壳区域的与各顶点相邻的两顶点之间的连线的相交区域,将相交区域作为中心区域,这里以凸壳区域为五边形区域详细说明中心区域的计算方法,凸壳区域为五边形以上区域时,中心区域的计算方法与其类似:将五边形的与各顶点相邻的两顶点相互连线,各连线相交区域为中心区域,如图4所示,此外,图4还示出了凸壳区域为六变形区域时,中心区域的示意图,凸壳区域为六边形以上区域的情况,图中未示出。
根据步骤S202计算出中心区域,该中心区域可能包含有很多不同类型的地点,例如,商场、影院、车站等,且每种类型又有多个地点可供用户选择,为了方便用户,满足用户需求,本实施例的方法还包括以下步骤:根据多个用户中的用户对中心区域内地点类别的选择,向该用户推荐中心区域内相应类别的地点。
步骤S203,判断用户是否选择中心点或中心区域内地点,若是,则执行步骤204;若否,则执行步骤S205。
在步骤S202中计算得到了中心点或中心区域,但存在中心点或中心区域交通不便、或者并不能满足用户出行目的,如购物、看电影等,即可能存在用户对计算得到的中心点或中心区域内地点并不满意而不选择中心点或中心区域作为集合地点的情况,此时,需要判断用户是否选择了中心点或中心区域内地点,从而确定是否需要以中心点或中心区域内地点为终点,向用户推荐路径。
步骤S204,根据用户对中心点或中心区域内地点的选择向用户推荐路径。
在判断用户选择了中心点或中心区域内地点的情况下,以中心点或中心区域内地点为终点,结合路况向每个用户推荐路径。
步骤S205,对中心点或中心区域进行预设阈值的缓冲区分析。
在判断出用户未选择中心点或中心区域内地点的情况下,说明中心点或中心区域内没有用户满意的集合地点,本步骤根据中心点或中心区域情况,结合用户出行目的、交通、路况等,可以对中心点或中心区域进行预设阈值的缓冲区分析,例如,以中心点或中心区域为圆心,缓冲半径为0.5km或1km或2km等进行缓冲区计算,其中,缓冲区不能超出凸壳区域。
步骤S206,根据用户对缓冲区内地点的选择向用户推荐路径。
用户可以选择步骤S205中得到的缓冲区内的地点,将该地点作为集合地点,即终点,根据该地点向每个用户推荐路径。
上面实施例介绍了三个以上用户出行的情况,还存在只有两个用户相约出行的情况,在多个用户为两个用户时,则不存在凸壳区域情况,可以直接计算中心点,具体可以采用如下方法计算中心点:计算两个用户的位置坐标连线的中点,将中点作为中心点,如图4所示。
在判断出用户未选择中心点的情况下,说明用户对于将中心点作为集合地点并不满意,可以根据中心点情况,结合用户出行目的、交通、路况等,对中心点进行预设阈值的缓冲区分析,例如,以中心点为圆心,缓冲半径为0.5km或1km或2km等进行缓冲区计算,得到的圆形区域为缓冲区。
根据本发明上述实施例提供的方法,对多个用户中的每个用户进行位置定位,得到每个用户的位置坐标,利用凸壳算法根据多个用户的位置坐标计算得到凸壳区域,可以缩小集合地点的选择范围,根据多个用户的位置坐标计算中心点或中心区域,则进一步缩小了选择范围,根据用户对中心点或中心区域内地点的选择向用户推荐路径,或者,在用户对中心点或中心区域不满意的情况下,对中心点或中心区域进行预设阈值的缓冲区分析,根据用户对缓冲区内地点的选择向用户推荐路径,保证每个用户到达集合地点的时间差不多,避免了用户之间的相互等待,浪费用户时间,结合用户出行目的进行集合地点计算,更为方便。
图5示出了根据本发明一个实施例的多个用户出行的路径计算装置的结构框图。如图5所示,该装置包括:定位模块500、计算模块510和推荐模块520。
定位模块500,适于对多个用户中的每个用户进行位置定位,得到每个用户的位置坐标。
具体地,利用终端设备提供的GPS定位功能,对多个用户中的每个用户进行位置定位,得到每个用户的位置坐标,作为每个用户的起点。
计算模块510,适于根据多个用户的位置坐标计算中心点或中心区域,其中,中心点或中心区域为视觉中心点或中心区域。
其中,中心点或中心区域为视觉中心点或中心区域,指用户的视野在导航页面中的中心点或中心区域。
推荐模块520,适于根据中心点或中心区域向多个用户分别推荐路径。
在本实施例中,用户可以选择中心点或中心点的临近地点或中心区域内地点或中心区域的临近地点,将用户选择的地点作为终点,向多个用户分别推荐路径。
根据本发明上述实施例提供的装置,对多个用户中的每个用户进行位置定位,得到每个用户的位置坐标,根据多个用户的位置坐标计算中心点或中心区域,根据中心点或中心区域向多个用户分别推荐路径,从而保证每个用户到达集合地点的时间差不多,避免了用户之间的相互等待,浪费用户时间。
图6示出了根据本发明另一个实施例的多个用户出行的路径计算装置的结构框图。多个用户组成一个用户群,通过相同的认证码进入用户群。如图6所示,该装置包括:定位模块600、计算模块610和推荐模块620。
定位模块600,适于对多个用户中的每个用户进行位置定位,得到每个用户的位置坐标。
计算模块610,适于根据多个用户的位置坐标计算中心点或中心区域,其中,中心点或中心区域为视觉中心点或中心区域。
针对三个以上用户,计算模块610还适于:利用凸壳算法根据多个用户的位置坐标计算得到凸壳区域,其中,凸壳区域为包含多个用户的位置坐标的多边形区域。
当多个用户为三个以上用户时,可以利用算法计算凸壳区域。其中,凸壳可以看做平面点集合的边界,在本发明中,将所有用户的位置坐标作为平面点集合,进行凸壳计算,所有用户的集合地点不能超出凸壳的边界,从而缩小了集合地点的选择范围。
虽然计算得到凸壳区域,但该凸壳区域的范围太大,可供选择的地点非常多,为了进一步缩小可供用户选择的地点,保证多个用户到达的时间相似,本实施例进一步计算中心点或中心区域,其中,中心点或中心区域位于计算得到的凸壳区域内。不同类型的凸壳区域,中心点或中心区域的计算方法不同:
若凸壳区域为三角形区域,计算模块610进一步适于:计算三角形区域的重心,将重心作为中心点。
若凸壳区域为四边形区域,计算模块610进一步适于:计算四边形区域的长对角线的中点,将中点作为中心点。
若凸壳区域为五边形区域及以上区域,计算模块610进一步适于:计算凸壳区域的与各顶点相邻的两顶点之间的连线的相交区域,将相交区域作为中心区域。
推荐模块620,适于根据中心点或中心区域向用户推荐路径。
可选地,推荐模块620还适于:根据多个用户中的用户对中心区域内地点类别的选择,向该用户推荐中心区域内相应类别的地点。
可选地,当多个用户为两个用户时,计算模块610进一步适于:计算两个用户的位置坐标连线的中点,将中点作为中心点。
可选地,若用户选择中心点或中心区域内地点,推荐模块620进一步适于:根据用户对中心点或中心区域内地点的选择向用户推荐路径。
在计算得到了中心点或中心区域,但存在中心点或中心区域交通不便、或者并不能满足用户出行目的,如购物、看电影等,即可能存在用户对计算得到的中心点或中心区域内地点并不满意而不选择中心点或中心区域作为集合地点的情况,此时,需要向用户推荐其他地点,在用户选择该地点的情况下,向用户推荐路径。具体实现方案如下:
若多个用户中的用户未选择中心点或中心区域内地点,推荐模块620进一步包括:分析单元621和推荐单元622。
分析单元621,适于对中心点或中心区域进行预设阈值的缓冲区分析。
例如,以中心点或中心区域为圆心,缓冲半径为0.5km或1km或2km等进行缓冲区计算,其中,缓冲区不能超出凸壳区域。
推荐单元622,适于根据用户对缓冲区内地点的选择向用户推荐路径。
根据本发明上述实施例提供的装置,对多个用户中的每个用户进行位置定位,得到每个用户的位置坐标,利用凸壳算法根据多个用户的位置坐标计算得到凸壳区域,可以缩小集合地点的选择范围,根据多个用户的位置坐标计算中心点或中心区域,则进一步缩小了选择范围,根据用户对中心点或中心区域内地点的选择向用户推荐路径,或者,在用户对中心点或中心区域不满意的情况下,对中心点或中心区域进行预设阈值的缓冲区分析,根据用户对缓冲区内地点的选择向用户推荐路径,保证每个用户到达集合地点的时间差不多,避免了用户之间的相互等待,浪费用户时间,结合用户出行目的进行集合地点计算,更为方便。
上述说明示出并描述了本申请的若干优选实施例,但如前所述,应当理解本申请并非局限于本文所披露的形式,不应看作是对其他实施例的排除,而可用于各种其他组合、修改和环境,并能够在本文所述发明构想范围内,通过上述教导或相关领域的技术或知识进行改动。而本领域人员所进行的改动和变化不脱离本申请的精神和范围,则都应在本申请所附权利要求的保护范围内。