CN108920462B - 基于地图的兴趣点poi检索方法和装置 - Google Patents
基于地图的兴趣点poi检索方法和装置 Download PDFInfo
- Publication number
- CN108920462B CN108920462B CN201810712391.8A CN201810712391A CN108920462B CN 108920462 B CN108920462 B CN 108920462B CN 201810712391 A CN201810712391 A CN 201810712391A CN 108920462 B CN108920462 B CN 108920462B
- Authority
- CN
- China
- Prior art keywords
- grid
- retrieval
- poi
- grid index
- index
- 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
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/20—Natural language analysis
- G06F40/279—Recognition of textual entities
- G06F40/289—Phrasal analysis, e.g. finite state techniques or chunking
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Health & Medical Sciences (AREA)
- Artificial Intelligence (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Computational Linguistics (AREA)
- General Health & Medical Sciences (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了基于地图的兴趣点POI检索方法和装置。所述方法包括:对包含POI的地理空间进行网格划分,得到多个网格;设置多个网格索引层级,在不同网格索引层级下分别为该多个网格建立网格索引;根据检索条件选择相匹配的网格索引层级,利用该网格索引层级下的网格索引进行POI检索,得到检索结果并返回。该技术方案通过设置多网格索引层级,可以在检索时有效减少需要参与运算的数据量,极大地提高检索效率,并降低资源消耗,缩短返回检索结果的响应时间。
Description
技术领域
本发明涉及电子地图技术领域,具体涉及基于地图的兴趣点POI检索方法和装置。
背景技术
POI通常是point of interest(兴趣点)的缩写,也可以指point of information(信息点)。兴趣点和信息点在地图中可以作为出银行、景点、公司、医院、政府机构、餐馆、商场等的标识。本发明中的“兴趣点”和“POI”均指上述含义。
用户可以在地图中进行POI的检索,例如查找某一区域内的川菜馆。如何提高检索效率是需要解决的问题。
发明内容
鉴于上述问题,提出了本发明以便提供一种克服上述问题或者至少部分地解决上述问题的基于地图的兴趣点POI检索方法和装置。
依据本发明的一个方面,提供了一种基于地图的兴趣点POI检索方法,包括:对包含POI的地理空间进行网格划分,得到多个网格;设置多个网格索引层级,在不同网格索引层级下分别为该多个网格建立网格索引;根据检索条件选择相匹配的网格索引层级,利用该网格索引层级下的网格索引进行POI检索,得到检索结果并返回。
可选地,所述对包含兴趣点POI的地理空间进行网格划分,得到多个网格包括:对所述地理空间以预设比例尺建立网格坐标系,将所述地理空间划分为若干个大小相同的矩形网格;按照预设的网格编号规则确定各网格的网格编号。
可选地,所述在不同网格索引层级下分别为该多个网格建立网格索引包括:根据各POI的地理位置信息,计算各POI所属网格在所述网格坐标系中的行号和列号;根据计算得到的行号和列号以及所述网格编号规则计算出相应网格的网格编号;生成各POI和相应网格编号的对应关系。
可选地,所述在不同网格索引层级下分别为该多个网格建立网格索引包括:以网格编号为主键、以相应网格所包含的所有POI的索引号为字段内容建立与各网格索引层级对应的倒排索引表。
可选地,所述多个网格索引层级分别对应于不同的地理空间尺度。
可选地,所述检索条件包括检索地理区域和检索关键字;所述根据检索条件选择相匹配的网格索引层级,利用该网格索引层级下的网格索引进行POI检索,得到检索结果并返回包括:根据所述检索地理区域选择相匹配的网格索引层级并确定待检索网格,根据该网格索引层级下的网格索引确定与待检索网格对应的第一POI集合;根据所述检索关键字确定第二POI集合;对所述第一POI集合和所述第二POI集合求交集,将所述交集中的各POI作为检索结果并返回。
可选地,所述根据所述检索地理区域选择相匹配的网格索引层级并确定待检索网格包括:确定所述检索地理区域的最小外包矩形;按所述地理空间尺度由大到小遍历各网格索引层级,选择出与所述最小外包矩形匹配度最高的网格索引层级;根据所述最小外包矩形计算相对应的一个或多个网格,生成与该一个或多个网格对应的第一检索标记;根据所述第一检索标记,在选择出的网格索引层级下的网格索引中进行POI检索,得到包含若干个POI的第一POI集合。
可选地,所述根据所述检索关键字确定第二POI集合包括:对所述检索关键字进行自然语言处理,根据分析结果生成与所述检索关键字对应的第二检索标记;根据所述第二检索标记进行POI检索,得到包含若干个POI的第二POI集合。
可选地,所述将所述交集中的各POI作为检索结果并返回包括:对所述交集中的各POI进行过滤和排序,得到最终检索结果并返回。
可选地,所述对所述检索结果进行过滤和排序包括:获取所述交集中各POI的地理位置信息,将所述地理位置信息和所述检索地理区域进行比对,从所述交集中清除所述检索地理区域外的POI;将所述交集中剩余的全部POI按所述检索关键字进行评分,根据所述评分结果进行排序。
依据本发明的另一方面,提供了一种基于地图的兴趣点POI检索装置,包括:网格索引单元,适于对包含POI的地理空间进行网格划分,得到多个网格;设置多个网格索引层级,在不同网格索引层级下分别为该多个网格建立网格索引;POI检索单元,适于根据检索条件选择相匹配的网格索引层级,利用该网格索引层级下的网格索引进行POI检索,得到检索结果并返回。
可选地,所述网格索引单元,适于对所述地理空间以预设比例尺建立网格坐标系,将所述地理空间划分为若干个大小相同的矩形网格;按照预设的网格编号规则确定各网格的网格编号。
可选地,所述网格索引单元,适于根据各POI的地理位置信息,计算各POI所属网格在所述网格坐标系中的行号和列号;根据计算得到的行号和列号以及所述网格编号规则计算出相应网格的网格编号;生成各POI和相应网格编号的对应关系。
可选地,所述网格索引单元,适于以网格编号为主键、以相应网格所包含的所有POI的索引号为字段内容建立与各网格索引层级对应的倒排索引表。
可选地,所述多个网格索引层级分别对应于不同的地理空间尺度。
可选地,所述检索条件包括检索地理区域和检索关键字;所述POI检索单元,适于根据所述检索地理区域选择相匹配的网格索引层级并确定待检索网格,根据该网格索引层级下的网格索引确定与待检索网格对应的第一POI集合;根据所述检索关键字确定第二POI集合;对所述第一POI集合和所述第二POI集合求交集,将所述交集中的各POI作为检索结果并返回。
可选地,所述POI检索单元,适于确定所述检索地理区域的最小外包矩形;按所述地理空间尺度由大到小遍历各网格索引层级,选择出与所述最小外包矩形匹配度最高的网格索引层级;根据所述最小外包矩形计算相对应的一个或多个网格,生成与该一个或多个网格对应的第一检索标记;根据所述第一检索标记,在选择出的网格索引层级下的网格索引中进行POI检索,得到包含若干个POI的第一POI集合。
可选地,所述POI检索单元,适于对所述检索关键字进行自然语言处理,根据分析结果生成与所述检索关键字对应的第二检索标记;根据所述第二检索标记进行POI检索,得到包含若干个POI的第二POI集合。
可选地,所述POI检索单元,适于对所述交集中的各POI进行过滤和排序,得到最终检索结果并返回。
可选地,所述POI检索单元,适于获取所述交集中各POI的地理位置信息,将所述地理位置信息和所述检索地理区域进行比对,从所述交集中清除所述检索地理区域外的POI;将所述交集中剩余的全部POI按所述检索关键字进行评分,根据所述评分结果进行排序。
依据本发明的又一方面,提供了一种智能终端,包括:处理器;以及被安排成存储计算机可执行指令的存储器,所述可执行指令在被执行时使所述处理器执行如上述任一所述的方法。
依据本发明的再一方面,提供了一种计算机可读存储介质,其中,所述计算机可读存储介质存储一个或多个程序,所述一个或多个程序当被处理器执行时,实现如上述任一所述的方法。
由上述可知,本发明的技术方案,通过在对包含POI的地理空间进行网格划分,得到多个网格,在设置的不同网格索引层级下分别为该多个网格建立网格索引,从而在检索时根据检索条件选择相匹配的网格索引层级,利用该网格索引层级下的网格索引进行POI检索,得到检索结果并返回。该技术方案通过设置多网格索引层级,可以在检索时有效减少需要参与运算的数据量,极大地提高检索效率,并降低资源消耗,缩短返回检索结果的响应时间。
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
附图说明
通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
图1示出了根据本发明一个实施例的一种基于地图的兴趣点POI检索方法的流程示意图;
图2示出了根据本发明一个实施例的一种基于地图的兴趣点POI检索装置的结构示意图;
图3示出了根据本发明一个实施例的智能终端的结构示意图;
图4示出了根据本发明一个实施例的计算机可读存储介质的结构示意图。
具体实施方式
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
在一个包含多个POI的电子地图中进行检索,通常用户会给定一个检索关键字,例如“美食”、“电影院”,并选定一个地理区域作为检索范围,例如“附近3km”,这种情况下就需要获取用户的当前地理位置信息,在半径3km的圆形区域内进行相应POI的检索。
现有技术中针对上述情况,通常至少需要进行两次检索,一次是以检索关键字进行检索,得到一个检索结果集合;一次是以地理区域进行检索,再得到一个检索结果集合;然后对两个集合求交集。而实际上,在具体实现时,为了提高以地理区域进行检索的效率,可以采用经纬度,即在一个经度区间进行检索,以及在一个纬度区间进行检索,这样实际得到的是三个集合,需要对三个集合求交集。
显然,经度区间检索和纬度区间检索对应的地理区域(也可以称之为召回区域)极大,得到的集合中POI数量较多,进一步使得求交集操作的时间消耗较多。
设置索引是提高检索效率的有效方式,例如设置经度索引+纬度索引的组合方式。为了进一步提高性能,考虑到电子地图领域的应用场景,本发明方案的设计思路在于:对地理空间进行网格划分,设置网格索引减小召回区域;并进一步考虑到用户选定的地理区域可能是任意的,设置了多层级的网格索引,贴合用户的不同需求,以空间换时间,进一步提升响应速度。经验证,平均响应时间可以下降20ms。
图1示出了根据本发明一个实施例的一种基于地图的兴趣点POI检索方法的流程示意图。如图1所示,该方法包括:
步骤S110,对包含POI的地理空间进行网格划分,得到多个网格。
这一步骤可以参考电子地图领域中划分网格的各类方式,在本实施例中对此不做限制。
步骤S120,设置多个网格索引层级,在不同网格索引层级下分别为该多个网格建立网格索引。
步骤S130,根据检索条件选择相匹配的网格索引层级,利用该网格索引层级下的网格索引进行POI检索,得到检索结果并返回。
可见,图1所示的方法,通过在对包含POI的地理空间进行网格划分,得到多个网格,在设置的不同网格索引层级下分别为该多个网格建立网格索引,从而在检索时根据检索条件选择相匹配的网格索引层级,利用该网格索引层级下的网格索引进行POI检索,得到检索结果并返回。该技术方案通过设置多网格索引层级,可以在检索时有效减少需要参与运算的数据量,极大地提高检索效率,并降低资源消耗,缩短返回检索结果的响应时间。
在本发明的一个实施例中,上述方法中,对包含兴趣点POI的地理空间进行网格划分,得到多个网格包括:对地理空间以预设比例尺建立网格坐标系,将地理空间划分为若干个大小相同的矩形网格;按照预设的网格编号规则确定各网格的网格编号。
例如,一个网格的宽和高均对应地理空间中的1.25km、一种网格编号规则的示例如下:在进行编号时,将地理空间的左下角设置为网格坐标系的原点,按由下至上、由左至右的顺序,由编号0开始编号。
在本发明的一个实施例中,上述方法中,在不同网格索引层级下分别为该多个网格建立网格索引包括:根据各POI的地理位置信息,计算各POI所属网格在网格坐标系中的行号和列号;根据计算得到的行号和列号以及网格编号规则计算出相应网格的网格编号;生成各POI和相应网格编号的对应关系。
以上述实施例示出的网格编号规则为例,记网格坐标系原点的地理坐标为(x0,y0),POI的地理坐标为(xi,yi),则POI所在网格的行号m、列号n可以通过公式(1)计算:
m=int(xi-x0)/Δh+1;n=int(yi-y0)/Δh+1 (1)
其中,int代表取整运算,x0、y0分别代表,Δh代表网格的边长(在本例中网格的宽、高相等,即网格为正方形)。之后根据公式(2)计算网格编号grid:
grid=(n-1)*M+m-1 (2)
其中,M为网格行数的最大值。
例如,对一个3*3的网格,M=3,第一列由下至上的三个网格的网格编号依次为0、1、2,第二列由下至上的三个网格的网格编号依次为3、4、5,第三列由下至上的三个网格的网格编号依次为6、7、8。在确定了行号为2,列号为3后,依据上述公式可以快速计算得到grid=2*3+2-1=7。
网格索引实际上是网格中POI的索引,也就是倒排索引。例如在本发明的一个实施例中,上述方法中,在不同网格索引层级下分别为该多个网格建立网格索引包括:以网格编号为主键、以相应网格所包含的所有POI的索引号为字段内容建立与各网格索引层级对应的倒排索引表。
以网格编号10000的网格为例,其中可能包含4个POI,索引号分别为40001、40002、40003、40004,则在某一层级的倒排索引表中其被记录为主键10000,字段内容40001,40002,40003,40004。这样在POI检索时,如果获取到网格编号10000的网格,就可以直接确定将索引号40001、40002、40003、40004的POI放入相应的POI集合。由于有多个网格索引层级,可以看出,一个POI被记录在多个倒排索引表中。
在本发明的一个实施例中,上述方法中,多个网格索引层级分别对应于不同的地理空间尺度。
例如,设置4个网格索引层级,对应的地理空间尺度分别为5km、10km、25km、50km。可以看出,地理空间尺度的不同,网格所对应的地理空间却是固定的,以网格的宽、高对应地理空间中的1.25km为例,在设置网格索引时,5km的地理空间尺度可以对应4个网格,10km对应8个网格。
下面结合用户的POI检索来说明这样设置的好处。在本发明的一个实施例中,上述方法中,检索条件包括检索地理区域和检索关键字;根据检索条件选择相匹配的网格索引层级,利用该网格索引层级下的网格索引进行POI检索,得到检索结果并返回包括:根据检索地理区域选择相匹配的网格索引层级并确定待检索网格,根据该网格索引层级下的网格索引确定与待检索网格对应的第一POI集合;根据检索关键字确定第二POI集合;对第一POI集合和第二POI集合求交集,将交集中的各POI作为检索结果并返回。
检索关键字可以对应于POI名称,例如“中国工商银行”;也可以对应于POI类型,例如“餐饮”。检索地理区域可以是用户附近的地理区域,也可以是用户手动输入的一个地理区域,在进行了两次独立的POI检索后,对检索结果求交集可以获得最终的POI检索结果。
在本发明的一个实施例中,上述方法中,根据检索地理区域选择相匹配的网格索引层级并确定待检索网格包括:确定检索地理区域的最小外包矩形;按地理空间尺度由大到小遍历各网格索引层级,选择出与最小外包矩形匹配度最高的网格索引层级;根据最小外包矩形计算相对应的一个或多个网格,生成与该一个或多个网格对应的第一检索标记;根据第一检索标记,在选择出的网格索引层级下的网格索引中进行POI检索,得到包含若干个POI的第一POI集合。
用户选定的检索地理区域一般是圆形或者矩形,也有可能是不规则区域。在本实施例中采用求最小外包矩形的方式,以便与矩形的网格相对应。根据最小外包矩形的大小,可以选取合适的网格索引层级,例如最小外包矩形对应的地理空间距离是3km*5km,则可以选取5km的网格索引层级;最小外包矩形对应的地理空间距离是30km*50km,则选取50km的网格索引层级。
在选取匹配的网格索引层级时可以由地理空间尺度由大到小进行遍历,例如先将最小外包矩形与50km进行匹配,再依次与20km、10km、5km进行匹配。最终得到的第一检索标记(token)的值实际就是若干个网格编号。这样再在倒排索引表中检索就可以直接得到POI的索引号。
在本发明的一个实施例中,上述方法中,根据检索关键字确定第二POI集合包括:对检索关键字进行自然语言处理,根据分析结果生成与检索关键字对应的第二检索标记;根据第二检索标记进行POI检索,得到包含若干个POI的第二POI集合。
这里的自然语言处理可以包括将检索关键字进行分词,得到若干个分词对象(term),再根据term组合成第二检索标记(token)。
在上面的实施例中,选用了检索关键字和检索地理区域,得到两个POI集合,实际上在运用时也可以添加其他限制条件,例如限制在某一城市进行POI检索。
在本发明的一个实施例中,上述方法中,将交集中的各POI作为检索结果并返回包括:对交集中的各POI进行过滤和排序,得到最终检索结果并返回。
为了进一步保证检索结果的准确性,以及提高用户的体验,可以对POI进行过滤和排序。其中过滤对结果准确性有着极大的影响,尤其是对于区域检索的情况。例如上述实施例中所示出的,需要对检索地理区域求最小外包矩形,那么很容易想象出,最终得到的POI很可能实际处于最小外包矩形中,但并不在检索地理区域中(以检索地理区域为圆形为例,则最小外包矩形的四个角附近的POI就不在检索地理区域中)。
因此在本发明的一个实施例中,上述方法中,对检索结果进行过滤和排序包括:获取交集中各POI的地理位置信息,将地理位置信息和检索地理区域进行比对,从交集中清除检索地理区域外的POI;将交集中剩余的全部POI按检索关键字进行评分,根据评分结果进行排序。
在本实施例中,通过获取各POI的地理位置信息(如经纬度信息),与检索地理区域进行几何计算,可以判断出POI是否落入检索地理区域,并进一步筛除不在其中的POI。POI排序可以依据现有技术中的rank评分进行实现,在此不做过多介绍。
下面以用户在北京市输入“附近的美食”作为检索关键字进行一个POI检索的示例:
首先,生成三个token,如下表所示:
其中,“美食”对应于上述实施例中的第二检索标记,网格token对应于上述实施例中的第一检索标记。Wordid仅是与前两种搜索对应的值,在此不需要过多说明,主要介绍网格token的产生过程。
用户当前位置的经纬度是(116.49101,39.98303),附近查找默认距离范围是5km,根据中心点以及半径,得到圆形区域,求出最大外包矩形为mbr[4]=[31469013,31480020,17148906,17159913],其中前两个是经度范围(墨卡托坐标形式),后两个是纬度范围(墨卡托坐标形式)。
根据这个经纬度范围,筛选最贴近该区域的索引区。遍历四个层级的网格索引,不难发现用最低层级的网格索引(5km网格索引)找到的区域最贴近用户要查找的区域。找到这个5km区域后,拿出该区域的网格编号,构成网格编号集合:[16197858,16197865,16246949,16246956]。集合中的4个网格编号正对应于前面示出的5km(该网格索引层级对应的地理空间尺度)/1.25km(网格对应的地理空间)=4。
在本例中网格token的格式为:“grid_model_”+网格编号集合,因此最后生成的网格token=grid_model_16197858_16197865_16246949_16246956。
进一步地,根据在该网格索引层级下建立好的倒排索引表,拉取三个token的倒排列表求交集,然后根据用户真正所在的位置,按照半径5km范围进行筛选,得到最终的poi集合,最后根据rank打分按由高到低的顺序输出poi结果。
图2示出了根据本发明一个实施例的一种基于地图的兴趣点POI检索装置的结构示意图。如图2所示,基于地图的兴趣点POI检索装置200包括:
网格索引单元210,适于对包含POI的地理空间进行网格划分,得到多个网格;设置多个网格索引层级,在不同网格索引层级下分别为该多个网格建立网格索引。
可以参考电子地图领域中划分网格的各类方式,在本实施例中对此不做限制。
POI检索单元220,适于根据检索条件选择相匹配的网格索引层级,利用该网格索引层级下的网格索引进行POI检索,得到检索结果并返回。
可见,图2所示的装置,通过各单元的相互配合,在对包含POI的地理空间进行网格划分,得到多个网格,在设置的不同网格索引层级下分别为该多个网格建立网格索引,从而在检索时根据检索条件选择相匹配的网格索引层级,利用该网格索引层级下的网格索引进行POI检索,得到检索结果并返回。该技术方案通过设置多网格索引层级,可以在检索时有效减少需要参与运算的数据量,极大地提高检索效率,并降低资源消耗,缩短返回检索结果的响应时间。
在本发明的一个实施例中,上述装置中,网格索引单元210,适于对地理空间以预设比例尺建立网格坐标系,将地理空间划分为若干个大小相同的矩形网格;按照预设的网格编号规则确定各网格的网格编号。
例如,一个网格的宽和高均对应地理空间中的1.25km、一种网格编号规则的示例如下:在进行编号时,将地理空间的左下角设置为网格坐标系的原点,按由下至上、由左至右的顺序,由编号0开始编号。
在本发明的一个实施例中,上述装置中,网格索引单元210,适于根据各POI的地理位置信息,计算各POI所属网格在网格坐标系中的行号和列号;根据计算得到的行号和列号以及网格编号规则计算出相应网格的网格编号;生成各POI和相应网格编号的对应关系。
以上述实施例示出的网格编号规则为例,记网格坐标系原点的地理坐标为(x0,y0),POI的地理坐标为(xi,yi),则POI所在网格的行号m、列号n可以通过公式(1)计算:
m=int(xi-x0)/Δh+1;n=int(yi-y0)/Δh+1 (1)
其中,int代表取整运算,x0、y0分别代表,Δh代表网格的边长(在本例中网格的宽、高相等,即网格为正方形)。之后根据公式(2)计算网格编号grid:
grid=(n-1)*M+m-1 (2)
其中,M为网格行数的最大值。
例如,对一个3*3的网格,M=3,第一列由下至上的三个网格的网格编号依次为0、1、2,第二列由下至上的三个网格的网格编号依次为3、4、5,第三列由下至上的三个网格的网格编号依次为6、7、8。在确定了行号为2,列号为3后,依据上述公式可以快速计算得到grid=2*3+2-1=7。
网格索引实际上是网格中POI的索引,也就是倒排索引。例如在本发明的一个实施例中,上述装置中,网格索引单元210,适于以网格编号为主键、以相应网格所包含的所有POI的索引号为字段内容建立与各网格索引层级对应的倒排索引表。
以网格编号10000的网格为例,其中可能包含4个POI,索引号分别为40001、40002、40003、40004,则在某一层级的倒排索引表中其被记录为主键10000,字段内容40001,40002,40003,40004。这样在POI检索时,如果获取到网格编号10000的网格,就可以直接确定将索引号40001、40002、40003、40004的POI放入相应的POI集合。由于有多个网格索引层级,可以看出,一个POI被记录在多个倒排索引表中。
在本发明的一个实施例中,上述装置中,多个网格索引层级分别对应于不同的地理空间尺度。
例如,设置4个网格索引层级,对应的地理空间尺度分别为5km、10km、25km、50km。可以看出,地理空间尺度的不同,网格所对应的地理空间却是固定的,以网格的宽、高对应地理空间中的1.25km为例,在设置网格索引时,5km的地理空间尺度可以对应4个网格,10km对应8个网格。
下面结合用户的POI检索来说明这样设置的好处。在本发明的一个实施例中,上述装置中,检索条件包括检索地理区域和检索关键字;POI检索单元220,适于根据检索地理区域选择相匹配的网格索引层级并确定待检索网格,根据该网格索引层级下的网格索引确定与待检索网格对应的第一POI集合;根据检索关键字确定第二POI集合;对第一POI集合和第二POI集合求交集,将交集中的各POI作为检索结果并返回。
检索关键字可以对应于POI名称,例如“中国工商银行”;也可以对应于POI类型,例如“餐饮”。检索地理区域可以是用户附近的地理区域,也可以是用户手动输入的一个地理区域,在进行了两次独立的POI检索后,对检索结果求交集可以获得最终的POI检索结果。
在本发明的一个实施例中,上述装置中,POI检索单元220,适于确定检索地理区域的最小外包矩形;按地理空间尺度由大到小遍历各网格索引层级,选择出与最小外包矩形匹配度最高的网格索引层级;根据最小外包矩形计算相对应的一个或多个网格,生成与该一个或多个网格对应的第一检索标记;根据第一检索标记,在选择出的网格索引层级下的网格索引中进行POI检索,得到包含若干个POI的第一POI集合。
用户选定的检索地理区域一般是圆形或者矩形,也有可能是不规则区域。在本实施例中采用求最小外包矩形的方式,以便与矩形的网格相对应。根据最小外包矩形的大小,可以选取合适的网格索引层级,例如最小外包矩形对应的地理空间距离是3km*5km,则可以选取5km的网格索引层级;最小外包矩形对应的地理空间距离是30km*50km,则选取50km的网格索引层级。
在选取匹配的网格索引层级时可以由地理空间尺度由大到小进行遍历,例如先将最小外包矩形与50km进行匹配,再依次与20km、10km、5km进行匹配。最终得到的第一检索标记(token)的值实际就是若干个网格编号。这样再在倒排索引表中检索就可以直接得到POI的索引号。
在本发明的一个实施例中,上述装置中,POI检索单元220,适于对检索关键字进行自然语言处理,根据分析结果生成与检索关键字对应的第二检索标记;根据第二检索标记进行POI检索,得到包含若干个POI的第二POI集合。
这里的自然语言处理可以包括将检索关键字进行分词,得到若干个分词对象(term),再根据term组合成第二检索标记(token)。
在上面的实施例中,选用了检索关键字和检索地理区域,得到两个POI集合,实际上在运用时也可以添加其他限制条件,例如限制在某一城市进行POI检索。
在本发明的一个实施例中,上述装置中,POI检索单元220,适于对交集中的各POI进行过滤和排序,得到最终检索结果并返回。
为了进一步保证检索结果的准确性,以及提高用户的体验,可以对POI进行过滤和排序。其中过滤对结果准确性有着极大的影响,尤其是对于区域检索的情况。例如上述实施例中所示出的,需要对检索地理区域求最小外包矩形,那么很容易想象出,最终得到的POI很可能实际处于最小外包矩形中,但并不在检索地理区域中(以检索地理区域为圆形为例,则最小外包矩形的四个角附近的POI就不在检索地理区域中)。
因此在本发明的一个实施例中,上述装置中,POI检索单元220,适于获取交集中各POI地理位置信息,将地理位置信息和检索地理区域进行比对,从交集中清除检索地理区域外的POI;将交集中剩余的全部POI按检索关键字进行评分,根据评分结果进行排序。
在本实施例中,通过获取各POI的地理位置信息(如经纬度信息),与检索地理区域进行几何计算,可以判断出POI是否落入检索地理区域,并进一步筛除不在其中的POI。POI排序可以依据现有技术中的rank评分进行实现,在此不做过多介绍。
同样,可以参照上述“附近的美食”作为检索关键字进行检索的例子,在此不再赘述。
综上所述,本发明的技术方案,通过对包含POI的地理空间进行网格划分,得到多个网格,在设置的不同网格索引层级下分别为该多个网格建立网格索引,从而在检索时根据检索条件选择相匹配的网格索引层级,利用该网格索引层级下的网格索引进行POI检索,得到检索结果并返回。该技术方案通过设置多网格索引层级,可以在检索时有效减少需要参与运算的数据量,极大地提高检索效率,并降低资源消耗,缩短返回检索结果的响应时间。
需要说明的是:
在此提供的算法和显示不与任何特定计算机、虚拟装置或者其它设备固有相关。各种通用装置也可以与基于在此的示教一起使用。根据上面的描述,构造这类装置所要求的结构是显而易见的。此外,本发明也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本发明的内容,并且上面对特定语言所做的描述是为了披露本发明的最佳实施方式。
在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
类似地,应当理解,为了精简本公开并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。
本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。
此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在下面的权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。
本发明的各个部件实施例可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器(DSP)来实现根据本发明实施例的基于地图的兴趣点POI检索装置中的一些或者全部部件的一些或者全部功能。本发明还可以实现为用于执行这里所描述的方法的一部分或者全部的设备或者装置程序(例如,计算机程序和计算机程序产品)。这样的实现本发明的程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网网站上下载得到,或者在载体信号上提供,或者以任何其他形式提供。
例如,图3示出了根据本发明一个实施例的智能终端的结构示意图。该智能终端包括处理器310和被安排成存储计算机可执行指令(计算机可读程序代码)的存储器320。存储器320可以是诸如闪存、EEPROM(电可擦除可编程只读存储器)、EPROM、硬盘或者ROM之类的电子存储器。存储器320具有存储用于执行上述方法中的任何方法步骤的计算机可读程序代码331的存储空间330。例如,用于存储计算机可读程序代码的存储空间330可以包括分别用于实现上面的方法中的各种步骤的各个计算机可读程序代码331。计算机可读程序代码331可以从一个或者多个计算机程序产品中读出或者写入到这一个或者多个计算机程序产品中。这些计算机程序产品包括诸如硬盘,紧致盘(CD)、存储卡或者软盘之类的程序代码载体。这样的计算机程序产品通常为例如图4所述的计算机可读存储介质。图4示出了根据本发明一个实施例的一种计算机可读存储介质的结构示意图。该计算机可读存储介质400存储有用于执行根据本发明的方法步骤的计算机可读程序代码331,可以被智能终端300的处理器310读取,当计算机可读程序代码331由智能终端300运行时,导致该智能终端300执行上面所描述的方法中的各个步骤,具体来说,该计算机可读存储介质存储的计算机可读程序代码331可以执行上述任一实施例中示出的方法。计算机可读程序代码331可以以适当形式进行压缩。
应该注意的是上述实施例对本发明进行说明而不是对本发明进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本发明可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。
Claims (16)
1.一种基于地图的兴趣点POI检索方法,包括:
对包含POI的地理空间进行网格划分,得到多个网格;
设置多个网格索引层级,在不同网格索引层级下分别为所述多个网格建立网格索引;
根据检索条件选择相匹配的网格索引层级,利用所述相匹配的网格索引层级下的网格索引进行POI检索,得到检索结果并返回;
其中,所述多个网格索引层级分别对应于不同的地理空间尺度;
所述检索条件包括检索地理区域和检索关键字;所述根据检索条件选择相匹配的网格索引层级,利用所述相匹配的网格索引层级下的网格索引进行POI检索,得到检索结果并返回包括:
根据所述检索地理区域选择相匹配的网格索引层级并确定待检索网格,根据所述相匹配的网格索引层级下的网格索引确定与待检索网格对应的第一POI集合;
根据所述检索关键字确定第二POI集合;
对所述第一POI集合和所述第二POI集合求交集,将所述交集中的各POI作为检索结果并返回;
其中,所述根据所述检索地理区域选择相匹配的网格索引层级并确定待检索网格包括:
确定所述检索地理区域的最小外包矩形;
按所述地理空间尺度由大到小遍历各网格索引层级,选择出与所述最小外包矩形匹配度最高的网格索引层级;
根据所述最小外包矩形计算相对应的一个或多个网格,生成与所述一个或多个网格对应的第一检索标记;
根据所述第一检索标记,在选择出的网格索引层级下的网格索引中进行POI检索,得到包含若干个POI的第一POI集合。
2.如权利要求1所述的方法,其中,所述对包含兴趣点POI的地理空间进行网格划分,得到多个网格包括:
对所述地理空间以预设比例尺建立网格坐标系,将所述地理空间划分为若干个大小相同的矩形网格;
按照预设的网格编号规则确定各网格的网格编号。
3.如权利要求2所述的方法,其中,所述在不同网格索引层级下分别为所述多个网格建立网格索引包括:
根据各POI的地理位置信息,计算各POI所属网格在所述网格坐标系中的行号和列号;
根据计算得到的行号和列号以及所述网格编号规则计算出相应网格的网格编号;
生成各POI和相应网格编号的对应关系。
4.如权利要求1所述的方法,其中,所述在不同网格索引层级下分别为所述多个网格建立网格索引包括:
以网格编号为主键、以相应网格所包含的所有POI的索引号为字段内容建立与各网格索引层级对应的倒排索引表。
5.如权利要求1-4中任一项所述的方法,其中,所述根据所述检索关键字确定第二POI集合包括:
对所述检索关键字进行自然语言处理,根据分析结果生成与所述检索关键字对应的第二检索标记;
根据所述第二检索标记进行POI检索,得到包含若干个POI的第二POI集合。
6.如权利要求1-4中任一项所述的方法,其中,所述将所述交集中的各POI作为检索结果并返回包括:
对所述交集中的各POI进行过滤和排序,得到最终检索结果并返回。
7.如权利要求6所述的方法,其中,所述对所述交集中的各POI进行过滤和排序包括:
获取所述交集中各POI的地理位置信息,将所述地理位置信息和所述检索地理区域进行比对,从所述交集中清除所述检索地理区域外的POI;
将所述交集中剩余的全部POI按所述检索关键字进行评分,根据所述评分结果进行排序。
8.一种基于地图的兴趣点POI检索装置,包括:
网格索引单元,适于对包含POI的地理空间进行网格划分,得到多个网格;设置多个网格索引层级,在不同网格索引层级下分别为所述多个网格建立网格索引;
POI检索单元,适于根据检索条件选择相匹配的网格索引层级,利用所述相匹配的网格索引层级下的网格索引进行POI检索,得到检索结果并返回;
其中,所述多个网格索引层级分别对应于不同的地理空间尺度;
所述检索条件包括检索地理区域和检索关键字;所述POI检索单元,适于:根据所述检索地理区域选择相匹配的网格索引层级并确定待检索网格,根据所述相匹配的网格索引层级下的网格索引确定与待检索网格对应的第一POI集合;根据所述检索关键字确定第二POI集合;对所述第一POI集合和所述第二POI集合求交集,将所述交集中的各POI作为检索结果并返回;
其中,所述POI检索单元,适于确定所述检索地理区域的最小外包矩形;按所述地理空间尺度由大到小遍历各网格索引层级,选择出与所述最小外包矩形匹配度最高的网格索引层级;根据所述最小外包矩形计算相对应的一个或多个网格,生成与所述一个或多个网格对应的第一检索标记;根据所述第一检索标记,在选择出的网格索引层级下的网格索引中进行POI检索,得到包含若干个POI的第一POI集合。
9.如权利要求8所述的装置,其中,
所述网格索引单元,适于对所述地理空间以预设比例尺建立网格坐标系,将所述地理空间划分为若干个大小相同的矩形网格;按照预设的网格编号规则确定各网格的网格编号。
10.如权利要求9所述的装置,其中,
所述网格索引单元,适于根据各POI的地理位置信息,计算各POI所属网格在所述网格坐标系中的行号和列号;根据计算得到的行号和列号以及所述网格编号规则计算出相应网格的网格编号;生成各POI和相应网格编号的对应关系。
11.如权利要求8所述的装置,其中,
所述网格索引单元,适于以网格编号为主键、以相应网格所包含的所有POI的索引号为字段内容建立与各网格索引层级对应的倒排索引表。
12.如权利要求8-11中任一项所述的装置,其中,
所述POI检索单元,适于对所述检索关键字进行自然语言处理,根据分析结果生成与所述检索关键字对应的第二检索标记;根据所述第二检索标记进行POI检索,得到包含若干个POI的第二POI集合。
13.如权利要求8-11中任一项所述的装置,其中,
所述POI检索单元,适于对所述交集中的各POI进行过滤和排序,得到最终检索结果并返回。
14.如权利要求13所述的装置,其中,所述POI检索单元,适于获取所述交集中各POI的地理位置信息,将所述地理位置信息和所述检索地理区域进行比对,从所述交集中清除所述检索地理区域外的POI;将所述交集中剩余的全部POI按所述检索关键字进行评分,根据所述评分结果进行排序。
15.一种智能终端,其中,所述智能终端包括:处理器;以及被安排成存储计算机可执行指令的存储器,所述可执行指令在被执行时使所述处理器执行如权利要求1-7中任一项所述的方法。
16.一种计算机可读存储介质,其中,所述计算机可读存储介质存储一个或多个程序,所述一个或多个程序当被处理器执行时,实现如权利要求1-7中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810712391.8A CN108920462B (zh) | 2018-06-29 | 2018-06-29 | 基于地图的兴趣点poi检索方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810712391.8A CN108920462B (zh) | 2018-06-29 | 2018-06-29 | 基于地图的兴趣点poi检索方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108920462A CN108920462A (zh) | 2018-11-30 |
CN108920462B true CN108920462B (zh) | 2022-07-01 |
Family
ID=64424535
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810712391.8A Active CN108920462B (zh) | 2018-06-29 | 2018-06-29 | 基于地图的兴趣点poi检索方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108920462B (zh) |
Families Citing this family (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110633883A (zh) * | 2018-12-29 | 2019-12-31 | 北京奇虎科技有限公司 | 一种兴趣点poi负载的计算方法和装置 |
CN111412925B (zh) * | 2019-01-08 | 2023-07-18 | 阿里巴巴集团控股有限公司 | 一种poi位置的纠错方法及装置 |
CN109994038B (zh) * | 2019-02-20 | 2020-08-28 | 北京三快在线科技有限公司 | 不规则区域内兴趣点确定方法、装置、电子设备 |
CN110796725B (zh) * | 2019-08-28 | 2022-09-23 | 腾讯科技(深圳)有限公司 | 一种数据渲染方法、装置、终端及存储介质 |
CN110598791A (zh) * | 2019-09-12 | 2019-12-20 | 深圳前海微众银行股份有限公司 | 地址相似度评价方法、装置、设备及介质 |
CN110986996B (zh) * | 2019-11-29 | 2021-09-10 | 秒针信息技术有限公司 | 数据处理方法、装置、电子设备和存储介质 |
CN110990512B (zh) * | 2019-11-29 | 2021-06-29 | 农业农村部规划设计研究院 | 矢量要素与行政区域全覆盖检查的方法和装置 |
CN111274346A (zh) * | 2020-01-21 | 2020-06-12 | 青梧桐有限责任公司 | 获取兴趣点数据的方法、***、电子设备及可读存储介质 |
CN111831765B (zh) * | 2020-03-10 | 2024-05-31 | 北京嘀嘀无限科技发展有限公司 | 数据处理方法、装置、电子设备和可读存储介质 |
CN111859187B (zh) * | 2020-06-30 | 2024-02-20 | 杭州欧若数网科技有限公司 | 基于分布式图数据库的poi查询方法、装置、设备及介质 |
CN113076321B (zh) * | 2021-04-20 | 2022-07-29 | 中移智行网络科技有限公司 | 一种数据处理方法、装置、终端及可读存储介质 |
CN113052642B (zh) * | 2021-04-22 | 2022-08-19 | 支付宝(杭州)信息技术有限公司 | 用于线下作业的方法及装置 |
CN113360586B (zh) * | 2021-06-03 | 2024-05-03 | 深圳前海微众银行股份有限公司 | 地址聚集度查询方法、装置、设备及计算机可读存储介质 |
CN113609364A (zh) * | 2021-07-08 | 2021-11-05 | 广州致讯信息科技有限责任公司 | 一种基于电网大数据poi点信息检索方法 |
CN114153851A (zh) * | 2021-12-06 | 2022-03-08 | 智慧足迹数据科技有限公司 | Geohash索引方法、装置、计算机设备及存储介质 |
CN114493383B (zh) * | 2022-04-18 | 2022-08-23 | 深圳市城市交通规划设计研究中心股份有限公司 | 一种兴趣点搜索方法、装置及计算机可读存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102004793A (zh) * | 2010-12-08 | 2011-04-06 | 厦门雅迅网络股份有限公司 | 一种基于网格空间的poi位置查询索引文件及进行信息查询的方法 |
CN102147795A (zh) * | 2010-02-05 | 2011-08-10 | 北京四维图新科技股份有限公司 | 兴趣点检索方法、兴趣点检索装置和导航*** |
CN105786822A (zh) * | 2014-12-18 | 2016-07-20 | 高德软件有限公司 | 电子地图中查询空间对象和建立空间索引的方法及装置 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102128320B1 (ko) * | 2013-07-31 | 2020-06-30 | 팅크웨어(주) | 주변 검색 결과 제공 시스템 및 방법 |
-
2018
- 2018-06-29 CN CN201810712391.8A patent/CN108920462B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102147795A (zh) * | 2010-02-05 | 2011-08-10 | 北京四维图新科技股份有限公司 | 兴趣点检索方法、兴趣点检索装置和导航*** |
CN102004793A (zh) * | 2010-12-08 | 2011-04-06 | 厦门雅迅网络股份有限公司 | 一种基于网格空间的poi位置查询索引文件及进行信息查询的方法 |
CN105786822A (zh) * | 2014-12-18 | 2016-07-20 | 高德软件有限公司 | 电子地图中查询空间对象和建立空间索引的方法及装置 |
Non-Patent Citations (2)
Title |
---|
一种改进的自适应层次网格空间索引查询算法;周勇等;《计算机工程与应用》;20060301(第07期);第159-161、165页 * |
一种语义增强的空间关键词搜索方法;韩军等;《计算机研究与发展》;20150915(第09期);第1954-1964页 * |
Also Published As
Publication number | Publication date |
---|---|
CN108920462A (zh) | 2018-11-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108920462B (zh) | 基于地图的兴趣点poi检索方法和装置 | |
US20070253642A1 (en) | Method and apparatus for indexing, storing and retrieving raster (GRID) data in a combined raster vector system | |
EP3407223B1 (en) | Location based full text search | |
CN106681996B (zh) | 确定地理范围内兴趣区域、兴趣点的方法和装置 | |
CN103927933B (zh) | 一种海量移动目标渲染的方法及装置 | |
EP2565583B1 (en) | Navigation device, method of outputting a map, and method of generating a database | |
CN109101474B (zh) | 一种地址聚合的方法、包裹聚合的方法以及设备 | |
EP2836928B1 (en) | Full text search using r-trees | |
US10838988B2 (en) | System and method for efficient geospatial indexing | |
CN106708837B (zh) | 兴趣点搜索方法、装置 | |
CN110263117B (zh) | 一种用于确定兴趣点poi数据的方法与装置 | |
JP6001310B2 (ja) | データベースを生成する方法、ナビゲーション装置、及び、高さ情報を定める方法 | |
CN111221813B (zh) | 数据库索引以及数据库查询的处理方法、装置及设备 | |
CN109033219B (zh) | 兴趣点poi分类方法和装置 | |
JP2004503838A (ja) | 空間的目標データインデックスエンジン | |
CN111522892A (zh) | 地理要素的检索方法及装置 | |
CN103823854A (zh) | 一种基于陆地边界线索引减少导航终端电子地图数据量的方法 | |
CN104021120B (zh) | 一种导航数据检索方法、装置及导航终端 | |
CN111382220A (zh) | 一种poi数据划分方法和装置 | |
CN113449052A (zh) | 空间索引的建立方法、空间区域查询方法及装置 | |
CN109241207B (zh) | 一种在地图上显示数据的方法及装置 | |
CN111353011B (zh) | 地点数据集及其建立方法和装置、数据处理方法和装置 | |
CN114513550A (zh) | 一种地理位置信息的处理方法、装置及电子设备 | |
CN112800154A (zh) | 电子地图的构建方法、装置及电子地图的实现方法、装置 | |
CN113722415A (zh) | 点云数据的处理方法、装置、电子设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |