一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

目标所处位置的索引方法、装置和电子设备与流程

2022-06-05 05:56:39 来源:中国专利 TAG:


1.本技术属于信息检索领域,具体而言,涉及一种目标所处位置的索引方法、装置、存储介质和电子设备。


背景技术:

2.通常,在一些车流监控管理场景中,需要实时的获取海量的车辆所处的行政区域位置乃至道路位置信息,以分析是否有车辆在某个区域或道路上停留过久或超速等,从而对相应车辆做出及时处理。
3.在车辆监控管理方法中,需要根据车辆的位置信息从行政区域位置信息集合或道路位置信息集合中进行索引,以确定车辆所处的具体位置。传统方法通常是在这些信息集合中进行循环索引,这种方式针对少量的车辆的位置索引可以满足实时性要求,但对于海量的车辆来说,由于每个车辆的索引的数据量大而难以满足索引的实时性。


技术实现要素:

4.为了解决上述问题,本技术提出一种目标所处位置的索引方法、装置、存储介质和电子设备,以提高目标位置索引的效率。
5.一种目标所处位置的索引方法,所述方法包括:
6.获取待索引目标的目标坐标点;
7.从区域信息集合中索引出第二坐标值中的极大值不小于所述目标坐标点中对应的目标坐标值,且极小值不大于所述目标坐标点中对应的目标坐标值的区域,作为候选区域;
8.根据每个所述候选区域的第一坐标值检测对应的所述候选区域是否包围所述目标坐标点;
9.判定包围了所述目标坐标点的候选区域为所述待索引目标的所处区域;
10.其中,所述区域信息集合中的每个区域包括用于表征区域实际边界坐标点的第一坐标值集合,和从所述第一坐标值集合中提取出的极值坐标值所形成的第二坐标值集合。
11.在其中一个实施例中,所述方法还包括:
12.根据所述目标坐标点生成对应的网格;
13.从道路信息集合中索引出第三坐标值处于所述网格内的道路,作为候选道路;
14.检测所述目标坐标点是否处于所述候选道路中的相邻两个第三坐标点所形成的线段内;
15.判定处于相邻两个第三坐标点所形成的线段内的候选道路为所述待索引目标的所处道路;
16.其中,所述道路信息集合中的每个道路包括用于表征区域实际道路顶点位置的第三坐标点集合。
17.在其中一个实施例中,所述目标坐标点的目标坐标值包括目标经度值和目标纬度
值;所述边界坐标点的第一坐标值集合包括边界经度值集合和边界纬度值集合;所述极大值包括所述边界经度值集合中的最大经度值和边界纬度值集合中的最大纬度值,所述极小值包括所述边界经度值集合中的最小经度值和边界纬度值集合中的最小纬度值;
18.所述从区域信息集合中索引出第二坐标值中的极大值不小于所述目标坐标点中对应的目标坐标值,且极小值不大于所述目标坐标点中对应的目标坐标值的区域,作为候选区域,包括:
19.利用二分法从所述区域信息集合中筛选出其中至少一个极大值和/或极小值与所述目标坐标值相匹配的坐标值区间,再从所述极值区间对应的区域信息集合中索引出符合极大值不小于所述目标坐标值,且极小值不大于所述目标坐标值的区域,作为候选区域;
20.所述从道路信息集合中索引出第三坐标值处于所述网格内的道路,作为候选道路,包括:
21.利用二分法从所述道路信息集合中筛选出第三坐标点集合中,道路经度值处于所述网格的经度坐标范围内的候选道路经度值集合;
22.利用二分法从所述道路信息集合中筛选出第三坐标点集合中,道路纬度值处于所述网格的纬度坐标范围内的候选道路纬度值集合;
23.对所述候选道路经度值集合与所述候选道路纬度值集合取交集,形成与所述道路信息集合的道路的坐标对应的候选坐标点集合,作为候选道路。
24.在其中一个实施例中,所述检测所述目标坐标点是否处于所述候选道路中的相邻两个第三坐标点所形成的线段内,包括:
25.从所述候选道路中过滤出相邻两个第三坐标点中的极大值坐标值不小于所述目标坐标点中对应的目标坐标值,且极小值坐标值不大于所述目标坐标点中对应的目标坐标值的道路;
26.检测所述目标坐标点是否处于过滤出的候选道路中的相邻两个第三坐标点所形成的线段内。
27.在其中一个实施例中,所述检测所述目标坐标点是否处于所述候选道路中的相邻两个第三坐标点所形成的线段内,包括:
28.计算所述目标坐标点与所述候选道路中的相邻两个第三坐标点所形成的线段的距离,
29.检测所述距离是否小于预设距离阈值,若是,则判定所述目标坐标点处于所述候选道路中的相邻两个第三坐标点所形成的线段内。
30.在其中一个实施例中,所述根据所述目标坐标点生成对应的网格,包括:
31.获取与所述所处区域相匹配的半径值,将以所述目标坐标点为圆心所述半径值为大小所形成的区域作为所述网格;或
32.获取与所述所处区域相匹配的经度阈值和纬度阈值,将与所述目标坐标点的目标纬度值的差值绝对值不超过所述纬度阈值,且与所述目标坐标点的目标经度值的差值绝对值不超过所述经度阈值所形成的区域作为所述网格。
33.在其中一个实施例中,所述方法在电子设备中的内存进行操作;
34.对所述区域信息集合以及所述道路信息集合中的数据进行预处理,使得所述道路信息集合中的数据为所述区域信息集合中的一部分,且具有相同的数据类型,并对道路信
息集合中的数据进行排序;
35.所述区域信息集合和所述道路信息集合中的数据均存储在电子设备的内存中,并在所述内存中进行索引操作。
36.一种目标所处位置的索引装置,所述装置包括:
37.目标坐标点获取模块,用于获取待索引目标的目标坐标点;
38.候选区域索引模块,用于从区域信息集合中索引出第二坐标值中的极大值不小于所述目标坐标点中对应的目标坐标值,且极小值不大于所述目标坐标点中对应的目标坐标值的区域,作为候选区域;
39.所处区域识别模块,用于根据每个所述候选区域的第一坐标值检测对应的所述候选区域是否包围所述目标坐标点;判定包围了所述目标坐标点的候选区域为所述待索引目标的所处区域;
40.其中,所述区域信息集合中的每个区域包括用于表征区域实际边界坐标点的第一坐标值集合,和从所述第一坐标值集合中提取出的极值坐标值所形成的第二坐标值集合。
41.一种计算机可读存储介质,存储有计算机程序,所述计算机程序被处理器执行时,使得所述处理器执行本技术任一实施例中所述方法的步骤。
42.一种电子设备,包括存储器和处理器,所述存储器存储有计算机程序,所述计算机程序被所述处理器执行时,使得所述处理器执行如本技术任一实施例中所述方法的步骤。
43.上述的目标所处位置的索引方法、装置、存储介质和电子设备,通过提取区域的极值数据,将极值数据与目标坐标值进行大小比较,筛选出候选区域,进而在候选区域中根据实际的坐标值来判定待索引目标是否处于候选区域内。由于实际的区域通常并不规则,其中的坐标值数量相当多,通过转化为仅分析极大值和极小值的极值数据,大大降低了索引工作的数据量,虽然多了一轮索引,但由于筛选出来的候选区域已经非常少,所以总体下来比直接在不规则的区域中直接索引的数据量要大大降低,大大提高了目标所处位置的索引效率,在针对存在海量的区域信息以及海量的待索引目标时,可以大大提高目标位置确定的实时性。
附图说明
44.为了更清楚地说明本技术实施例的技术方案,下面将对本技术实施例中所需要使用的附图作简单地介绍。应当理解,以下附图仅示出了本技术的某些实施例,而不应被看作是对本技术范围的限制。
45.图1为一个实施例中目标所处位置的索引方法的流程图;
46.图2为一个实施例中目标所处位置的索引方法的场景示意图;
47.图3为一个实施例中目标所处道路的索引过程的流程图;
48.图4为另一个实施例中目标所处位置的索引方法的场景示意图;
49.图5为另一个实施例中目标所处位置的索引方法的流程图;
50.图6为一个实施例中经纬度编码的场景示意图;
51.图7为一个实施例中目标所处位置的索引装置的结构框图;
52.图8为另一个实施例中目标所处位置的索引装置的结构框图;
53.图9为又一个实施例中目标所处位置的索引装置的结构框图;
54.图10为一个实施例中电子设备的结构示意图。
具体实施方式
55.下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
56.在一个实施例中,如图1所示,提供了一种目标所处位置的索引方法,以该方法应用于电子设备为例进行说明,该方法包括:
57.步骤102,获取待索引目标的目标坐标点。
58.本实施例中,待索引目标为需要识别其所处的具体位置的目标,该目标可为车辆、行人等任意可移动的物体。坐标点为反应对应目标或物体所处位置的坐标数据,该坐标数据可以是相对于某一个参考点为原点而建立起来的相对的坐标数据,也可是以地球的经纬度为参考而形成的坐标数据。比如坐标点可包括对应的经度值和纬度值,还可以包括高度值,或者根据经度值、纬度值等数值经过处理之后形成的数据。其中,经度值的范围可以为-180
°
~180
°
,纬度值的范围可为-90
°
~90
°
。根据经度值和纬度值处理之后形成的数据比如可以是利用geohash方式将经度值和纬度值进行编码,将形成的经度值编码和纬度值编码进行组合而形成的新的字符串。比如纬度值产生的编码为10111 00011,经度值产生的编码为11010 01011。电子设备可以将两者进行组合,将偶数位放经度,奇数位放纬度,把2串编码组合生成新串:11100 11101 00100 01111。或者也可以将前8位数字放经度值/纬度值,后8位数字放纬度值/经度值,从而形成新的数值。
59.电子设备可获取每个待索引目标的目标坐标点,该目标坐标点可由对应的待索引目标直接或间接地上报给电子设备,电子设备可将事先获取的目标坐标点存储在相应内存中,并内存中直接提取对应的目标坐标点。
60.步骤104,从区域信息集合中索引出第二坐标值中的极大值不小于目标坐标点中对应的目标坐标值,且极小值不大于目标坐标点中对应的目标坐标值的区域,作为候选区域。
61.本实施例中,区域信息集合中包含各个区域信息,每个区域的信息包含由表征区域实际边界坐标点的第一坐标值集合,和从第一坐标值集合中提取出的极值坐标值所形成的第二坐标值集合。
62.区域可以是由行政单位划分的区域,也可以是根据其他划分规则而划分出来的区域。行政单位的颗粒度可以相同或者不同,比如北京市可以为一个区域,或者北京市丰台区为一个区域,或者说xx市xx区xx县xx 街道等更细的行政区域也可以为一个区域。区域大小的划分可以根据需要监控的实际情况而定。
63.在一个实施例中,坐标点可以包括经度值和纬度值等其中的一个或多个反应坐标位置的数值。比如坐标点包括经度值和纬度值,目标坐标点则包括对应目标的目标经度值和目标纬度值,边界坐标点则包括边界经度值和边界纬度值等第一坐标值。
64.区域实际的边界通常都是不规则的封闭线段,且围成对应区域的线段具有多个,相应的线段的端点也有多个,其中,该端点的坐标点即属于边界坐标点。如下图2所示,其中
示出了3个区域,即区域a、区域b和区域c。其中,区域a的边界坐标点有6个,区域b的边界坐标点有9个,区域c的边界坐标点有5个。
65.电子设备预先可以针对每个区域的区域信息进行预处理,将各个不规则的区域信息处理成规则统一的区域。具体地,可以提取区域信息中的各个维度的第一坐标值,比如分别提取每个边界坐标点的经度值和纬度值,并选取其中的极大值和极小值等极值,即从经度值中提取出极大值、极小值,纬度值中的极大值和极小值,形成第二坐标值集合。针对第二坐标值集合,可以对其进行组合,形成4个处理后的坐标点,该坐标点即为处理后的区域。
66.如下表所示,记每个区域的第i个边界坐标点分别为(xi,yi),其中, xi,yi即第一坐标值,其中的x表示其纬度值,y表示其经度值。通过选取其中的经度值极大值y-max、纬度值极大值x-max、经度值极小值y-min、纬度值极小值x-min,形成如下表2所示的对应区域的第二坐标值集合。
67.表1
[0068][0069]
表2
[0070][0071][0072]
电子设备可以采用各种索引策略,从区域信息集合中索引出满足第二坐标值中的极大值不小于目标坐标点中对应的目标坐标值,且极小值不大于目标坐标点中对应的目标坐标值的区域,将其作为候选区域。比如索引出y-min不大于目标经度值、x-min不大于目标纬度值、y-max不小于目标经度值、y-max不小于目标纬度值的区域,将其作为候选区域。
[0073]
其中,索引策略包括遍历索引的模式,循环所有的区域信息,从其中找到符合条件的所有的候选区域。也可以利用二分法的模式,针对x-min、 x-max、y-min、y-max中的一个或多个进行区间划分,选取满足条件的区间,再从该区间中筛选出满足以上条件的所有的候选区域。
[0074]
步骤106,根据每个候选区域的第一坐标值检测对应的候选区域是否包围目标坐
标点。
[0075]
本实施例中,针对第一轮筛选出来的候选区域,获取每个候选区域的所有第一坐标值,根据该第一坐标值来判断目标坐标点是否处于该候选区域内。类似地,可以将第一坐标值中的各个经度值和目标经度值进行比较分析,将第一坐标值中的各个纬度值和目标纬度值进行比较分析,以确定目标坐标点是否落在候选区域内。
[0076]
步骤108,判定包围了目标坐标点的候选区域为待索引目标的所处区域。
[0077]
本实施例中,在分析判定了目标坐标点落入了其中的一个或多个候选区域内时,则可以判定待索引目标处于对应的一个或多个候选区域内。
[0078]
举例来说,在步骤104中筛选出的候选区域有5个,分别为候选区域1、候选区域2、候选区域3、候选区域4和候选区域5,经过步骤106中的分析,识别出其被候选区域2和候选区域3所包围,则判定待索引目标处于候选区域2和候选区域3之中。
[0079]
再举例来说,如图2所示,在步骤104中筛选出来的候选区域分别为区域b和区域c,在步骤106中筛选出来的包围了待索引目标的仅有区域c,则判定待索引目标处于区域c内。
[0080]
上述的目标所处位置的索引方法,通过提取区域的极值数据,将极值数据与目标坐标值进行大小比较,筛选出候选区域,进而在候选区域中根据实际的坐标值来判定待索引目标是否处于候选区域内。由于实际的区域通常并不规则,其中的坐标值数量相当多,通过转化为仅分析极大值和极小值的极值数据,大大降低了索引工作的数据量,虽然多了一轮索引,但由于筛选出来的候选区域已经非常少,所以总体下来比直接在不规则的区域中直接索引的数据量要大大降低,大大提高了目标所处位置的索引效率,在针对存在海量的区域信息以及海量的待索引目标时,可以大大提高目标位置确定的实时性。
[0081]
在一个实施例中,目标坐标点的目标坐标值包括目标经度值和目标纬度值;边界坐标点的第一坐标值集合包括边界经度值集合和边界纬度值集合。步骤104包括:利用二分法从区域信息集合中筛选出其中至少一个极大值和/或极小值与目标坐标值相匹配的坐标值区间,再从极值区间对应的区域信息集合中索引出符合极大值不小于目标坐标值,且极小值不大于目标坐标值的区域,作为候选区域。
[0082]
本实施例中,电子设备可以针对区域信息集合中的经度值极大值y-max、纬度值极大值x-max、经度值极小值y-min、纬度值极小值x-min中的一个或多个进行区间划分,选取满足条件的区间,再从该区间中筛选出满足以上条件的所有的候选区域。
[0083]
其中,记目标坐标点的目标经度值为y0,目标纬度值为x0。电子设备可以选取其中一个或多个极值坐标值,比如选取x-min进行二分法取区间,以在区域信息集合中筛选出x-min≤x0的区域信息集合,进而针对筛选出来的区域信息集合循环所有区域,筛选出符合极大值不小于目标坐标值,且极小值不大于目标坐标值的区域,作为候选区域。
[0084]
在一个实施例中,电子设备可针对每个极值坐标值进行二分法取区间。从而筛选出符合x-min≤x0、y-min≤y0、y-max≥y0、x-max≥x0的区域集合,作为候选区域集合。
[0085]
其中,以区域信息集合中的区域的总量为n来说,记采用循环所有区域的方式来索引的时间复杂度为o(n),则采用二分法选取一个极值坐标值的区间的方式的时间复杂度最小为o(log2n),最大为o(n);采用二分法取 x-max、y-max、x-min、y-min的所有区间,则其空间复杂度会增大,但时间复杂度为o(4log2n),可以理解地,当区域的总量n越大,采用二分法的方式来进行索引的时间复杂度相对与循环索引而言则越小,其索引的效率和实时性越
高。
[0086]
在一个实施例中,如图3所示,上述方法还包括目标所处道路的索引过程,该过程可在上述的步骤108之后或步骤102之后执行,包括:
[0087]
步骤302,根据目标坐标点生成对应的网格。
[0088]
本实施例中,网格可以为一个由目标坐标点进行扩展而形成的小的区域。其中,目标坐标点可为该网格的中心点,网格的形状可以为三角形、矩形、圆形、五边形、六边形等形状。网格的大小可以根据区域或者道路信息的密集程度而确定。
[0089]
举例来说,可以根据目标坐标点,对其在各个维度的坐标值上加减预设的数值,从而形成类似于上述第二区域的形状的矩形。
[0090]
在一个实施例中,步骤302包括:获取与所处区域相匹配的半径值,将以目标坐标点为圆心半径值为大小所形成的区域作为网格。
[0091]
具体地,电子设备预先设定了不同的区域所匹配的半径值,其中,区域中的道路线路越复杂或越多,则对应的半径值越小,道路线路越简单或者越少,则对应的半径值越大。
[0092]
电子设备在确定了待索引目标的所处区域之后,则获取与该所处区域相匹配的半径值,根据该半径值对目标坐标点进行扩展,形成以该目标坐标点为圆心,以相匹配的半径值为半径的网格。所形成的网格为圆形。
[0093]
在一个实施例中,当存在多个所处区域时,则获取相匹配的所有半径值中,半径值最大的数值作为最终的半径值,并形成网格。由于存在多个所处区域,则选取最大的半径值,可以降低道路未被覆盖到网格中的情况产生。
[0094]
在一个实施例中,步骤302包括:获取与所处区域相匹配的经度阈值和纬度阈值,将与目标坐标点的目标纬度值的差值绝对值不超过纬度阈值,且与目标坐标点的目标经度值的差值绝对值不超过经度阈值所形成的区域作为网格。
[0095]
本实施例中,所形成的网格为矩形。与圆形的网格类似,电子设备预先设置了不同的区域所对应的经度阈值和纬度阈值。其中,区域中的道路线路越复杂或越多,则对应的经度阈值和纬度阈值越小,道路线路越简单或者越少,则对应的经度阈值和纬度阈值越大。
[0096]
电子设备在确定了待索引目标的所处区域之后,则获取与该所处区域相匹配的经度阈值和纬度阈值,根据该半径值对目标坐标点进行扩展,形成以该目标坐标点为中心,四角的边界点坐标与目标坐标点之间的经度值差值绝对值为经度阈值,纬度值差值绝对值为纬度阈值的矩形网格。
[0097]
其中,同一个区域对应的经度阈值和纬度阈值可以是相同的数值,也可以是不同的数值,当为相同的数值时,所形成的网格为正方形。
[0098]
同样地,当待索引目标的所处区域存在多个时,则获取相匹配的所有纬度阈值和经度阈值中,数值最大的纬度阈值和数值最大的经度阈值,并形成网格。其中,数值最大的经度阈值和数值最大的纬度阈值可以是相同的所处区域对应的阈值,也可以是不同的区域所对应的阈值。比如说数值最大的经度阈值未所处区域a所对应的阈值,而数值最大的纬度阈值则为所处区域b所对应的阈值。由于存在多个所处区域,则选取最大的纬度阈值和经度阈值,可以降低道路未被覆盖到网格中的情况产生。
[0099]
步骤304,从道路信息集合中索引出第三坐标值处于网格内的道路,作为候选道路。
[0100]
本实施例中,与区域信息类似,道路信息集合中包括多个道路信息,道路信息集合中的每个道路包括用于表征区域实际道路顶点位置的第三坐标点集合,顶点可以理解为道路中产生转折的转折点,该点的坐标可为第三坐标点,其具有一个或多个第三坐标值,比如具有上述的经度值和纬度值等第三坐标值。如图4所示,存在两条道路,每条道路由道路上产生转折的点的坐标来表示。
[0101]
电子设备可以从所有的道路信息集合中进行索引,检测每个道路的第三坐标值是否处于该网格内,并筛选出处于网格内的第三坐标值对应的道路。比如图4所示,针对目标坐标点,筛选出存在两条道路中有第三坐标点处于其对应的网格内,其中的道路a有2个坐标点处于该网格内,道路 b有4个坐标点处于该网格内,处于网格内的道路a和道路b即为候选道路。
[0102]
步骤306,检测目标坐标点是否处于候选道路中的相邻两个第三坐标点所形成的线段内。
[0103]
进一步地,道路上的每个第三坐标点具有序号信息,根据该需要信息可以反映出道路的具体形状或走向。根据每个坐标点的排序,可以获知每个第三坐标点的相邻坐标点。电子设备可以按照两个坐标点形成的道路线段,来检测目标坐标点是否处于该线段内,以识别该待索引目标是否处于对应的道路上。
[0104]
具体地,当检测出目标坐标点与其中一个第三组标点相重合时,则判定其位于该第三坐标点及其相邻的坐标点所形成的道路。或者当检测出目标坐标点与相邻两个第三坐标点形成的线段的距离处于预设距离阈值时,则判定其处于该线段内。其中,预设的距离阈值可为固定的数值,或者可为根据对应道路和/或区域而确定的数值,比如可为5米,2米等任意合适的数值。
[0105]
在一个实施例中,步骤306包括:计算目标坐标点与候选道路中的相邻两个第三坐标点所形成的线段的距离,检测距离是否小于预设距离阈值,若是,则判定目标坐标点处于候选道路中的相邻两个第三坐标点所形成的线段内。
[0106]
具体地,电子设备根据不同的道路和/或者区域设置了不同的距离阈值。比如实际道路越宽,则距离阈值越大,实际道路越窄,则距离阈值越小。或者道路或区域的定位精度越高,则距离阈值越大,定位精度越低,则设定的对应的距离阈值越小。当检测到目标坐标点与线段的距离小于该距离阈值时,则判定该待索引目标处于该线段对应的道路上。
[0107]
步骤308,判定处于相邻两个第三坐标点所形成的线段内的候选道路为待索引目标的所处道路。
[0108]
针对检测出目标坐标点处于所形成的线段对应的候选道路,可判定该候选道路即为待索引目标的所处道路。比如如图4所示的目标坐标点,针对处于网格内的候选道路a和候选到b进行分析,可以识别目标坐标点处于候选道路a中的两个第三坐标点所形成的道路内,即判定目标坐标点处于道路a上。
[0109]
上述的目标所处位置的索引方法,通过根据目标坐标点生成对应的网格,进而来索引处于网格内的道路的第三坐标点,降低了索引复杂度,在索引出的处于网格内的候选道路,仅需要分析目标坐标点是否处于这些候选道路所形成的道路线段上,大大缩小了索引的范围,综合来看,本实施例大大提高了针对待索引目标所处道路的索引速度,进而提高了待索引目标的道路索引的实时性。
[0110]
在一个实施例中,步骤304包括:利用二分法从道路信息集合中筛选出第三坐标点集合中,道路经度值处于网格的经度坐标范围内的候选道路经度值集合;利用二分法从道路信息集合中筛选出第三坐标点集合中,道路纬度值处于网格的纬度坐标范围内的候选道路纬度值集合;对候选道路经度值集合与候选道路纬度值集合取交集,形成与道路信息集合的道路的坐标对应的候选坐标点集合,作为候选道路。
[0111]
与二分法索引确定候选区域类似,本实施例中,也可以采用二分法确定待索引目标所处的候选道路。具体地,电子设备可以针对经度值和纬度值各进行二分法进行索引,从而索引出经度值处于网格的经度范围内,且纬度值处于网格的纬度值范围内的所有道路的坐标点的经度值和纬度值,进而再根据检索出来的数值取交集,形成数据库中实际存在的道路上对应的第三坐标点,并依据该排序,来确定该坐标点对应的道路即为候选道路。
[0112]
在一个实施例中,由于已经确定了待索引目标点所处区域,则在判定待索引目标所处的道路时,仅需在道路信息集合中,处于对应所处区域的道路信息中进行索引,而无需在全部的道路信息集合中进行索引,从而可以进一步缩小索引范围。
[0113]
本实施例中的候选道路的索引只需要判断经度值和纬度值之间的大小,降低了索引的复杂度,且利用二分法进行索引,进一步减少了索引量,可以大大提高对候选道路索引的实时性。
[0114]
在一个实施例中,步骤306包括:从候选道路中过滤出相邻两个第三坐标点中的极大值坐标值不小于目标坐标点中对应的目标坐标值,且极小值坐标值不大于目标坐标点中对应的目标坐标值的道路;检测目标坐标点是否处于过滤出的候选道路中的相邻两个第三坐标点所形成的线段内。
[0115]
本实施例中,电子设备可以比较相邻两个第三坐标点中的坐标值与目标坐标点对应的目标坐标值的大小。具体地,可比较相邻两个第三坐标点中,相对较大的坐标值是否不小于对应的目标坐标值,且相对较小的坐标值是否不大于对应的目标坐标值。其中,坐标值可为上述的经度值和纬度值。比如,比较相对较大的经度值是否不小于目标经度值,相对较大的纬度值是否不小于目标纬度值,相对较小的经度值是否不大于目标经度值,相对较小的纬度值是否不大于目标纬度值,这样,筛选过滤出满足条件的候选道路,以进一步降低索引范围。
[0116]
比如如图4所示的道路a和道路b,针对道路b进行如上筛选时,可以判定道路b中的4个坐标点所形成的3个线段均不满足上述条件,而仅有道路a的两个坐标点所形成的1个线段满足上述条件,则电子设备可以只在道路a的两个坐标点所形成的1个线段上进行检测,即检测待索引目标是否处于道路a的两个坐标点所形成的1个线段。
[0117]
电子设备检测目标坐标点是否处于过滤出的候选道路中的相邻两个第三坐标点所形成的线段内,如上所述,当检测出目标坐标点与其中一个第三组标点相重合时,则判定其位于该第三坐标点及其相邻的坐标点所形成的道路。或者当检测出目标坐标点与相邻两个第三坐标点形成的线段的距离处于预设距离阈值时,则判定其处于该线段内。
[0118]
在一个实施例中,上述的方法是在电子设备中的内存进行操作;对区域信息集合以及道路信息集合中的数据进行预处理,使得道路信息集合中的数据为区域信息集合中的一部分,且具有相同的数据类型,并对道路信息集合中的数据进行排序;区域信息集合和道路信息集合中的数据均存储在电子设备的内存中,并在内存中进行索引操作。
[0119]
本实施例中,上述的步骤都在电子设备的内存中进行操作,利用内存结构索引,对区域和线路创建内存索引,可以更进一步地提高索引速度。且将区域信息和道路信息进行合并,并将区域信息中的不同的规则形状的区域处理为统一规则形状的区域,比如按照区域的坐标点集合中的极值组合成为矩形的区域,并具有相同的数据类型。此外,还进一步将道路信息作为该区域信息的子集,便于在确定了待索引目标所处区域后,则在其子集内的道路信息中进行道路索引,从而降低了索引范围。
[0120]
本实施例中,数据存储采用并发无锁容器,并利用读写锁技术,在非线程安全操作存储结构时启用;同时利用转换存储结构,将需查询的结构转换为unordered_set或hash_map,例如区域绑定车辆等。
[0121]
在一个实施例中,提供了另一种目标所处位置的索引方法,该方法包括:获取待索引目标的目标坐标点;根据目标坐标点生成对应的网格;从道路信息集合中索引出第三坐标值处于网格内的道路,作为候选道路;检测目标坐标点是否处于候选道路中的相邻两个第三坐标点所形成的线段内;判定处于相邻两个第三坐标点所形成的线段内的候选道路为待索引目标的所处道路。
[0122]
本实施例中,通过根据目标坐标点生成对应的网格,进而来索引处于网格内的道路的第三坐标点,降低了索引复杂度,在索引出的处于网格内的候选道路,仅需要分析目标坐标点是否处于这些候选道路所形成的道路线段上,大大缩小了索引的范围,综合来看,本实施例大大提高了针对待索引目标所处道路的索引速度,进而提高了待索引目标的道路索引的实时性。
[0123]
在一个实施例中,如图5所示,提供了另一种目标所处位置的索引方法,该方法包括:
[0124]
步骤502,获取待索引目标的目标坐标点。
[0125]
具体地,目标坐标点包括目标经度值和目标纬度值,该两个坐标值可以反映出待索引目标的具体位置。电子设备可实时获取或接受多个待索引目标上传的位置信息,该位置信息中包含待索引目标的目标标识和目标坐标点。目标标识用于唯一识别待索引目标的身份信息,电子设备可同时索引多个待索引目标的位置。
[0126]
步骤504,利用二分法在内存中从区域信息集合中筛选出其中至少一个极大值和/或极小值与目标坐标值相匹配的坐标值区间,再从极值区间对应的区域信息集合中索引出符合极大值不小于目标坐标值,且极小值不大于目标坐标值的区域,作为候选区域。
[0127]
具体地,电子设备可以在内存中进行索引操作,并利用二分法进行索引,从区域信息集合中索引出待索引目标所处的区域,将其作为候选区域。
[0128]
步骤506,根据每个候选区域的第一坐标值检测对应的候选区域是否包围目标坐标点。
[0129]
在一个实施例中,区域信息集合包括第一区域信息集合和第二区域信息集合,其中,第一区域信息集合中的每个第一区域包括用于表征区域实际边界坐标点的第一坐标值集合,第二区域信息集合中的每个第二区域包括从对应第一区域中的第一坐标值集合中提取出的极值坐标值所形成的第二坐标值集合。电子设备可以针对每个第一区域和第二区域设置对应的区域标识,并建立第一区域的第一区域标识和与之对应的第二区域的第二区域标识之间的关联关系。可以理解的,各个第一区域的边界坐标点的数量并不相同,而第二区
域的边界坐标点的数量则是一致的。
[0130]
如图2所示,其中的实线所围成的区域即为第一区域,取其中的各个极值而围成的虚线区域即为对应的第二区域。
[0131]
电子设备可以针对第二区域信息集合中索引出第二坐标值中的极大值不小于目标坐标点中对应的目标坐标值,且极小值不大于目标坐标点中对应的目标坐标值的区域,作为候选区域。
[0132]
针对选取出的候选区域,获取对应的候选区域的第二区域标识,根据该第二区域标识获取对应的第一区域标识,并针对每个对应的第一区域标识对应的第一坐标值检测对应的候选区域是否包围目标坐标点。
[0133]
通过对区域信息进行相应地处理,使得处理后的区域的数据信息变得一致,提高了数据管理以及数据索引的规范性。
[0134]
步骤508,判定包围了目标坐标点的候选区域为待索引目标的所处区域。
[0135]
本实施例中,通过对每个区域进行处理,提取其极值,形成规则的矩形区域,进而再在矩形区域集合中进行坐标值数据大小比较即可确定包围了待索引目标的矩形区域,进而将其作为候选区域。并在实际的不规则的候选区域中进行识别,判定其是否真实包围了待索引目标,从而确定待索引目标的所处区域。其中,待索引目标所处区域的数量可为一个或几个,比如待索引目标正好处于两个或多个区域重合的范围内或交接的范围内。
[0136]
步骤510,根据目标坐标点生成对应的网格。
[0137]
具体地,获取与所处区域相匹配的经度阈值和纬度阈值,将与目标坐标点的目标纬度值的差值绝对值不超过纬度阈值,且与目标坐标点的目标经度值的差值绝对值不超过经度阈值所形成的区域作为网格。
[0138]
步骤512,利用二分法从所处区域的道路信息集合中筛选出第三坐标点集合中,道路经度值处于网格的经度坐标范围内的候选道路经度值集合。
[0139]
步骤514,利用二分法从所处区域的道路信息集合中筛选出第三坐标点集合中,道路纬度值处于网格的纬度坐标范围内的候选道路纬度值集合。
[0140]
其中,道路信息集合中的每个道路包括用于表征区域实际道路顶点位置的第三坐标点集合。步骤512和步骤514之间的执行顺序可以不做限定,比如可以同时执行,或者先执行步骤512或步骤514,。
[0141]
步骤516,对候选道路经度值集合与候选道路纬度值集合取交集,形成与道路信息集合的道路的坐标对应的候选坐标点集合,作为候选道路。
[0142]
具体地,针对目标坐标点(x,y),电子设备可以对其进行经度阈值和纬度阈值扩展,比如经度阈值和纬度阈值各为0.5度,即扩展当前坐标各
±
0.5 度,形成矩形网格。利用二分法,从所处区域对应的道路信息集合中取纬度值的 x区间,再取结果的-x区间,以完成第一轮道路筛选,针对筛选后的道路,按照经度值y进行排序,然后再根据二分法从筛选结果中取 y区间,再取结果的-y区间,从而而完成二轮筛选,针对二轮筛选后的道路,按照道路序号进行排序,从而筛选出候选道路。
[0143]
或者电子设备可以预先对道路信息进行排序。针对上述目标坐标点 (x,y),电子设备可以利用二分法,从所处区域对应的道路信息集合中取纬度值的 x区间,再取结果的-x区间,以完成第一轮道路筛选,然后再根据二分法从筛选结果中取 y区间,再取结果的-y
区间,从而完成二轮筛选,针对二轮筛选后的道路坐标取交集,从而筛选出候选道路。
[0144]
上述的方法采用二分法进行候选道路筛选,进一步提高了候选道路筛选的速度。
[0145]
步骤518,从候选道路中过滤出相邻两个第三坐标点中的极大值坐标值不小于目标坐标点中对应的目标坐标值,且极小值坐标值不大于目标坐标点中对应的目标坐标值的道路。
[0146]
步骤520,计算目标坐标点与过滤出的候选道路中的相邻两个第三坐标点所形成的线段的距离。
[0147]
步骤522,检测距离是否小于预设距离阈值,若是,则判定目标坐标点处于候选道路中的相邻两个第三坐标点所形成的线段内。
[0148]
其中,电子设备预先设定了不同区域与距离阈值之间的关联关系表,根据所确定的所处区域,可以获取对应的距离阈值。不同的区域对应的距离阈值可以相同,也可以不同。
[0149]
在一个实施例中,当候选道路中处于网格内的第三坐标点仅有一个时,可以获取该一个第三坐标点的前后相邻的坐标点补充进去,进而分析该目标坐标点是否处于网格内的第三坐标点与其前后相邻的两个坐标点所形成的两个线段之中的一个线段内。
[0150]
步骤524,判定处于相邻两个第三坐标点所形成的线段内的候选道路为待索引目标的所处道路。
[0151]
在识别出了目标坐标点处于候选道路中的两个坐标点所形成的线段内时,则判定待索引目标处于对应的候选道路中。比如判定如图4所示的待索引目标处于道路a中处于该网格内的两个坐标点之间的道路段内。
[0152]
上述的方法,通过对区域进行处理,并利用二分法进行区域索引得到待索引目标的所处区域,进而在该所处区域的道路集合中同样利用二分法进行道路索引,提高了待索引目标所处位置的索引效率,从而可以实现针对多个待索引目标所处位置的索引的实时性。
[0153]
在一个实施例中,上述的目标坐标点的坐标值可为由geohash方式形成的坐标值,比如将原始的经度值和纬度值进行二分法形成二进制数值,并再将形成二进制的经纬度数值进行合并,比如经度占偶数位,纬度占奇数位。再利用base32编码。将由经纬度二维表示的坐标点转换成了一维数值所表示的坐标点。
[0154]
举例来说,针对经纬度表示的坐标点(39.928167,116.389550),其中,针对纬度值39.928167,可以将纬度区间[-90,90]进行二分为[-90,0),[0,90],称为左右区间,可以确定39.928167属于右区间[0,90],给标记为1;接着将区间[0,90]进行二分为[0,45),[45,90],可以确定39.928167属于左区间 [0,45),给标记为0;按照上述递归上述过程39.928167总是属于某个区间 [a,b]。随着每次迭代区间[a,b]总在缩小,并越来越逼近39.928167。如果给定的纬度x(39.928167)属于左区间,则记录0,如果属于右区间则记录1,这样随着算法的进行会产生一个序列1011100,序列的长度跟给定的区间划分次数有关。
[0155]
同理,地球经度区间是[-180,180],可以对经度116.389550进行编码。纬度产生的编码为10111 00011,经度产生的编码为11010 01011。偶数位放经度,奇数位放纬度,把2串编码组合生成新串:11100 11101 00100 01111。对其进行base32编码,对应的编码就是wx4g,如图6所示。这样,该wx4g 即表示了坐标点(39.928167,116.389550)。
[0156]
其中,geohash base32编码长度越长,则对应代表的坐标经纬度越精确。当geohash base32编码长度为8时,精度在19米左右,而当编码长度为9 时,精度在2米左右。电子设备可以根据实际定位需要来确定各个待索引目标的坐标点以及各个区域、道路的坐标点的所采用的长度,并预先将各个区域、道路、待索引目标的坐标点转换为由geohash base32编码所表示的位置信息,并对待索引目标的坐标点按照geohash base32编码进行位置索引,采用geohash base32编码进行位置索引,从而将由经纬度的二维索引降低为一维索引,进一步提高了索引效率。
[0157]
经纬度两串编码交叉组合成一串编码,符合peano空间填充曲线。peano 空间填充曲线会产生突变,造成了编码虽然相似但距离可能相差很大的问题,因此,可以进一步引入8个邻居编码以解决突变产生的问题。
[0158]
在一个实施例中,如图7所示,提供了一种目标所处位置的索引装置,该装置包括:
[0159]
目标坐标点获取模块702,用于获取待索引目标的目标坐标点.
[0160]
候选区域索引模块704,用于从区域信息集合中索引出第二坐标值中的极大值不小于目标坐标点中对应的目标坐标值,且极小值不大于目标坐标点中对应的目标坐标值的区域,作为候选区域。
[0161]
所处区域识别模块706,用于根据每个候选区域的第一坐标值检测对应的候选区域是否包围目标坐标点;判定包围了目标坐标点的候选区域为待索引目标的所处区域。
[0162]
其中,区域信息集合中的每个区域包括用于表征区域实际边界坐标点的第一坐标值集合,和从第一坐标值集合中提取出的极值坐标值所形成的第二坐标值集合。
[0163]
在一个实施例中,如图8所示,提供了另一种目标所处位置的索引装置,该装置还包括:
[0164]
网格生成模块708,用于根据目标坐标点生成对应的网格。
[0165]
候选道路索引模块710,用于从道路信息集合中索引出第三坐标值处于网格内的道路,作为候选道路。
[0166]
所处道路识别模块712,用于检测目标坐标点是否处于候选道路中的相邻两个第三坐标点所形成的线段内;判定处于相邻两个第三坐标点所形成的线段内的候选道路为待索引目标的所处道路。
[0167]
其中,道路信息集合中的每个道路包括用于表征区域实际道路顶点位置的第三坐标点集合。
[0168]
在一个实施例中,目标坐标点的目标坐标值包括目标经度值和目标纬度值;边界坐标点的第一坐标值集合包括边界经度值集合和边界纬度值集合;极大值包括边界经度值集合中的最大经度值和边界纬度值集合中的最大纬度值,极小值包括边界经度值集合中的最小经度值和边界纬度值集合中的最小纬度值;
[0169]
候选区域索引模块704还用于利用二分法从区域信息集合中筛选出其中至少一个极大值和/或极小值与目标坐标值相匹配的坐标值区间,再从极值区间对应的区域信息集合中索引出符合极大值不小于目标坐标值,且极小值不大于目标坐标值的区域,作为候选区域;
[0170]
候选道路索引模块710还用于利用二分法从道路信息集合中筛选出第三坐标点集合中,道路经度值处于网格的经度坐标范围内的候选道路经度值集合;利用二分法从道路
信息集合中筛选出第三坐标点集合中,道路纬度值处于网格的纬度坐标范围内的候选道路纬度值集合;对候选道路经度值集合与候选道路纬度值集合取交集,形成与道路信息集合的道路的坐标对应的候选坐标点集合,作为候选道路。
[0171]
在一个实施例中,所处道路识别模块712还用于从候选道路中过滤出相邻两个第三坐标点中的极大值坐标值不小于目标坐标点中对应的目标坐标值,且极小值坐标值不大于目标坐标点中对应的目标坐标值的道路;检测目标坐标点是否处于过滤出的候选道路中的相邻两个第三坐标点所形成的线段内。
[0172]
在一个实施例中,所处道路识别模块712还用于计算目标坐标点与候选道路中的相邻两个第三坐标点所形成的线段的距离,检测距离是否小于预设距离阈值,若是,则判定目标坐标点处于候选道路中的相邻两个第三坐标点所形成的线段内。
[0173]
在一个实施例中,所处道路识别模块712还用于获取与所处区域相匹配的半径值,将以目标坐标点为圆心半径值为大小所形成的区域作为网格。
[0174]
在一个实施例中,所处道路识别模块712还用于获取与所处区域相匹配的经度阈值和纬度阈值,将与目标坐标点的目标纬度值的差值绝对值不超过纬度阈值,且与目标坐标点的目标经度值的差值绝对值不超过经度阈值所形成的区域作为网格。
[0175]
在一个实施例中,如图9所示,提供了又一种目标所处位置的索引装置,该装置还包括:
[0176]
数据预处理模块714,用于对区域信息集合以及道路信息集合中的数据进行预处理,使得道路信息集合中的数据为区域信息集合中的一部分,且具有相同的数据类型,并对道路信息集合中的数据进行排序。
[0177]
在一个实施例中,提供了一种电子设备,如图10所示,其示出了一个实施例中电子设备的内部结构图。该电子设备具体可以是终端,也可以是服务器。如图10所示,该电子设备包括通过系统总线连接的处理器、存储器和网络接口。其中,存储器包括非易失性存储介质和内存储器。该电子设备的非易失性存储介质存储有操作系统,还可存储有计算机程序,该计算机程序被处理器执行时,可使得处理器实现上述的目标所处位置的索引方法。该内存储器中也可储存有计算机程序,该计算机程序被处理器执行时,也可使得处理器执行上述的目标所处位置的索引方法。本领域技术人员可以理解,图10中示出的结构,仅仅是与本技术方案相关的部分结构的框图,并不构成对本技术方案所应用于其上的电子设备的限定,具体的电子设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
[0178]
在一个实施例中,提出了一种电子设备,包括存储器和处理器,所述存储器存储有计算机程序,所述计算机程序被所述处理器执行时,使得所述处理器执行上述目标所处位置的索引方法的步骤。
[0179]
在一个实施例中,提出了一种计算机可读存储介质,存储有计算机程序,所述计算机程序被处理器执行时,使得所述处理器执行上述目标所处位置的索引方法的步骤。
[0180]
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一非易失性计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,本技术所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性
和/或易失性存储器。非易失性存储器可包括只读存储器(rom)、可编程rom(prom)、电可编程rom(eprom)、电可擦除可编程rom(eeprom)或闪存。易失性存储器可包括随机存取存储器(ram)或者外部高速缓冲存储器。作为说明而非局限,ram以多种形式可得,诸如静态ram(sram)、动态 ram(dram)、同步dram(sdram)、双数据率sdram(ddrsdram)、增强型sdram(esdram)、同步链路(synchlink)dram(sldram)、存储器总线(rambus)直接ram(rdram)、直接存储器总线动态 ram(drdram)、以及存储器总线动态ram(rdram)等。
[0181]
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
[0182]
以上所述实施例仅表达了本技术的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本技术专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本技术构思的前提下,还可以做出若干变形和改进,这些都属于本技术的保护范围。因此,本技术专利的保护范围应以所附权利要求为准。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献