发明内容
有鉴于此,本发明实施例提供一种目标点定位的方法和装置,通过判断瓦片索引值集合中是否存在目标点在当前索引级别的瓦片索引值时,如果存在,则获取该瓦片索引值集合中所述瓦片索引值对应的瓦片索引类别和目标区域,以根据瓦片索引类别确定目标点的位置,降低了查询及计算的复杂度,大幅提升定位效率。
实现上述目的,根据本发明实施例的一个方面,提供了一种目标点定位的方法。
本发明实施例的一种目标点定位的方法,包括:在当前瓦片索引级别下,将目标点的经纬度坐标转换为瓦片索引值;如果预先存储的瓦片索引值集合中含有所述瓦片索引值,则获取所述瓦片索引值集合中所述瓦片索引值对应的瓦片索引类别和目标区域;根据所述瓦片索引类别,确定所述目标点在所述目标区域内,将所述目标区域作为所述目标点的位置。
可选地,所述将目标点的经纬度坐标转换为瓦片索引值,包括:将目标点的经纬度坐标进行瓦片索引的向下递归,以获得所述经纬度坐标的瓦片索引值。
可选地,所述将目标点的经纬度坐标转换为瓦片索引值的步骤之前,还包括:获取所述目标区域的地理围栏中所有顶点的经纬度坐标;为获取的每个所述经纬度坐标分别确定出瓦片索引级别最小,且与其他经纬度坐标不同的瓦片索引值,将确定出的所述瓦片索引值作为第一瓦片索引值集合;为所述第一瓦片索引值集合设定所述瓦片索引类别,建立所述第一瓦片索引集合与所述目标区域的第一关联关系;所述如果预先存储的瓦片索引值集合中含有所述瓦片索引值,则获取所述瓦片索引值集合中所述瓦片索引值对应的瓦片索引类别和目标区域,包括:如果所述第一瓦片索引值集合中含有所述瓦片索引值,则根据所述第一关联关系,获取所述第一瓦片索引值集合中所述瓦片索引值对应的瓦片索引类别和目标区域。
可选地,所述将确定出的所述瓦片索引值作为第一瓦片索引值集合的步骤之后,还包括:将相邻的所述顶点形成的线段穿过的,且与所述第一瓦片索引值集合不同的瓦片索引值作为第二瓦片索引值集合;为所述第二瓦片索引值集合设定所述瓦片索引类别,建立所述第二瓦片索引集合与所述目标区域的第二关联关系;所述如果预先存储的瓦片索引值集合中含有所述瓦片索引值,则获取所述瓦片索引值集合中所述瓦片索引值对应的瓦片索引类别和目标区域,包括:如果所述第二瓦片索引值集合中含有所述瓦片索引值,则根据所述第二关联关系,获取所述第二瓦片索引值集合中所述瓦片索引值对应的瓦片索引类别和目标区域。
可选地,所述根据所述瓦片索引类别,确定所述目标点在所述目标区域内,包括:从所述目标点向任意一个方向发出射线,计算所述射线与子目标区域的所有线段的交点个数;其中,所述子目标区域为所述目标点的瓦片索引值与所述地理围栏的交集;如果所述交点个数为奇数,则所述目标点在所述目标区域内;如果所述交点个数为偶数,则所述目标点不在所述目标区域内。
可选地,所述将确定出的所述瓦片索引值作为第一瓦片索引值集合的步骤之后,还包括:将完全包含在所述地理围栏内,且瓦片索引级别最小的瓦片索引值作为第三瓦片索引值集合;为所述第三瓦片索引值集合设定所述瓦片索引类别,建立所述第三瓦片索引集合与所述目标区域的第三关联关系;所述如果预先存储的瓦片索引值集合中含有所述瓦片索引值,则获取所述瓦片索引值集合中所述瓦片索引值对应的瓦片索引类别和目标区域,包括:如果所述第三瓦片索引值集合中含有所述瓦片索引值,则根据所述第三关联关系,获取所述第三瓦片索引值集合中所述瓦片索引值对应的瓦片索引类别和目标区域。
可选地,所述根据所述瓦片索引类别,确定所述目标点在所述目标区域内,包括:如果所述瓦片索引类别为所述第三瓦片索引值集合对应的瓦片索引类别,则所述目标点在所述目标区域内。
可选地,所述目标区域为多个,所述将目标点的经纬度坐标转换为瓦片索引值的步骤之前,还包括:设置结束瓦片索引级别;所述确定所述目标点在所述目标区域内的步骤之后,还包括:如果所述瓦片索引值集合中没有所述瓦片索引值,或者所述交点个数为偶数时,则将下一瓦片索引级别作为当前瓦片索引级别;重复执行所述目标点定位的方法,直至确定所述目标点在其他的目标区域,或者所述下一瓦片索引级别为所述结束瓦片索引级别。
为实现上述目的,根据本发明实施例的一个方面,提供了一种目标点定位的装置。
本发明实施例的一种目标点定位的装置,包括:转换模块,用于在当前瓦片索引级别下,将目标点的经纬度坐标转换为瓦片索引值;获取模块,用于如果预先存储的瓦片索引值集合中含有所述瓦片索引值,则获取所述瓦片索引值集合中所述瓦片索引值对应的瓦片索引类别和目标区域;确定模块,用于根据所述瓦片索引类别,确定所述目标点在所述目标区域内,将所述目标区域作为所述目标点的位置。
可选地,所述转换模块,还用于:将目标点的经纬度坐标进行瓦片索引的向下递归,以获得所述经纬度坐标的瓦片索引值。
可选地,所述装置还包括:第一关联关系建立模块,用于获取所述目标区域的地理围栏中所有顶点的经纬度坐标;为获取的每个所述经纬度坐标分别确定出瓦片索引级别最小,且与其他经纬度坐标不同的瓦片索引值,将确定出的所述瓦片索引值作为第一瓦片索引值集合;以及为所述第一瓦片索引值集合设定所述瓦片索引类别,建立所述第一瓦片索引集合与所述目标区域的第一关联关系;所述获取模块,还用于:如果所述第一瓦片索引值集合中含有所述瓦片索引值,则根据所述第一关联关系,获取所述第一瓦片索引值集合中所述瓦片索引值对应的瓦片索引类别和目标区域。
可选地,所述装置还包括:第二关联关系建立模块,用于将相邻的所述顶点形成的线段穿过的,且与所述第一瓦片索引值集合不同的瓦片索引值作为第二瓦片索引值集合;以及为所述第二瓦片索引值集合设定所述瓦片索引类别,建立所述第二瓦片索引集合与所述目标区域的第二关联关系;所述获取模块,还用于:如果所述第二瓦片索引值集合中含有所述瓦片索引值,则根据所述第二关联关系,获取所述第二瓦片索引值集合中所述瓦片索引值对应的瓦片索引类别和目标区域。
可选地,所述确定模块,还用于:从所述目标点向任意一个方向发出射线,计算所述射线与子目标区域的所有线段的交点个数;其中,所述子目标区域为所述目标点的瓦片索引值与所述地理围栏的交集;以及如果所述交点个数为奇数,则所述目标点在所述目标区域内;如果所述交点个数为偶数,则所述目标点不在所述目标区域内。
可选地,所述装置还包括:第三关联关系建立模块,用于将完全包含在所述地理围栏内,且瓦片索引级别最小的瓦片索引值作为第三瓦片索引值集合;以及为所述第三瓦片索引值集合设定所述瓦片索引类别,建立所述第三瓦片索引集合与所述目标区域的第三关联关系;所述获取模块,还用于:如果所述第三瓦片索引值集合中含有所述瓦片索引值,则根据所述第三关联关系,获取所述第三瓦片索引值集合中所述瓦片索引值对应的瓦片索引类别和目标区域。
可选地,所述确定模块,还用于:如果所述瓦片索引类别为所述第三瓦片索引值集合对应的瓦片索引类别,则所述目标点在所述目标区域内。
可选地,所述目标区域为多个,所述装置还包括:设置模块,用于设置结束瓦片索引级别;所述装置还包括:目标区域确定模块,用于如果所述瓦片索引值集合中没有所述瓦片索引值,或者所述交点个数为偶数时,则将下一瓦片索引级别作为当前瓦片索引级别;以及重复所述转换模块、所述获取模块和所述确定模块的处理过程,直至确定所述目标点在其他的目标区域,或者所述下一瓦片索引级别为所述结束瓦片索引级别。
为实现上述目的,根据本发明实施例的再一方面,提供了一种电子设备。
本发明实施例的一种电子设备,包括:一个或多个处理器;存储装置,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现本发明实施例的一种目标点定位的方法。
为实现上述目的,根据本发明实施例的再一方面,提供了一种计算机可读介质。
本发明实施例的一种计算机可读介质,其上存储有计算机程序,所述程序被处理器执行时实现本发明实施例的一种目标点定位的方法。
上述发明中的一个实施例具有如下优点或有益效果:通过判断瓦片索引值集合中是否存在目标点在当前索引级别的瓦片索引值时,如果存在,则获取该瓦片索引值集合中所述瓦片索引值对应的瓦片索引类别和目标区域,根据瓦片索引类别,确定目标点的位置,降低了查询及计算的复杂度,大幅提升定位效率;通过瓦片索引向下递归的方式,将经纬度坐标转换为瓦片索引值,快速唯一的生成瓦片索引值;按照地理围栏的顶点、相邻顶点组成的线段和地理围栏的内部对瓦片索引值进行分类,通过判断目标点的瓦片索引值属于哪个类别,来判定目标点是否在目标区域内,降低了查询和计算的复杂度,大幅提升了查询效率;通过计算目标点发出射线与子目标区域的所有线段的交点个数,进而可根据交点个数的奇偶性来判断目标点是否在目标区域内,由于子目标区域的线段条数远小于目标区域的线段条数,使得本申请大大降低了计算复杂度。
上述的非惯用的可选方式所具有的进一步效果将在下文中结合具体实施方式加以说明。
具体实施方式
以下结合附图对本发明的示范性实施例做出说明,其中包括本发明实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本发明的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
现有技术的目标点定位方法中,需要按照预设的瓦片索引级别(通常为18级),计算出目标区域的最大瓦片索引值和最小瓦片索引值,进而确定出目标区域的矩形边界。图1是现有技术的目标点定位方法的矩形边界的示意图。如图1所示,在瓦片索引级别为18级时,假设目标区域的最大瓦片索引值为130102321332001030,最小瓦片索引值为130102321321233120,黑色线条框内的部分即为矩形边界。然后,对目标点同样进行18级的瓦片索引,以判断该目标点是否在矩形边界内。如果目标点在矩形边界内,则可采用射线法判断目标点是否在目标区域内。
射线法判断目标点是否在目标区域内的原理为:从目标点向任意一个方向发出射线,计算该射线与目标区域的所有相邻顶点组成的线段的交点个数,如果交点个数为奇数,则说明该目标点在目标区域内;如果交点个数为偶数,则说明该目标点不在目标区域内。图2是现有技术的射线法原理示意图。如图2所示,目标点1、目标点2和目标点3与目标区域的线段的交点个数分别为1、0和2,则目标点1在目标区域内,目标点2和目标点3不在目标区域内。
下面对本发明涉及到的术语进行解释说明。
(1)瓦片索引:是一种将GIS信息进行编码的技术,瓦片索引的长度越长,代表该索引表示的地理信息越精确。图3为不同瓦片索引级别对应的区域范围示意图,下面结合图3进行说明。
级别1:将整个世界经纬度坐标划分为4块瓦片索引,如图3的最左边图片所示,其中“瓦片索引1”包括了亚洲大部分区域,以及非洲北部一些区域。
级别2:将世界经纬度坐标划分为16块瓦片索引,第一位延续了级别1的编码信息,如图3的中间图片所示,“瓦片索引13”包括了中国除了西部的大部分区域。
级别3:将世界经纬度坐标划分为64块瓦片索引,第一位和第二位延续了级别1和级别2的编码信息,由图3的最右边图片可知,“瓦片索引132”包括了中国南部的绝大部分区域。
以上述为基础,逐级往下递归,每增加一级,瓦片索引的数量为上一级的四倍,代表的区域范围也越来越小,越来越精确。
(2)瓦片索引的向下递归:
1、地球的纬度区间是[-90,90],经度区间为[-180,180]。
2、将纬度区间[-90,90]进行二分,[-90,0)标记为(2,3),[0,90]标记为(0,1)。
3、将经度区间[-180,180]进行二分,[-180,0)标记为(0,2),[0,180]标记为(1,3)。
4、给定经纬度坐标(39.73532672150253,116.49694810943604),可以确定其纬度区间为[0,90]及(0,1),经度区间为[0,180]及(1,3),取这两个集合的交集得到第一位标记“1”,目前瓦片索引值为“1”。
5、将经度区间[0,90]进行二分,[0,45)标记为(2,3),[45,90]标记为(0,1)。
6、将纬度区间[0,180]进行二分,[0,90)标记为(0,2),[90,180]标记为(1,3)。
7、上述经纬度坐标经再次二分后,可以确定其纬度区间为[0,45)及(2,3),经度区间为[90,180]及(1,3),取交集得到第二位为“3”,目前瓦片索引值为“13”。
8、按照上述规则继续向下递归,就可以得到确定级别的瓦片索引值。
图4是根据本发明实施例的目标点定位的方法的主要步骤的示意图。如图4所示,本发明实施例的目标点定位的方法,主要包括如下步骤:
步骤S401:在当前瓦片索引级别下,将目标点的经纬度坐标转换为瓦片索引值。不同瓦片索引级别,经纬度坐标会转换成不同的瓦片索引值。在当前瓦片索引级别下,将目标点的经纬度坐标进行瓦片索引的向下递归,以获得所述经纬度坐标的瓦片索引值。
步骤S402:如果预先存储的瓦片索引值集合中含有所述瓦片索引值,则获取所述瓦片索引值集合中所述瓦片索引值对应的瓦片索引类别和目标区域。数据库、内存或者缓存中存储有多个瓦片索引值集合,每个瓦片索引值集合的各个瓦片索引值与目标区域的关联关系以及每个瓦片索引值集合的瓦片索引类别。判断各个瓦片索引值集合中是否有该目标点的瓦片索引值,如果有,则获取该瓦片索引值集合中所述瓦片索引值对应的瓦片索引类别和目标区域。
步骤S403:根据所述瓦片索引类别,确定所述目标点在所述目标区域内,将所述目标区域作为所述目标点的位置。如果所述瓦片索引类别为完全包含在目标区域的地理围栏内,且瓦片索引级别最小的瓦片索引值所对应的瓦片索引类别,则可直接确定目标点在所述目标区域内;否则,需要使用射线法进一步判断目标点是否在所述目标区域内。当目标点在所述目标区域时,该所述目标区域即为所述目标点的位置。
图5是根据本发明实施例的目标点定位的方法的主要流程示意图。如图5所示,本发明实施例的目标点定位的方法,主要包括如下步骤:
步骤S501:通过GIS工具绘制目标区域的地理围栏,以获取所述地理围栏的所有顶点的经纬度坐标。通过GIS工具绘制目标区域的地理围栏,就可以得到地理围栏的顶点的经纬度坐标,这些经纬度坐标可以准确的描述一个确定的区域范围。其中,地理围栏是用虚拟的栅栏围出一个虚拟地理边界。所述目标区域,比如可以是配送站,将配送站的地理围栏绘制完成后,即可形成这一配送站的区域范围。
在一优选的实施例中,假设目标区域的地理围栏有22个顶点,则这些经纬度坐标比如可以是:
39.73532672150253,116.4969481094360;39.74462741550728,116.49551575246733;39.75205677480099,116.49003035424654;39.76415389635916,116.49608373641968;39.76437897883341,116.49319231510162;39.769490320862815,116.49448555894196;39.77440666863884,116.49395513115451;39.77277397001739,116.5165929752402;39.780371852111934,116.51985883712769;39.78209802322883,116.52282536029816;39.78633068779104,116.5318214893341;39.788802425413934,116.5371065097861;39.785075977741315,116.54127426445484;39.780507028882525,116.54674530029297;39.7762280083594,116.55090808868408;39.77270800158235,116.55410098610446;39.768612556221306,116.55705614099134;39.76612205340136,116.54879493722547;39.761025313181534,116.54087727132719;39.75548279859638,116.53757278982084;39.74130578735582,116.52505395642947;39.7381153457969,116.50368298392698。
图6是根据本发明实施例的目标点定位的方法的地理围栏的示意图。如图6所示,上述经纬度坐标在地图中围成了深灰色部分的目标区域,该目标区域的各顶点逆时针依次编号为0-21。
步骤S502:将每个所述经纬度坐标分别进行瓦片索引的向下递归,以为每个所述经纬度坐标确定出瓦片索引级别最小且与其他经纬度坐标均不相同的瓦片索引值,将确定出的所有的所述瓦片索引值作为第一瓦片索引值集合。从瓦片索引的最低级别开始,确定出每个顶点的瓦片索引值,以使任意两个顶点的瓦片索引值不同且瓦片索引级别最小。所述瓦片索引值是一连串的四进制数据,代表一块具体的区域。
图7是根据本发明实施例的第一瓦片索引值集合的示意图。如图7所示,确定出的第一瓦片索引值集合为22个大小不完全相同的矩形。
步骤S503:将所述地理围栏与所述第一瓦片索引值集合的交集作为第一子目标区域集合,为所述第一瓦片索引值集合和所述第一子目标区域集合建立第一关联关系,并将所述第一瓦片索引值集合的瓦片索引类别设定为类别I。其中,第一瓦片索引值集合的每个瓦片索引值与地理围栏的交集构成一个子目标区域,所有的子目标区域构成第一子目标区域集合。所述第一建立关联关系是指将第一瓦片索引值集合的所有瓦片索引值和对应的第一子目标区域集合的子目标区域存入数据库、内存或者缓存等,以方便后续通过瓦片索引值查找到该子目标区域以及对应的目标区域。
图8是根据本发明实施例的第一子目标区域集合的示意图。如图8所示,图中深灰色部分即为第一子目标区域集合。
步骤S504:将相邻的两个顶点形成的线段穿过的,并且与所述第一瓦片索引值集合不同的瓦片索引值作为第二瓦片索引值集合。本步骤用于确定相邻的两个顶点形成的线段穿过的除第一瓦片索引值集合外的瓦片索引值,如图7所示,第二瓦片索引值集合即为顶点0和顶点22、顶点2和顶点3、顶点6和顶点7、顶点8和顶点9、顶点9和顶点10、顶点12和顶点13、顶点13和顶点14、顶点14和顶点15、顶点17和顶点18之间所形成的线段所对应的最小级别的瓦片索引值。
步骤S505:将所述地理围栏与所述第二瓦片索引值集合的交集作为第二子目标区域集合,为所述第二瓦片索引值集合和所述第二子目标区域集合建立第二关联关系,并将所述第二瓦片索引值集合的瓦片索引类别设定为类别Ⅱ。其中,第二瓦片索引值集合的每个瓦片索引值与地理围栏的交集构成一个子目标区域,所有的子目标区域构成第二子目标区域集合。所述第二建立关联关系是指将第二瓦片索引值集合的所有瓦片索引值和对应的第二子目标区域集合的子目标区域存入数据库、内存或者缓存等,以方便后续通过瓦片索引值查找到该子目标区域以及对应的目标区域。
图9是根据本发明实施例的第二子目标区域集合的示意图。如图9所示,图中地理围栏内的深灰色部分即为第二子目标区域集合。
步骤S506:将完全包含在所述地理围栏内的瓦片索引级别最小的瓦片索引值作为第三瓦片索引值集合。如图9所示,地理围栏内部的空白区域即为第三瓦片索引值集合。
步骤S507:将所述地理围栏与所述第三瓦片索引值集合的交集作为第三子目标区域集合,为所述第三瓦片索引值集合和所述第三子目标区域集合建立第三关联关系,并将所述第三瓦片索引值集合的瓦片索引类别设定为类别Ⅲ。其中,第三瓦片索引值集合的每个瓦片索引值与地理围栏的交集构成一个子目标区域,所有的子目标区域构成第三子目标区域集合。所述第三建立关联关系是指将第三瓦片索引值集合的所有瓦片索引值和对应的第三子目标区域集合的子目标区域存入数据库、内存或者缓存等,以方便后续通过瓦片索引值查找到该子目标区域以及对应的目标区域。
图10是根据本发明实施例的第三子目标区域集合的示意图。如图10所示,图中地理围栏内的中度灰色部分(图中标号为32、33的两个矩形框)即为第三子目标区域集合。
步骤S508:预先设置起始瓦片索引级别和结束瓦片索引级别,将目标点的经纬度坐标从所述起始瓦片索引级别开始,进行瓦片索引的向下递归。起始瓦片索引级别和结束瓦片索引级别的具体取值根据实际生产经验进行设定,以保证一定的查找效率。如果只有一个目标区域,则起始瓦片索引级别可以设定为目标区域的最小瓦片索引级别,结束瓦片索引级别设置为目标区域的最大瓦片索引级别。实际生产中可能有多个目标区域同时存在的情况,这时就要将起始瓦片索引级别和结束瓦片索引级别分别设定成所有目标区域中的最大瓦片索引级别和最小瓦片索引级别。瓦片索引的向下递归的具体过程参照前面的术语解释。
步骤S509:判断所述目标点的经纬度坐标在当前瓦片索引级别的瓦片索引值是否与所述第一瓦片索引值集合、第二瓦片索引值集合或者第三瓦片索引值集合中的瓦片索引值相同,如果与任一集合的瓦片索引值相同,则执行步骤S510;如果与所有集合的瓦片索引值都不相同,执行步骤S512。
步骤S510:根据对应的关联关系,确定相同的瓦片索引集合中所述瓦片索引值所对应的子目标区域和瓦片索引类别,如果所述瓦片索引类别为类别I或类别Ⅱ,则执行步骤S511;如果是类别Ⅲ,则说明所述目标点在所述目标区域内,结束本流程。如果目标点的瓦片索引值与第一瓦片索引值集合中的某个瓦片索引值相同,则根据第一关联关系找到对应的子目标区域,进行得到该子目标区域对应的目标区域,并确定瓦片索引类别为类别I;如果目标点的瓦片索引值与第二瓦片索引值集合中的某个瓦片索引值相同,则根据第二关联关系找到对应的子目标区域,进行得到该子目标区域对应的目标区域,并确定瓦片索引类别为类别Ⅱ;如果目标点的瓦片索引值与第三瓦片索引值集合中的某个瓦片索引值相同,则根据第三关联关系找到对应的子目标区域,进行得到该子目标区域对应的目标区域,并确定瓦片索引类别为类别Ⅲ。
步骤S511:从所述目标点发出任意一个方向的射线,确定所述射线与所述子目标区域的所有相邻点组成的线段的交点个数,如果所述交点个数是奇数,则说明所述目标点在所述目标区域内,结束本流程;如果所述交点个数是偶数,则执行步骤S512。本步骤中仅需确定射线与子目标区域的所有相邻点组成的线段的交点个数,子目标区域的相邻点组成的线段条数一般情况下为3条或者4条,该数量远小于地理围栏的相邻顶点坐标组成的线段条数,大大降低了计算复杂度。
步骤S512:将下一瓦片索引级别作为当前瓦片索引级别,重复执行步骤S508至步骤S511,直至确定所述目标点在某个目标区域,或者所述当前瓦片索引级别为所述结束瓦片索引级别。如果目标点的经纬度坐标与某个集合的瓦片索引值相同,且交点个数为偶数,或者目标点的经纬度坐标与所有集合的瓦片索引值都不相同,仅可以确定了经纬度坐标不在这个目标区域内,可能存在更小级别的瓦片索引值,代表其他的目标区域(比如,可能首先确认了配送站不在亦庄站的区域范围内,但是还没确认它是否在亦庄智配中心的区域范围内),因此需要向下递归。
图11为本发明实施例的定位结果示意图。如图11所示,初始瓦片索引级别为13级,从13级开始计算出该目标点的经纬度坐标的瓦片索引值为1301023213230,最终递归至16级,对应的瓦片索引值为1301023213230133,最终确定了该目标点在图示的目标区域内。
通过本发明实施例的目标点定位的方法可以看出,通过判断瓦片索引值集合中是否存在目标点在当前索引级别的瓦片索引值时,如果存在,则获取该瓦片索引值集合中所述瓦片索引值对应的瓦片索引类别和目标区域,以根据瓦片索引类别,确定目标点的位置,降低了查询及计算的复杂度,大幅提升定位效率。经过压力测试,运用本发明方法进行定位的TP99由30ms降低至10ms,同时系统吞吐量提高了一倍。
图12是根据本发明实施例的目标点定位的装置的主要模块的示意图。如图12所示,本发明实施例的目标点定位的装置120,主要包括:
转换模块121,用于在当前瓦片索引级别下,将目标点的经纬度坐标转换为瓦片索引值。不同瓦片索引级别,经纬度坐标会转换成不同的瓦片索引值。在当前瓦片索引级别下,将目标点的经纬度坐标进行瓦片索引的向下递归,以获得所述经纬度坐标的瓦片索引值。
获取模块122,用于如果预先存储的瓦片索引值集合中含有所述瓦片索引值,则获取所述瓦片索引值集合中所述瓦片索引值对应的瓦片索引类别和目标区域。数据库、内存或者缓存中存储有多个瓦片索引值集合,每个瓦片索引值集合的各个瓦片索引值与目标区域的关联关系以及每个瓦片索引值集合的瓦片索引类别。判断各个瓦片索引值集合中是否有该目标点的瓦片索引值,如果有,则获取该瓦片索引值集合中所述瓦片索引值对应的瓦片索引类别和目标区域。
确定模块123,用于根据所述瓦片索引类别,确定所述目标点在所述目标区域内,将所述目标区域作为所述目标点的位置。如果所述瓦片索引类别为完全包含在目标区域的地理围栏内,且瓦片索引级别最小的瓦片索引值所对应的瓦片索引类别,则可直接确定目标点在所述目标区域内;否则,需要使用射线法进一步判断目标点是否在所述目标区域内。当目标点在所述目标区域内时,该目标区域即为所述目标点的位置。
另外,本发明实施例的目标点定位的装置120还可以包括:第一关联关系建立模块、第二关联关系建立模块、第三关联关系建立模块、设置模块和目标区域确定模块。其中,所述第一关联关系建立模块用于获取所述目标区域的地理围栏中所有顶点的经纬度坐标;为获取的每个所述经纬度坐标分别确定出瓦片索引级别最小,且与其他经纬度坐标不同的瓦片索引值,将确定出的所述瓦片索引值作为第一瓦片索引值集合;以及为所述第一瓦片索引值集合设定所述瓦片索引类别,建立所述第一瓦片索引集合与所述目标区域的第一关联关系。所述第二关联关系建立模块,用于将相邻的所述顶点形成的线段穿过的,且与所述第一瓦片索引值集合不同的瓦片索引值作为第二瓦片索引值集合;以及为所述第二瓦片索引值集合设定所述瓦片索引类别,建立所述第二瓦片索引集合与所述目标区域的第二关联关系。所述第三关联关系建立模块,用于将完全包含在所述地理围栏内,且瓦片索引级别最小的瓦片索引值作为第三瓦片索引值集合;以及为所述第三瓦片索引值集合设定所述瓦片索引类别,建立所述第三瓦片索引集合与所述目标区域的第三关联关系。所述设置模块,用于设置结束瓦片索引级别。所述目标区域确定模块,用于如果所述瓦片索引值集合中没有所述瓦片索引值,或者所述交点个数为偶数时,则将下一瓦片索引级别作为当前瓦片索引级别;以及重复执行转换模块、获取模块和确定模块的处理过程,直至确定所述目标点在其他的目标区域,或者所述下一瓦片索引级别为所述结束瓦片索引级别。
从以上描述可以看出,通过判断瓦片索引值集合中是否存在目标点在当前索引级别的瓦片索引值时,如果存在,则获取该瓦片索引值集合中所述瓦片索引值对应的瓦片索引类别和目标区域,以根据瓦片索引类别,确定目标点的位置,降低了查询及计算的复杂度,大幅提升定位效率。
图13示出了可以应用本发明实施例的目标点定位的方法或目标点定位的装置的示例性系统架构130。
如图13所示,系统架构130可以包括终端设备131、132、133,网络134和服务器135。网络134用以在终端设备131、132、133和服务器135之间提供通信链路的介质。网络134可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。
用户可以使用终端设备131、132、133通过网络134与服务器135交互,以接收或发送消息等。终端设备131、132、133上可以安装有各种通讯客户端应用,例如购物类应用、网页浏览器应用、搜索类应用、即时通信工具、邮箱客户端、社交平台软件等。
终端设备131、132、133可以是具有显示屏并且支持网页浏览的各种电子设备,包括但不限于智能手机、平板电脑、膝上型便携计算机和台式计算机等等。
服务器135可以是提供各种服务的服务器,例如对用户利用终端设备131、132、133所产生的点击事件提供支持的后台管理服务器。后台管理服务器可以对接收到的点击数据、文本内容等数据进行分析等处理,并将处理结果(例如目标推送信息、产品信息)反馈给终端设备。
需要说明的是,本申请实施例所提供的目标点定位的方法一般由服务器135执行,相应地,目标点定位的装置一般设置于服务器135中。
应该理解,图13中的终端设备、网络和服务器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的终端设备、网络和服务器。
根据本发明的实施例,本发明还提供了一种电子设备和一种计算机可读介质。
本发明的电子设备包括:一个或多个处理器;存储装置,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现本发明实施例的一种目标点定位的方法。
本发明的计算机可读介质,其上存储有计算机程序,所述程序被处理器执行时实现本发明实施例的一种目标点定位方法。
下面参考图14,其示出了适于用来实现本发明实施例的终端设备的计算机系统140的结构示意图。图14示出的终端设备仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
如图14所示,计算机系统140包括中央处理单元(CPU)141,其可以根据存储在只读存储器(ROM)142中的程序或者从存储部分148加载到随机访问存储器(RAM)143中的程序而执行各种适当的动作和处理。在RAM 143中,还存储有系统140操作所需的各种程序和数据。CPU 141、ROM 142以及RAM 143通过总线144彼此相连。输入/输出(I/O)接口145也连接至总线144。
以下部件连接至I/O接口145:包括键盘、鼠标等的输入部分146;包括诸如阴极射线管(CRT)、液晶显示器(LCD)等以及扬声器等的输出部分147;包括硬盘等的存储部分148;以及包括诸如LAN卡、调制解调器等的网络接口卡的通信部分149。通信部分149经由诸如因特网的网络执行通信处理。驱动器150也根据需要连接至I/O接口145。可拆卸介质151,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器150上,以便于从其上读出的计算机程序根据需要被安装入存储部分148。
特别地,根据本发明公开的实施例,上文主要步骤图描述的过程可以被实现为计算机软件程序。例如,本发明公开的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分149从网络上被下载和安装,和/或从可拆卸介质151被安装。在该计算机程序被中央处理单元(CPU)141执行时,执行本发明的系统中限定的上述功能。
需要说明的是,本发明所示的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本发明中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本发明中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、电线、光缆、RF等等,或者上述的任意合适的组合。
附图中的主要步骤图和框图,图示了按照本发明各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本发明实施例中所涉及到的模块可以通过软件的方式实现,也可以通过硬件的方式来实现。所描述的模块也可以设置在处理器中,例如,可以描述为:一种处理器包括转换模块、获取模块和确定模块。其中,这些模块的名称在某种情况下并不构成对该模块本身的限定,例如,转换模块还可以被描述为“在当前瓦片索引级别下,将目标点的经纬度坐标转换为瓦片索引值的模块”。
作为另一方面,本发明还提供了一种计算机可读介质,该计算机可读介质可以是上述实施例中描述的设备中所包含的;也可以是单独存在,而未装配入该设备中。上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被一个该设备执行时,使得该设备包括:在当前瓦片索引级别下,将目标点的经纬度坐标转换为瓦片索引值;如果预先存储的瓦片索引值集合中含有所述瓦片索引值,则获取所述瓦片索引值集合中所述瓦片索引值对应的瓦片索引类别和目标区域;根据所述瓦片索引类别,确定所述目标点在所述目标区域内,将所述目标区域作为所述目标点的位置。
上述产品可执行本发明实施例所提供的方法,具备执行方法相应的功能模块和有益效果。未在本实施例中详尽描述的技术细节,可参见本发明实施例所提供的方法。
上述具体实施方式,并不构成对本发明保护范围的限制。本领域技术人员应该明白的是,取决于设计要求和其他因素,可以发生各种各样的修改、组合、子组合和替代。任何在本发明的精神和原则之内所作的修改、等同替换和改进等,均应包含在本发明保护范围之内。