CN106156138B - 兴趣点的空间索引的建立、周边搜索方法和装置 - Google Patents
兴趣点的空间索引的建立、周边搜索方法和装置 Download PDFInfo
- Publication number
- CN106156138B CN106156138B CN201510170214.8A CN201510170214A CN106156138B CN 106156138 B CN106156138 B CN 106156138B CN 201510170214 A CN201510170214 A CN 201510170214A CN 106156138 B CN106156138 B CN 106156138B
- Authority
- CN
- China
- Prior art keywords
- morton
- point
- interest
- grid
- tile
- 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.)
- Active
Links
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Processing Or Creating Images (AREA)
Abstract
本发明实施例提供了一种兴趣点的空间索引的建立、兴趣点的周边搜索方法和装置,用以解决现有的兴趣点的周边搜索方法由于需要遍历确定的瓦片内的所有POI,这会导致周边范围搜索的效率会很低的问题。本发明实施例提供的一种兴趣点的空间索引的建立方法,包括:根据兴趣点的经纬度坐标,确定所述兴趣点的莫顿码;将莫顿码的前2n+2位二进制数据的值相等的兴趣点的属性信息存储在存储层级为n的瓦片中,所述瓦片的瓦片标识为该瓦片中存储的兴趣点的莫顿码的前2n+2位的值,其中,n为非零自然数;根据每个瓦片中存储的属性信息所属的兴趣点的莫顿码,将该瓦片中存储的属性信息所属的兴趣点按照设定的顺序进行排序。
Description
技术领域
本发明涉及电子地图技术领域,尤其涉及一种兴趣点的空间索引的建立方法、兴趣点的周边搜索方法和装置。
背景技术
导航及位置服务的相关产业在近几年得到了快速的发展,现有的地图引擎可以用于有效地搜索空间数据及快速响应不同用户的查询请求,特别是兴趣点(Point OfInterest,POI)查询请求。
现有的基于位置的服务有一个关键就是POI的周边搜索。POI的周边搜索是指:搜索用户当前所在位置周边或者用户选定位置周边一定范围内满足搜索条件的兴趣点。常用的POI的周边搜索的方法有:离线搜索、离线预加载搜索、在线搜索、在线预缓存搜索。
其中,离线搜索的过程是先确定POI的周边搜索的范围所包含的瓦片,之后遍历确定的瓦片内的所有POI,确定出满足搜索条件的POI。离线预加载搜索是离线搜索的优化方法,这种方法并不改变离线搜索的流程,只是在手机等客户端空闲的时候,提前由加载周边的POI数据到内存,在接收到POI的周边搜索的指令后,再进行显示。离线预加载搜索利用了客户端的空闲时间,所以显示的效率得到提高。在线搜索一般是利用客户端下载服务器上的数据,而服务器上的数据已经提前加载在服务器的内存上,在接收到POI的周边搜索的指令时,则由服务器计算得到周边的POI信息,之后再将服务器上的数据下载到本机来显示。在线预缓存搜索是在线搜索的优化方法,它不改变在线搜索的流程,但是在手机等客户端空闲的时候,提前由程序从服务器得到周边的POI数据,加载到客户端的缓存,只是不显示,在接收到POI的周边搜索的指令后,再进行显示。
综上所述,现有的POI的周边搜索都是先确定POI的周边搜索的范围所包含的瓦片,之后遍历确定的瓦片内的所有POI,确定出周边搜索的范围内的POI并保留的方法,这些方法的效率完全取决于瓦片内的POI的数量,当POI的数量庞大时,服务器或客户端都需要进行大量的计算,耗费大量的内存资源和计算资源,从而导致周边搜索的效率会很低。
发明内容
本发明实施例提供了一种兴趣点的空间索引的建立、兴趣点的周边搜索方法和装置,用以解决现有的兴趣点的周边搜索方法由于需要遍历确定的瓦片内的所有POI,这会导致周边范围搜索的效率会很低的问题。
基于上述问题,本发明实施例提供的一种兴趣点的空间索引的建立方法,包括:
根据兴趣点的经纬度坐标,确定所述兴趣点的莫顿码;
将莫顿码的前2n+2位二进制数据的值相等的兴趣点的属性信息存储在存储层级为n的瓦片中,所述瓦片的瓦片标识为该瓦片中存储的兴趣点的莫顿码的前2n+2位的值,其中,n为非零自然数;
根据每个瓦片中存储的属性信息所属的兴趣点的莫顿码,将该瓦片中存储的属性信息所属的兴趣点按照设定的顺序进行排序。
本发明实施例提供的一种兴趣点的周边搜索方法,兴趣点的空间索引是采用本发明实施例提供的兴趣点的空间索引的建立方法建立的,该方法包括:
根据周边搜索范围对应的形状的最小边长,和采用四叉树方法对电子地图进行切分的次数,确定产生待搜索的莫顿网格组的切分层级k;其中,一个兴趣点的莫顿码的前2k+2位二进制数据的值为该兴趣点在切分层级k中所在的莫顿网格的莫顿码;切分层级表示切分成的各种不同莫顿网格大小的切分空间,k大于n,小于等于m;
根据中心点的地理坐标,确定中心点的莫顿码;
确定切分层级k中莫顿码与所述中心点的莫顿码的前2k+2位相同的莫顿网格为与最小边长对应的最大莫顿网格;
根据确定的与最小边长对应的最大莫顿网格,确定待搜索的莫顿网格组中的其余莫顿网格;
在存储层级n中的瓦片标识与所述待搜索的莫顿网格组中的每个莫顿网格的莫顿码中的前2n+2位的值相等的瓦片中,查找莫顿码与所述中心点的莫顿码之差不超过预设值的兴趣点。
本发明实施例提供的一种兴趣点的空间索引的建立装置,包括:
第一确定模块,用于根据兴趣点的经纬度坐标,确定所述兴趣点的莫顿码;
存储模块,用于将莫顿码的前2n+2位二进制数据的值相等的兴趣点的属性信息存储在存储层级为n的瓦片中;所述瓦片的瓦片标识为该瓦片中存储的兴趣点的莫顿码的前2n+2位的值,其中,n为非零自然数;
排序模块,用于根据每个瓦片中存储的属性信息所属的兴趣点的莫顿码,将该瓦片中存储的属性信息所属的兴趣点按照设定的顺序进行排序。
本发明实施例提供的一种兴趣点的周边搜索装置,兴趣点的空间索引是采用本发明实施例提供的兴趣点的空间索引的建立方法建立的,该装置包括:
第二确定模块,用于根据周边搜索范围对应的形状的最小边长,和采用四叉树方法对电子地图进行切分的次数,确定产生待搜索的莫顿网格组的切分层级k;其中,一个兴趣点的莫顿码的前2k+2位二进制数据的值为该兴趣点在切分层级k中所在的莫顿网格的莫顿码;切分层级表示切分成的各种不同莫顿网格大小的切分空间,k大于n,小于等于m;
第三确定模块,用于根据中心点的地理坐标,确定中心点的莫顿码;
第四确定模块,用于确定切分层级k中莫顿码与所述中心点的莫顿码的前2k+2位相同的莫顿网格为与最小边长对应的最大莫顿网格;
第五确定模块,用于根据确定的与最小边长对应的最大莫顿网格,确定待搜索的莫顿网格组中的其余莫顿网格;
查找模块,用于在存储层级n中的瓦片标识与所述待搜索的莫顿网格组中的每个莫顿网格的莫顿码中的前2n+2位的值相等的瓦片中,查找莫顿码与所述中心点的莫顿码之差不超过预设值的兴趣点。
本发明实施例的有益效果包括:
本发明实施例提供的一种兴趣点的空间索引的建立方法、兴趣点的周边搜索方法和装置,由于在建立兴趣点的空间索引时根据兴趣点的经纬度坐标确定兴趣点的莫顿码,在存储层级n中的瓦片标识与兴趣点的莫顿码中的前2n+2位二进制数据的值相等的瓦片中存储该兴趣点的属性信息,然后根据每个瓦片中存储的属性信息所属的兴趣点的莫顿码,将该瓦片中存储的属性信息所属的兴趣点按照设定的顺序进行排序,从而将各个兴趣点按照其莫顿码的大小进行排序,而莫顿码的差值在一定程度上就代表了距离的远近,这样在搜索中心点周边的兴趣点时,就可以直接查找莫顿码与该中心点的莫顿码之差不超过预设值的用户搜索的兴趣点,从而可以提高周边兴趣点搜索的效率。
附图说明
图1为本发明实施例提供的兴趣点的空间索引的建立方法的流程图之一;
图2为本发明实施例提供的兴趣点的空间索引的建立方法的流程图之二;
图3为本发明实施例提供的兴趣点的周边搜索方法的流程图之一;
图4为本发明实施例提供的兴趣点的周边搜索方法在搜索兴趣点时待搜索的莫顿网格组与周边搜索范围的示意图之一;
图5为本发明实施例提供的兴趣点的周边搜索方法在搜索兴趣点时待搜索的莫顿网格组与周边搜索范围的示意图之二;
图6为本发明实施例提供的兴趣点的周边搜索方法的流程图之二;
图7为本发明实施例提供的兴趣点的周边搜索方法的流程图之三;
图8为本发明实施例提供的兴趣点的周边搜索方法的流程图之四;
图9为本发明实施例提供的兴趣点的周边搜索方法的流程图之五;
图10-图11为本发明实施例提供的兴趣点的空间索引的建立装置的结构图;
图12-图16为本发明实施例提供的兴趣点的周边搜索装置的结构图。
具体实施方式
本发明实施例提供的兴趣点的空间索引的建立方法、兴趣点的周边搜索方法和装置,根据兴趣点的经纬度坐标确定兴趣点的莫顿码,在存储层级n中的瓦片标识与兴趣点的莫顿码中的前2n+2位二进制数据的值相等的瓦片中存储该兴趣点的属性信息,然后根据每个瓦片中存储的属性信息所属的兴趣点的莫顿码,将该瓦片中存储的属性信息所属的兴趣点按照设定的顺序进行排序,而莫顿码的差值在一定程度上就代表了距离的远近,这样在搜索中心点周边的兴趣点时,就可以直接查找莫顿码与该中心点的莫顿码之差不超过预设值的用户搜索的兴趣点,从而提高了周边兴趣点搜索的效率。
下面结合说明书附图,对本发明实施例提供的一种兴趣点的空间索引的建立方法、兴趣点的周边搜索方法和装置的具体实施方式进行说明。
本发明实施例提供的一种兴趣点的空间索引的建立方法,如图1所示,包括:
S101、根据兴趣点的经纬度坐标,确定该兴趣点的莫顿码,其中,每一个经纬度坐标对应一个兴趣点;
S102、将莫顿码的前2n+2位二进制数据的值相等的兴趣点的属性信息存储在存储层级为n的瓦片中,所述瓦片的瓦片标识为该瓦片中存储的兴趣点的莫顿码的前2n+2位的值,其中,n为非零自然数;n一般小于等于15;
也就是说,存储层级n中的瓦片的瓦片标识为该瓦片对应的莫顿网格中的一个兴趣点的莫顿码中的前2n+2位二进制数据的值;存储层级n中的一个瓦片对应的莫顿网格中的各个兴趣点的属性信息均存储在该瓦片中。
电子地图的存储一般不大于15个存储层级,也就是说,电子地图在显示时,一般不多于15个等级的缩放。例如,在存储层级12中,一个POI的莫顿码的前26位的值就是存储该POI的属性信息的瓦片的瓦片标识;在存储层级15中,一个POI的莫顿码的前32位的值就是存储该POI的属性信息的瓦片的瓦片标识。假设一个POI的莫顿码的前30位为0,那么,在存储层级14中,该POI的属性信息存储在存储层级14中的瓦片0中;若该POI的莫顿码的从高位向低位的第31位和第32为“01”,那么,在存储层级15中,该POI的属性信息存储在存储层级15中的瓦片1中;
在实际中,可以将POI的属性信息存储在存储层级12的瓦片中,也可以将POI的属性信息存储在存储层级13的瓦片中,还可以将POI的属性信息存储在存储层级15的瓦片中,可以根据具体情况进行设置。
S103、根据每个瓦片中存储的属性信息所属的兴趣点的莫顿码,将该瓦片中存储的属性信息所属的兴趣点按照设定的顺序进行排序。
可以按照兴趣点的莫顿码的从小到大的顺序,将一个瓦片中存储的属性信息所属的兴趣点进行排序;也可以按照兴趣点的莫顿码的从大到小的顺序,将一个瓦片中存储的属性信息所属的兴趣点进行排序;当然,还可以按照其他顺序将一个瓦片中存储的属性信息所属的兴趣点进行排序。
可选地,根据一个兴趣点的经纬度坐标,确定该兴趣点的莫顿码,如图2所示,具体包括:
S201、采用四叉树方法将电子地图进行m次切分,得到所述兴趣点的经度坐标的二进制坐标和所述兴趣点的纬度坐标的二进制坐标;其中,m大于n,一般来说m不大于31;n为存储兴趣点的属性信息的瓦片的存储层级;
当切分次数大于15,小于等于31时,第p次切分形成的莫顿网格构成切分层级p,因此,切分层级是一个大于n,小于m的值,表示切分成的各种不同莫顿网格大小的切分空间。p越大,切分层级p产生的莫顿网格越小。
若采用四叉树方法将地球的经度和纬度分别进行31次切分后,根据兴趣点的经、纬度坐标得到该兴趣点的莫顿码坐标的方法如下:
将地球的经度和纬度采用四叉树方法分别进行31次切分,使得地球上的每个兴趣点的经度坐标都能对应一个小于231的整数,每个兴趣点的纬度坐标都能对应一个小于231的整数,从而得到一个兴趣点的经度坐标的二进制坐标和纬度坐标的二进制坐标;其中,赤道的纬度坐标为0度,则赤道的纬度坐标的二进制坐标为230,经度的0度的二进制坐标为230。由地球的周长可知,经过31次切分后,经度(或纬度)的二进制坐标的最小单位对应的地球表面的距离为40076km/231=1.87cm,经过31次切分后,完全可以保证每一组经纬度坐标的二进制坐标仅表示一个兴趣点。
S202、将所述兴趣点的经度坐标的二进制坐标,与所述兴趣点的纬度坐标的二进制坐标逐位交替排列得到所述兴趣点的莫顿码。
如步骤S202可知,POI的莫顿码至少为62位,加上符号位和一个空位,一共为64位,其组成原理如下:
例如,一个POI的经度坐标的二进制坐标为:24-1,即1111,该POI的纬度坐标的二进制坐标为:22-1,即11等价于0011;因此,在将该POI的经度坐标的二进制坐标与该POI的纬度坐标的二进制坐标逐位交替排列得到10101111,该POI的莫顿码的从左向右顺序,即从高位向低位顺序的第一位为符号位,该POI的莫顿码的第二位为空位,该POI的莫顿码的最后八位为10101111。
在采用本发明实施例提供的兴趣点的空间索引的建立方法建立兴趣点的空间索引后,本发明实施例还提供一种兴趣点的周边搜索方法,如图3所示,包括:
S301、根据周边搜索范围对应的形状的最小边长,和采用四叉树方法对电子地图进行切分的次数,确定产生待搜索的莫顿网格组的切分层级k;
其中,一个兴趣点的莫顿码的前2k+2位二进制数据的值为该兴趣点在切分层级k中所在的莫顿网格的莫顿码;切分层级表示切分成的各种不同莫顿网格大小的切分空间,k大于n,小于等于m;n为存储兴趣点的属性信息的瓦片的存储层级,m为采用四叉树方法对电子地图进行切分的次数;
其中,周边搜索范围可以是长方形,也可以是正方形,当然也可以是其他形状。POI的周边搜索范围可以根据应用或场景的不同而不同,若周边搜索范围为500m*1000m,则周边搜索范围对应的形状的最小边长为500m;若采用四叉树方法对电子地图进行m次切分(m次切分表示对电子地图的经度方向和电子地图的纬度方向分别进行了m次切分),则可以确定与最小边长对应的最大莫顿间隔,并由此确定产生最大莫顿网格的切分层级;
S302、根据中心点的地理坐标,确定中心点的莫顿码;
其中,中心点的地理坐标包括经度坐标和纬度坐标,可以首先将中心点的经度坐标转换为二进制坐标,并将中心点的纬度坐标转换为二进制坐标,然后将中心点的经度坐标的二进制坐标和中心点的纬度坐标的二进制坐标逐位交替排列,从而获得中心点的莫顿码。
其中,S301和S302并无逻辑上的先后顺序,可以先执行S301,然后执行S302,也可以先执行S302,然后执行S301,还可以S301和S302同时执行。
S303、确定切分层级k中莫顿码与所述中心点的莫顿码的前2k+2位相同的莫顿网格为与最小边长对应的最大莫顿网格;
切分层级k中的每个莫顿网格也可以按照该莫顿网格的经纬度坐标,生成该莫顿网格的莫顿码,生成方法与根据兴趣点的经纬度坐标生成兴趣点的莫顿码的方法相同,在此不再赘述。
S304、根据确定的与最小边长对应的最大莫顿网格,确定待搜索的莫顿网格组中的其余莫顿网格;
例如,若周边搜索范围对应的形状为正方形,则在确定最大莫顿网格后,待搜索的莫顿网格组中的其余莫顿网格如图4所示分别为:网格1、网格2、网格3、网格4、网格6、网格7、网格8、网格9;其中,网格5为最大莫顿网格。
若周边搜索范围对应的形状为长方形,且该长方形的长边与短边之比为5:3,则在确定最大莫顿网格后,待搜索的莫顿网格组中的其余莫顿网格,如图5所示分别为:网格1、网格2、网格3、网格4、网格5、网格6、网格7、网格9、网格10、网格11、网格12、网格13、网格14、网格15;其中,网格8为最大莫顿网格。
图4和图5中的虚线框为周边搜索范围对应的形状。
也就是说,采用本发明实施例提供的兴趣点的周边搜索方法,在显示中心点周边的兴趣点时,沿着周边搜索范围对应的形状的最小边长的方向最多显示3个莫顿网格;沿着周边搜索范围对应的形状的最大边长的方向显示的莫顿网格数,与沿着周边搜索范围对应的形状的最小边长的方向显示的莫顿网格数之比等于最大边长与最小边长之比。
S305、在存储层级n中的瓦片标识与所述待搜索的莫顿网格组中的每个莫顿网格的莫顿码中的前2n+2位的值相等的瓦片中,查找莫顿码与所述中心点的莫顿码之差不超过预设值的兴趣点。
也就是说,在确定了待搜索的莫顿网格组中的每个莫顿网格后,在存储层级n中查找瓦片标识与该莫顿网格的莫顿码中的前2n+2位的值相等的瓦片,在查找到的瓦片中查找莫顿码与所述中心点的莫顿码之差不超过预设值的用户搜索的兴趣点。
由于莫顿网格是由经纬度坐标按照一定的规则变换得来的,因此,莫顿网格也就可以表示莫顿网格所代表的经纬度坐标之差。
进一步地,根据周边搜索范围对应的形状的最小边长,和采用四叉树方法将电子地图进行切分的次数,确定产生待搜索的莫顿网格组的切分层级k,如图6所示,具体包括:
S601、根据周边搜索范围对应的形状的最小边长,和采用四叉树方法将电子地图进行切分的次数m,确定所述最小边长对应的最大莫顿码间隔;
S602、根据最大莫顿码间隔确定产生待搜索的莫顿网格组的切分层级k。
例如,若周边搜索范围为500m*1000m,则周边搜索范围对应的形状的最小边长为500m,假设将电子地图采用四叉树方法进行31次切分(即将电子地图的经度方向进行31次切分,并将电子地图的维度方向进行31次切分),经过31次切分后,经度(或纬度)的二进制坐标的最小单位对应的地球表面的距离为40076km/231=1.87cm,此时,周边搜索范围对应的形状的最小边长对应的莫顿码间隔为:500m/1.87cm=26737,也就是说,在周边搜索范围对应的形状的最小边长方向上,兴趣点的莫顿码的最大差不超过26737。由于215>26737>214,因此,产生待搜索的莫顿网格组的切分层级k=31-14=17。
在切分层级17中,最大莫顿网格的标识即为中心点的莫顿码的前2k+2=36位的值。
进一步地,在存储层级n中的瓦片标识与所述待搜索的莫顿网格组中的每个莫顿网格的莫顿码中的前2n+2位的值相等的瓦片中,查找莫顿码与所述中心点的莫顿码之差不超过预设值的兴趣点,如图7所示,具体包括:
S701、在存储层级n中的瓦片标识与所述待搜索的莫顿网格组中的各个中间莫顿网格的莫顿码中的前2n+2位的值相等的瓦片中,查找用户搜索的兴趣点;所述中间莫顿网格位于周边搜索范围内,最大莫顿网格为一个中间莫顿网格;
S702、针对每个周边莫顿网格,确定该周边莫顿网格与所述周边搜索范围的重叠部分,其中,周边莫顿网格为所述待搜索的莫顿网格组中除中间莫顿网格以外的莫顿网格;
S703、确定该周边莫顿网格与所述周边搜索范围的重叠部分的莫顿码的范围;
S704、在存储层级n中的瓦片标识与该周边莫顿网格的莫顿码中的前2n+2位的值相等的瓦片中,查找莫顿码在该周边莫顿网格与所述周边搜索范围的重叠部分的莫顿码的范围内的兴趣点。
在图5所示的周边搜索范围对应的形状和待搜索的莫顿网格组中,中间莫顿网格为网格5、网格8和网格11,其中,网格8为最大莫顿网格;周边莫顿网格为网格1、网格2、网格3、网格4、网格6、网格7、网格9、网格10、网格12、网格13、网格14和网格15。
以图4所示的周边搜索范围对应的形状和待搜索的莫顿网格组为例,在图4中,中间莫顿网格为网格5,同时网格5也是最大莫顿网格;周边莫顿网格为网格1、网格2、网格3、网格4、网格6、网格7、网格8和网格9,也就是说,在执行S701时,需要在存储层级n中的瓦片标识与网格5的莫顿码的前2n+2位的值相等的瓦片中查找用户搜索的兴趣点。各个周边莫顿网格与周边搜索范围的重叠部分为图4中的灰色部分;网格1与周边搜索范围的重叠部分的左上角的点的莫顿码为a,网格1与周边搜索范围的重叠部分的右下角的点的莫顿码为b,那么网格1与周边搜索范围的重叠部分的所有点的莫顿码都是大于a,并且小于b的,因此,在执行S704时,需要在存储层级n中的瓦片标识与网格1的莫顿码的前2n+2位的值相等的瓦片中,查找莫顿码大于a小于b的兴趣点。
当然,莫顿码大于a且小于b的点的集合中可能还会包含网格1与周边搜索范围的重叠部分以外的点,但是,莫顿码大于a且小于b的点的集合必定包含在网格1中的点的集合内,因此,尽管莫顿码大于a且小于b的点的集合中包含了,网格1与周边搜索范围的重叠部分的点,还包括了网格1与周边搜索范围的重叠部分以外的点,但是,网格1与周边搜索范围的重叠部分以外的点很少,因此,数据的冗余量很小,所占用的内存很小。
另外,由于网格1与周边搜索范围的重叠部分中的各个兴趣点是按照其莫顿码排过序的,因此,可以利用二分查找很快地查找到莫顿码大于a且小于b的兴趣点。
在对网格2、网格3、网格4、网格6、网格7、网格8和网格9执行S702~S704时的流程,与对网格1执行S702~S704时的流程相同,在此不再赘述。
进一步地,本发明实施例提供的兴趣点的周边搜索方法,如图8所示,在查找到莫顿码与所述中心点的莫顿码之差不超过预设值的兴趣点之后,还包括:
S801、计算查找到的各个兴趣点与中心点的距离;
S802、按照所述各个兴趣点与中心点的距离,对所述各个兴趣点进行排序。
进一步地,本发明实施例提供的兴趣点的周边搜索方法,如图9所示,在计算查找到的各个兴趣点与中心点的距离后,所述方法还包括:
S901、将所述查找到的各个兴趣点中与中心点距离最近的兴趣点作为要定位的兴趣点。
由于本发明可以很快地找到离中心点最近的兴趣点,所以本发明不仅是一种高效的周边搜索方法,还是一种高效的定位方法。即将要定位的点设为中心点,即可高效地找到离中心点最近的兴趣点,作为要定位的兴趣点。
本发明实施例提供的兴趣点的周边搜索方法,可以很快呈现出周边搜索范围内的兴趣点,在不对周边搜索范围内的兴趣点按照其与中心点的距离进行排序时,相比现有的兴趣点的周边搜索方法效率能够提高95%以上。即使对周边搜索范围内的兴趣点按照其与中心点的距离进行排序,本发明实施例提供的兴趣点的周边搜索方法相比现有的兴趣点的周边搜索方法,效率也能够提高80%以上。
基于同一发明构思,本发明实施例还提供了一种兴趣点的空间索引的建立装置和兴趣点的周边搜索装置,由于这些装置所解决问题的原理与前述方法相似,因此这些的实施可以参见前述方法的实施,重复之处不再赘述。
本发明实施例提供的一种兴趣点的空间索引的建立装置,如图10所示,包括:
第一确定模块101,用于根据兴趣点的经纬度坐标,确定所述兴趣点的莫顿码;
存储模块102,用于将莫顿码的前2n+2位二进制数据的值相等的兴趣点的属性信息存储在存储层级为n的瓦片中;所述瓦片的瓦片标识为该瓦片中存储的兴趣点的莫顿码的前2n+2位的值,其中,n为非零自然数;
排序模块103,用于根据每个瓦片中存储的属性信息所属的兴趣点的莫顿码,将该瓦片中存储的属性信息所属的兴趣点按照设定的顺序进行排序。
可选地,本发明实施例提供的一种兴趣点的空间索引的建立装置,如图11所示,第一确定模块具体包括切分获得模块111和交替排列模块112;
切分获得模块111,用于采用四叉树方法将电子地图进行m次切分,得到所述兴趣点的经度坐标的二进制坐标和所述兴趣点的纬度坐标的二进制坐标;其中,m大于n;
交替排列模块112,用于将所述兴趣点的经度坐标的二进制坐标,与所述兴趣点的纬度坐标的二进制坐标逐位交替排列得到所述兴趣点的莫顿码。
本发明实施例提供的一种兴趣点的周边搜索装置,兴趣点的空间索引是采用本发明实施例提供的兴趣点的空间索引的建立方法建立的,如图12所示,该装置包括:
第二确定模块121,用于根据周边搜索范围对应的形状的最小边长,和采用四叉树方法对电子地图进行切分的次数,确定产生待搜索的莫顿网格组的切分层级k;其中,一个兴趣点的莫顿码的前2k+2位二进制数据的值为该兴趣点在切分层级k中所在的莫顿网格的莫顿码;切分层级表示切分成的各种不同莫顿网格大小的切分空间,k大于n,小于等于m;
第三确定模块122,用于根据中心点的地理坐标,确定中心点的莫顿码;
第四确定模块123,用于确定切分层级k中莫顿码与所述中心点的莫顿码的前2k+2位相同的莫顿网格为与最小边长对应的最大莫顿网格;
第五确定模块124,用于根据确定的与最小边长对应的最大莫顿网格,确定待搜索的莫顿网格组中的其余莫顿网格;
查找模块125,用于在存储层级n中的瓦片标识与所述待搜索的莫顿网格组中的每个莫顿网格的莫顿码中的前2n+2位的值相等的瓦片中,查找莫顿码与所述中心点的莫顿码之差不超过预设值的兴趣点。
可选地,本发明实施例提供的一种兴趣点的周边搜索装置,如图13所示,第二确定模块具体包括第一确定单元131和第二确定单元132;
第一确定单元131,用于根据周边搜索范围对应的形状的最小边长,和采用四叉树方法将电子地图进行切分的次数m,确定所述最小边长对应的最大莫顿码间隔;
第二确定单元132,用于根据最大莫顿码间隔,确定产生所述待搜索的莫顿网格组的切分层级k。
可选地,本发明实施例提供的一种兴趣点的周边搜索装置,如图14所示,查找模块具体包括第一查找单元141、第三确定单元142、第四确定单元143和第二查找单元144;
第一查找单元141,用于在存储层级n中的瓦片标识与所述待搜索的莫顿网格组中的各个中间莫顿网格的莫顿码中的前2n+2位的值相等的瓦片中,查找用户搜索的兴趣点;所述中间莫顿网格位于所述周边搜索范围内;
第三确定单元142,用于针对每个周边莫顿网格,确定该周边莫顿网格与所述周边搜索范围的重叠部分,其中,周边莫顿网格为所述待搜索的莫顿网格组中除中间莫顿网格以外的莫顿网格;
第四确定单元143,用于确定该周边莫顿网格与所述周边搜索范围的重叠部分的莫顿码的范围;
第二查找单元144,用于在存储层级n中的瓦片标识与该周边莫顿网格的莫顿码中的前2n+2位的值相等的瓦片中,查找莫顿码在该周边莫顿网格与所述周边搜索范围的重叠部分的莫顿码的范围内的兴趣点。
进一步地,本发明实施例提供的一种兴趣点的周边搜索装置,如图15所示,还包括第二排序模块151;第二排序模块151,用于在查找模块125查找到莫顿码与所述中心点的莫顿码之差不超过预设值的兴趣点之后,计算查找到的各个兴趣点与中心点的距离;按照所述各个兴趣点与中心点的距离,对所述各个兴趣点进行排序。
进一步地,本发明实施例提供的一种兴趣点的周边搜索装置,如图16所示,还包括定位模块161;定位模块161用于,在第二排序模块151计算查找到的各个兴趣点与中心点的距离后,将所述查找到的各个兴趣点中与中心点距离最近的兴趣点作为要定位的兴趣点。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到本发明实施例可以通过硬件实现,也可以借助软件加必要的通用硬件平台的方式来实现。基于这样的理解,本发明实施例的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
本领域技术人员可以理解附图只是一个优选实施例的示意图,附图中的模块或流程并不一定是实施本发明所必须的。
本领域技术人员可以理解实施例中的装置中的模块可以按照实施例描述进行分布于实施例的装置中,也可以进行相应变化位于不同于本实施例的一个或多个装置中。上述实施例的模块可以合并为一个模块,也可以进一步拆分成多个子模块。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
Claims (10)
1.一种兴趣点的空间索引的建立方法,其特征在于,包括:
根据兴趣点的经纬度坐标,确定所述兴趣点的莫顿码;
将莫顿码的前2n+2位二进制数据的值相等的兴趣点的属性信息存储在存储层级为n的瓦片中,所述瓦片的瓦片标识为该瓦片中存储的兴趣点的莫顿码的前2n+2位的值,其中,n为非零自然数;
根据每个瓦片中存储的属性信息所属的兴趣点的莫顿码,将该瓦片中存储的属性信息所属的兴趣点按照设定的顺序进行排序。
2.如权利要求1所述的方法,其特征在于,根据兴趣点的经纬度坐标,确定所述兴趣点的莫顿码,具体包括:
采用四叉树方法将电子地图进行m次切分,得到所述兴趣点的经度坐标的二进制坐标和所述兴趣点的纬度坐标的二进制坐标;其中,m大于n;
将所述兴趣点的经度坐标的二进制坐标,与所述兴趣点的纬度坐标的二进制坐标逐位交替排列得到所述兴趣点的莫顿码。
3.一种兴趣点的周边搜索方法,其特征在于,兴趣点的空间索引是采用权利要求2所述方法建立的,所述方法包括:
根据周边搜索范围对应的形状的最小边长,和采用四叉树方法对电子地图进行切分的次数,确定产生待搜索的莫顿网格组的切分层级k;其中,一个兴趣点的莫顿码的前2k+2位二进制数据的值为该兴趣点在切分层级k中所在的莫顿网格的莫顿码;切分层级表示切分成的各种不同莫顿网格大小的切分空间,k大于n,k小于等于m;
根据中心点的地理坐标,确定中心点的莫顿码;
确定切分层级k中莫顿码与所述中心点的莫顿码的前2k+2位相同的莫顿网格为与最小边长对应的最大莫顿网格;
根据确定的与最小边长对应的最大莫顿网格,确定待搜索的莫顿网格组中的其余莫顿网格;
在存储层级n中的瓦片标识与所述待搜索的莫顿网格组中的每个莫顿网格的莫顿码中的前2n+2位的值相等的瓦片中,查找莫顿码与所述中心点的莫顿码之差不超过预设值的兴趣点。
4.如权利要求3所述的方法,其特征在于,根据周边搜索范围对应的形状的最小边长,和采用四叉树方法将电子地图进行切分的次数,确定产生待搜索的莫顿网格组的切分层级k,具体包括:
根据周边搜索范围对应的形状的最小边长,和采用四叉树方法将电子地图进行切分的次数m,确定所述最小边长对应的最大莫顿码间隔;
根据最大莫顿码间隔,确定产生所述待搜索的莫顿网格组的切分层级k。
5.如权利要求3所述的方法,其特征在于,在存储层级n中的瓦片标识与所述待搜索的莫顿网格组中的每个莫顿网格的莫顿码中的前2n+2位的值相等的瓦片中,查找莫顿码与所述中心点的莫顿码之差不超过预设值的兴趣点,具体包括:
在存储层级n中的瓦片标识与所述待搜索的莫顿网格组中的各个中间莫顿网格的莫顿码中的前2n+2位的值相等的瓦片中,查找用户搜索的兴趣点;所述中间莫顿网格位于所述周边搜索范围内;
针对每个周边莫顿网格,确定该周边莫顿网格与所述周边搜索范围的重叠部分,其中,周边莫顿网格为所述待搜索的莫顿网格组中除中间莫顿网格以外的莫顿网格;
确定该周边莫顿网格与所述周边搜索范围的重叠部分的莫顿码的范围;
在存储层级n中的瓦片标识与该周边莫顿网格的莫顿码中的前2n+2位的值相等的瓦片中,查找莫顿码在该周边莫顿网格与所述周边搜索范围的重叠部分的莫顿码的范围内的兴趣点。
6.一种兴趣点的空间索引的建立装置,其特征在于,包括:
第一确定模块,用于根据兴趣点的经纬度坐标,确定所述兴趣点的莫顿码;
存储模块,用于将莫顿码的前2n+2位二进制数据的值相等的兴趣点的属性信息存储在存储层级为n的瓦片中;所述瓦片的瓦片标识为该瓦片中存储的兴趣点的莫顿码的前2n+2位的值,其中,n为非零自然数;
排序模块,用于根据每个瓦片中存储的属性信息所属的兴趣点的莫顿码,将该瓦片中存储的属性信息所属的兴趣点按照设定的顺序进行排序。
7.如权利要求6所述的装置,其特征在于,所述第一确定模块具体包括切分获得模块和交替排列模块;
所述切分获得模块,用于采用四叉树方法将电子地图进行m次切分,得到所述兴趣点的经度坐标的二进制坐标和所述兴趣点的纬度坐标的二进制坐标;其中,m大于n;
所述交替排列模块,用于将所述兴趣点的经度坐标的二进制坐标,与所述兴趣点的纬度坐标的二进制坐标逐位交替排列得到所述兴趣点的莫顿码。
8.一种兴趣点的周边搜索装置,其特征在于,兴趣点的空间索引是采用权利要求2所述方法建立的,所述装置包括:
第二确定模块,用于根据周边搜索范围对应的形状的最小边长,和采用四叉树方法对电子地图进行切分的次数,确定产生待搜索的莫顿网格组的切分层级k;其中,一个兴趣点的莫顿码的前2k+2位二进制数据的值为该兴趣点在切分层级k中所在的莫顿网格的莫顿码;切分层级表示切分成的各种不同莫顿网格大小的切分空间,k大于n,k小于等于m;
第三确定模块,用于根据中心点的地理坐标,确定中心点的莫顿码;
第四确定模块,用于确定切分层级k中莫顿码与所述中心点的莫顿码的前2k+2位相同的莫顿网格为与最小边长对应的最大莫顿网格;
第五确定模块,用于根据确定的与最小边长对应的最大莫顿网格,确定待搜索的莫顿网格组中的其余莫顿网格;
查找模块,用于在存储层级n中的瓦片标识与所述待搜索的莫顿网格组中的每个莫顿网格的莫顿码中的前2n+2位的值相等的瓦片中,查找莫顿码与所述中心点的莫顿码之差不超过预设值的兴趣点。
9.如权利要求8所述的装置,其特征在于,所述第二确定模块具体包括第一确定单元和第二确定单元;
所述第一确定单元,用于根据周边搜索范围对应的形状的最小边长,和采用四叉树方法将电子地图进行切分的次数m,确定所述最小边长对应的最大莫顿码间隔;
所述第二确定单元,用于根据最大莫顿码间隔,确定产生所述待搜索的莫顿网格组的切分层级k。
10.如权利要求8所述的装置,其特征在于,所述查找模块具体包括第一查找单元、第三确定单元、第四确定单元和第二查找单元;
所述第一查找单元,用于在存储层级n中的瓦片标识与所述待搜索的莫顿网格组中的各个中间莫顿网格的莫顿码中的前2n+2位的值相等的瓦片中,查找用户搜索的兴趣点;所述中间莫顿网格位于所述周边搜索范围内;
所述第三确定单元,用于针对每个周边莫顿网格,确定该周边莫顿网格与所述周边搜索范围的重叠部分,其中,周边莫顿网格为所述待搜索的莫顿网格组中除中间莫顿网格以外的莫顿网格;
所述第四确定单元,用于确定该周边莫顿网格与所述周边搜索范围的重叠部分的莫顿码的范围;
所述第二查找单元,用于在存储层级n中的瓦片标识与该周边莫顿网格的莫顿码中的前2n+2位的值相等的瓦片中,查找莫顿码在该周边莫顿网格与所述周边搜索范围的重叠部分的莫顿码的范围内的兴趣点。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510170214.8A CN106156138B (zh) | 2015-04-10 | 2015-04-10 | 兴趣点的空间索引的建立、周边搜索方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510170214.8A CN106156138B (zh) | 2015-04-10 | 2015-04-10 | 兴趣点的空间索引的建立、周边搜索方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106156138A CN106156138A (zh) | 2016-11-23 |
CN106156138B true CN106156138B (zh) | 2019-08-09 |
Family
ID=57335913
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510170214.8A Active CN106156138B (zh) | 2015-04-10 | 2015-04-10 | 兴趣点的空间索引的建立、周边搜索方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106156138B (zh) |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107291785A (zh) | 2016-04-12 | 2017-10-24 | 滴滴(中国)科技有限公司 | 一种数据查找方法及装置 |
CN107402966A (zh) * | 2017-06-23 | 2017-11-28 | 口碑控股有限公司 | 搜索范围的计算方法及装置和电子设备 |
CN108228904B (zh) * | 2018-02-08 | 2021-08-20 | 百度在线网络技术(北京)有限公司 | 用于输出信息的方法和装置 |
CN110647595B (zh) * | 2018-06-11 | 2022-04-26 | 百度在线网络技术(北京)有限公司 | 一种新增兴趣点的确定方法、装置、设备和介质 |
CN108875013B (zh) * | 2018-06-19 | 2022-05-27 | 百度在线网络技术(北京)有限公司 | 处理地图数据的方法及装置 |
CN111061824B (zh) * | 2019-11-27 | 2023-07-25 | 北京中交兴路信息科技有限公司 | 基于改进四叉树的范围判断方法、装置、设备 |
CN111859187B (zh) * | 2020-06-30 | 2024-02-20 | 杭州欧若数网科技有限公司 | 基于分布式图数据库的poi查询方法、装置、设备及介质 |
CN113473399B (zh) * | 2021-06-28 | 2023-04-07 | 京东城市(北京)数字科技有限公司 | 异常聚集事件检测方法、装置、计算机设备及存储介质 |
CN113434894B (zh) * | 2021-07-19 | 2023-05-12 | 甘肃机电职业技术学院(甘肃省机械工业学校、甘肃省机械高级技工学校) | 位置数据加密、检索方法及***、位置隐私保护*** |
CN117056581A (zh) * | 2022-05-07 | 2023-11-14 | 北京沃东天骏信息技术有限公司 | 一种数据处理方法和装置 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101551252A (zh) * | 2009-05-22 | 2009-10-07 | 四川长虹电器股份有限公司 | 矢量地图制作及快速加载显示的方法 |
CN102651005A (zh) * | 2011-02-24 | 2012-08-29 | 北京千橡网景科技发展有限公司 | 兴趣点搜索方法以及设备 |
CN102799898A (zh) * | 2012-06-28 | 2012-11-28 | 浙江大学 | 大背景下高分辨率遥感影像目标识别高效处理方法 |
CN102881038A (zh) * | 2011-06-08 | 2013-01-16 | 太平洋数据影像有限责任公司 | 相干核外基于点的全局照明 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB201306944D0 (en) * | 2013-04-17 | 2013-05-29 | Tomtom Int Bv | Methods, devices and computer software for facilitating searching and display of locations relevant to a digital map |
-
2015
- 2015-04-10 CN CN201510170214.8A patent/CN106156138B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101551252A (zh) * | 2009-05-22 | 2009-10-07 | 四川长虹电器股份有限公司 | 矢量地图制作及快速加载显示的方法 |
CN102651005A (zh) * | 2011-02-24 | 2012-08-29 | 北京千橡网景科技发展有限公司 | 兴趣点搜索方法以及设备 |
CN102881038A (zh) * | 2011-06-08 | 2013-01-16 | 太平洋数据影像有限责任公司 | 相干核外基于点的全局照明 |
CN102799898A (zh) * | 2012-06-28 | 2012-11-28 | 浙江大学 | 大背景下高分辨率遥感影像目标识别高效处理方法 |
Non-Patent Citations (1)
Title |
---|
基于Oracle10gSpatial空间数据库的索引与查询;李天琦等;《桂林工学院学报》;20080228;第28卷(第1期);论文第132-135页 * |
Also Published As
Publication number | Publication date |
---|---|
CN106156138A (zh) | 2016-11-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106156138B (zh) | 兴趣点的空间索引的建立、周边搜索方法和装置 | |
CN110726418A (zh) | 兴趣点区域确定方法、装置、设备及存储介质 | |
US8442805B2 (en) | Efficient computation of Voronoi diagrams of general generators in general spaces and uses thereof | |
AU2020403654B2 (en) | Region division with cell merging using spanning tree | |
CN104221008A (zh) | 沿路线预取地图图块数据 | |
CN108229740B (zh) | 一种商圈边界的确定方法、装置、服务器及存储介质 | |
CN109478184A (zh) | 识别、处理和显示数据点聚类 | |
JP2015508544A (ja) | ヒート・ジオメトリの配置 | |
KR102050169B1 (ko) | 옥트리 구조 기반 3차원 지도 서비스를 위한 3차원 모델의 공간 인덱싱 방법과 이를 이용하는 3차원 지도 서비스 제공 방법 및 장치 | |
CN104751733B (zh) | 地图的区域绘制方法及装置、路径距离分类方法及*** | |
US9342222B2 (en) | Accessible chart navigation using object neighborhood | |
JP2008157698A (ja) | 経路探索方法、プログラム及びシステム | |
CN103164529B (zh) | 一种基于Voronoi图的反k最近邻查询方法 | |
WO2015187474A1 (en) | Visibility of a point of interest based on environmental conditions | |
US9633474B2 (en) | Method and apparatus for generating a composite indexable linear data structure to permit selection of map elements based on linear elements | |
CN108268504A (zh) | 一种划分兴趣点的搜索区域的方法及设备 | |
CN114691806A (zh) | 数据查询方法、展示方法、装置、电子设备及存储介质 | |
CN105426384A (zh) | 一种生成建议目标地点的方法和装置 | |
US20230169736A1 (en) | Planet-scale positioning of augmented reality content | |
CN112263836B (zh) | 虚拟场景的处理方法和装置以及存储介质 | |
CN114116948A (zh) | 地理矢量数据空间缓冲区分析方法、装置、设备及介质 | |
CN112632338A (zh) | 一种点云数据检索方法、装置、设备及存储介质 | |
CN113868555A (zh) | 一种轨迹检索方法、装置、设备以及存储介质 | |
JP5171904B2 (ja) | 分散処理システム及び分散処理方法 | |
KR101293770B1 (ko) | 자료 표출 시스템 및 자료 표출 방법 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
TR01 | Transfer of patent right |
Effective date of registration: 20200420 Address after: 310012 room 508, floor 5, building 4, No. 699, Wangshang Road, Changhe street, Binjiang District, Hangzhou City, Zhejiang Province Patentee after: Alibaba (China) Co.,Ltd. Address before: 102200, No. 8, No., Changsheng Road, Changping District science and Technology Park, Beijing, China. 1-5 Patentee before: AUTONAVI SOFTWARE Co.,Ltd. |
|
TR01 | Transfer of patent right |