最近邻域地理搜索.pdf

上传人:大师****2 文档编号:1010254 上传时间:2018-03-25 格式:PDF 页数:21 大小:1.19MB
返回 下载 相关 举报
摘要
申请专利号:

CN200880102748.5

申请日:

2008.09.10

公开号:

CN101821732A

公开日:

2010.09.01

当前法律状态:

授权

有效性:

有权

法律详情:

授权|||实质审查的生效IPC(主分类):G06F 17/30申请日:20080910|||公开

IPC分类号:

G06F17/30

主分类号:

G06F17/30

申请人:

神达电脑股份有限公司

发明人:

亚历山大·维彻斯基

地址:

中国台湾桃园县龟山乡文化二路200号

优先权:

2007.09.10 US 11/852,973

专利代理机构:

北京中原华和知识产权代理有限责任公司 11019

代理人:

寿宁

PDF下载: PDF下载
内容摘要

公开了从邻域单元中每次一个单元搜索地理数据库以获取地理对象的方法和装置。可通过网格单元和一初始点或中心点来限定单元邻域。第一邻域基于到初始搜索点的接近距离被限定,并与由搜索点和在多个方向上到初始搜索点的距离限定的第一地理区域一致。在使用多个单元邻域时,每个后继单元邻域均被限定,从而其可排除属于在前搜索的单元邻域的单元。后继邻域对应一地理区域,其到初始点的距离比与在前搜索邻域相关的距离大。

权利要求书

1: 一种从地理数据库获取信息的方法,其特征在于所述方法包括: 接收搜索请求,所述搜索请求表明包括一初始点的搜索标准; 根据所述初始点,从与一地理数据库相关的一网格单元确定一邻域单元; 从所述邻域单元中每次一个单元搜索所述地理数据库,直到搜索完所述邻域单元中的所有单元,以获取所述地理数据库中确定的多个兴趣点POIs中的若干兴趣点POIs,获取的每个兴趣点POI在所述邻域单元中具有相应的位置; 从该网格单元确定一新的邻域单元,所有单元中已被搜索的邻域单元包括一在前邻域,该新的邻域单元不包含所述在前邻域中的单元; 从新的邻域单元中每次一个单元搜索地理数据库,以获取所述多个兴趣点POIs中的若干个兴趣点POIs,获取的每个兴趣点POI在所述新的邻域单元中具有相应的位置; 其中所述新的邻域单元对应一新的地理区域,该新的地理区域由所述初始点和到所述初始点的距离所限定,该距离比限定所述在前搜索的邻域单元对应的地理区域的距离大;所述单元具有相对于该地理数据库的规定位置。
2: 根据权利要求1所述的方法,其特征在于其中所述搜索所述地理数据库还包括: 确定所述邻域单元中的一当前单元; 执行所述地理数据库搜索以获取所述多个兴趣点POIs中的若干个兴趣点POIs,获取的每个兴趣点POI在所述当前单元中具有相应的位置; 以及根据所述搜索标准过滤获取的所述当前单元的所述多个兴趣点POIs,以生成所述当前单元的一组兴趣点POIs结果。
3: 根据权利要求1所述的方法,其特征在于其中所述确定邻域单元还包括: 通过所述初始点和到初始点的距离来确定一地理区域; 从所述网格单元中确定所述邻域单元,所述邻域单元对应于确定的所述地理区域的至少一部分。
4: 根据权利要求1所述的方法,其特征在于其中所述搜索所述地理数据库还包括每次一个单元来搜索所述地理数据库,直到获取预定数量的兴趣点POIs。
5: 根据权利要求1所述的方法,其特征在于其中所述搜索所述地理数据库还包括从所述新的邻域单元中每次一个单元搜索所述地理数据库,直到获取预定数量的兴趣点POIs。
6: 根据权利要求1所述的方法,其特征在于其中所述搜索所述地理数据库还包括从所述新的邻域单元中每次一个单元搜索所述地理数据库,直到搜索完所述新的邻域单元中的所有单元以获取所述多个兴趣点POIs中的若干个。
7: 根据权利要求1所述的方法,其特征在于所述确定新的邻域单元还包括: 通过所述初始点和到初始点的距离确定一新的地理区域; 从所述网格单元中确定所述新的邻域单元,所述新的邻域单元对应所确定的所述地理区域的至少一部分。
8: 一种从地理数据库获取信息的系统,其特征在于其包括:一单元搜索模块、一地理数据库系统及一地理数据存储器;其中所述单元搜索模块接收搜索请求,所述搜索请求表明包括一初始点的搜索标准;所述单元搜索模块根据所述初始点从与所述地理数据存储器相关的一网格单元确定一邻域单元;所述单元搜索模块从邻域单元中每次一个单元访问所述地理数据库系统以从所述地理数据存储器中确定的多个兴趣点POIs获取若干兴趣点POIs,获取的每个兴趣点POI在所述邻域单元中具有相应的位置;所述单元搜索模块还能够从该网格单元确定一新的邻域单元,所有单元中已被搜索的邻域单元包括一在前邻域,该新的邻域单元中的单元不包含所述在前邻域中的单元;所述单元搜索模块从此新的邻域单元中每次一个单元访问所述地理数据库以从所述地理数据存储器中获取所述多个兴趣点POIs中的若干个兴趣点POIs,获取的每个兴趣点POI在所述新的邻域单元中具有相应的位置;其中,所述新的邻域单元对应一新的地理区域,该新的地理区域由所述初始点和到所述初始点的距离所限定,该距离比限定所述在前搜索的邻域单元对应地理区域的距离大;所述单元具有相对于该地理数据库的规定位置。
9: 根据权利要求8所述的系统,其特征在于其中所述单元搜索模块还包括:一单元确定模块和一过滤器模块;所述单元确定模块确定所述邻域单元中的一当前单元;所述单元搜索模块执行所述地理数据库搜索以获取所述多个兴趣点POIs中的若干个兴趣点POIs,获取的每个兴趣点POI在所述当前单元中具有相应的位置;所述过滤器模块通过所述搜索标准过滤获取的所述当前单元的所述多个兴趣点POIs,以生成所述当前单元的一组兴趣点POIs结果。
10: 根据权利要求8所述的系统,其特征在于其中所述单元搜索模块是通过所述初始点和到初始点的距离来确定一地理区域;从所述网格单元中确定所述邻域单元,所述邻域对应确定的所述地理区域的至少一部分。
11: 根据权利要求8所述的系统,其特征在于其中所述单元搜索模块是每次一个单元访问所述地理数据库系统直到从所述地理数据存储器获取了预定数量的兴趣点POIs。
12: 根据权利要求8所述的系统,其特征在于其中所述单元搜索模块是从所述新的邻域单元中每次一个单元访问所述地理数据库系统直到从所述地理数据存储器获取了预定数量的兴趣点POIs。
13: 根据权利要求8所述的系统,其特征在于其中所述单元搜索模块是从所述新的邻域单元中每次一个单元访问所述地理数据库系统,直到搜索完所述新的邻域单元中的所有单元,从而获取所述多个兴趣点POIs中的若干个兴趣点POIs。
14: 根据权利要求8所述的系统,其特征在于所述单元搜索模块是根据所述初始点和到所述初始点的距离来确定一新的地理区域;并从所述网格单元中确定所述新的邻域单元,所述新的邻域单元是对应确定的所述地理区域的至少一部分。

说明书


最近邻域地理搜索

    【技术领域】

    本发明适用于搜索地理数据库,更特别地,其通过被识别为最接近搜索中心点的若干单元的网格单元来确定地理数据库的搜索范围。

    背景技术

    地理数据库确定地理对象的地理或绘图信息,例如多个兴趣点(POIs),通过包含地理位置信息和其他属性信息的相关信息在地理数据库中确定每一个兴趣点。用于兴趣点存储的其它信息包括但并不限于名称、POI类型(例如市政厅、警察厅、加油站、公园、餐厅等)。人们越来越依赖地理数据库,并使用访问地理数据库的应用程序基于与POI相关的地理信息来定位POI。这样的应用程序包括电话和其它手持设备、桌面计算机应用、汽车和其它车辆中使用的导航系统,这仅仅列举了一小部分。

    典型地,应用程序基于其自身或使用者指定的一些标准,请求地理数据库中的信息,例如POIs和POIs关联信息。该标准用于查询数据库并获取符合标准的一组搜索结果,例如POIs,在某些情况下,在搜索结果返回给应用程序前,该标准用于过滤搜索结果。信息请求典型地确定至少一初始地理位置和例如为到初始地理位置的距离的一些信息,以限定搜索。

    典型地,应用程序提供的信息确定限定搜索区域的搜索中心位置和到该中心位置的距离。传统方法中,使用中心点和距离限定搜索区域,典型地,距离用于确定圆形区域的半径r1。如果第一搜索未获得预定结果,第二搜索通过大于r1的第二半径r2扩展该区域以及原始中心点。不过,如果并非所有第一搜索区域包含在第二搜索的搜索区域,导致第二搜索通常包括第一搜索区域。

    【发明内容】

    本发明寻求探讨本领域的缺点并给出了采用由最接近搜索中心点的一个或多个单元组成的一组单元或邻域单元的搜索。本发明的实施方式使用递增方法,这样后继搜索使用不包括在前搜索的多个单元的另一组单元。

    本文说明了一种从单元邻域中每次一个单元搜索地理数据库以获得地理对象的方法和装置。可通过一网格单元和一初始点或中心点限定单元邻域。基于到该初始搜索点的接近程度确定第一邻域,其对应通过该初始点和多个方向上到该初始搜索点的距离限定的第一地理区域。在使用多个单元邻域时,每个后继单元邻域被限定,从而其不包含属于在前搜索单元邻域的单元。后继邻域对应到该初始点的距离比在前搜索邻域相关距离大的地理区域。

    在至少一个实施方式中,从地理数据库获取信息的方法包括:接收搜索请求,该搜索请求表明包含一初始位置的搜索标准;通过该初始位置确定与地理数据库相关的网格单元中的邻域单元;以及在邻域中每次一个单元搜索地理数据库以从地理数据库中确定的多个POIs获取若干兴趣点(POIs),获取的每个POI在该邻域的单元中具有相应的位置。

    根据至少一实施方式,从网格单元中确定出一新的邻域单元,该新的邻域单元不包括在前邻域单元中的单元。在新的邻域中每次一个单元来搜索地理数据库,以获取所述多个POIs中的若干POIs,获取的每个POI在所述新的邻域中具有相应的位置。

    【附图说明】

    以下结合附图对说明书进行详细说明,使得本发明的上述特点和内容更加清晰,附图中相同的附图标记表示相同的元件,其中:

    图1是根据本发明的一个或多个实施方式说明系统元件的示例性框图。

    图2是根据本发明的一个或多个实施方式邻域单元的实例说明。

    图3是根据本发明的一个或多个实施方式采用邻域单元进行搜索的处理步骤流程图的例子。

    图4是根据本发明的一个或多个实施方式包括两个单元邻域的搜索例子。

    图5是根据本发明的一个或多个实施方式扩大搜索区域的处理步骤流程图的例子。

    图6是根据本发明的一个或多个实施方式说明确定的邻域单元另一例子的示例。

    图7是根据本发明的一个或多个实施方式通过在前的行中至少一个单元来确定后继行中作为当前环一部分的单元的例子。

    图8是根据本发明的一个或多个实施方式的螺旋搜索中采用的给定环包含的多个环和单元的例子。

    【具体实施方式】

    通常,本发明包括采用邻近单元的地理数据库搜索及其系统、方法和体系结构。

    现在,参照前述附图对本发明的一些实施方式进行说明,附图中相同的附图标记涉及相同的元件。

    图1给出了根据本发明一个或多个实施方式的系统元件的示例性框图。根据一个或多个这样的实施方式,单元搜索模块(CSM)104从应用程序102接收搜索请求110。应用程序102可以为任何意图从例如为存储地理信息的地理数据存储器108的地理数据存储器获取地理信息的应用程序。一些非限定性的示例为,应用程序102可以是导航系统,目录列举(如:商务和/或住宿的列表),绘图和/或地理搜索应用程序。还有一些非限定性的示例为,应用程序102可以应用于手持设备、桌面计算机、服务器计算机、车载计算系统等。

    地理数据存储器108包含地理信息并且确定一个或多个地理对象,例如兴趣点(POIs)。例如POI的地理对象为在地理数据存储器108中具有至少一相应地理位置和多个其它属性或没有任何其它属性的一条目,比如一离散条目。通过例如全球定位系统(GPS)的经度/纬度坐标系统中的纬度和经度坐标数据可确定POI的地理位置。其他属性信息可非限定性地包括描述信息,例如名字、电话号码、类型或类别(例如,商业区、居民区、公园、街道、城市、州等)、子类型/子类别(例如餐厅、杂货店、加油站等)、地址、运行时间等。

    根据本发明的一个或多个实施方式,在接收到搜索请求110之后,CSM104每次一个单元访问地理数据库系统106以从地理数据存储器108中获取地理信息。地理数据库系统106显然可以为任何数据库管理系统(DBMS)或用来访问地理数据存储器108中数据的其它系统,该访问例如为存储和读取。数据存储器108可以是任何类型的存储器,包括存储在某些类型存储器中的数据库文件、平面文件等。

    单元可以为任何几何形状,例如正方形、矩形、三角形等,并由若干组边界或边界线的集合来限定,其典型地为闭合形状。单元的几何形状确定单元的边界线和边界。单元可具有相对于该地理数据库106和/或地理数据存储器108的规定位置。例如,可根据使用了地理数据存储器108中存储的地理对象的坐标系统的纬度和经度坐标信息确定单元的位置。还有一非限定性的示例为,单元的纬度和经度坐标信息可对应单元边界上某点(例如,单元几何形状的顶点,比如矩形的角或沿单元边界上的其它点)或单元内某处(例如一中心点或其它点)。对于给定的单元可确定其它信息,比如单元到一搜索中心点的距离、单元尺寸等。可使用与单元相关的尺寸信息确定单元的边界和/或区域。例如当几何形状为正方形时,单元尺寸包括确定单元边界和/或区域的长度和宽度。根据一个或多个实施方式,可使用与一单元关联的坐标和尺寸信息在地理区域相关联的地理坐标系统中定位该单元,以及限定与该单元一致的地理区域的一部分。

    根据一个或多个实施方式,CSM 104向地理数据库系统106发出搜索地理数据存储器108以获取一地理区域对应信息的单元搜索请求112。该地理区域可包括一个或多个单元区域。作为响应,地理数据库系统106发出查询地理数据存储器108的请求。根据一个或多个实施方式,每次一个单元搜索地理数据存储器108。从地理数据存储器108中获取的用于一给定单元的一组结果被返回到地理数据库系统106。一个非限定性的例子为,单元查询结果116包括若干POIs,每一个在单元中具有相应的位置。此时,例如,作为单元查询结果116一部分的POIs为比如基于POI的纬度和经度坐标信息在当前搜索单元中确定具有相应位置的那些POIs。例如,如果POI的位置位于当前单元区域中,其可位于当前单元的边界线上,并且如果POI位于当前单元的边界上,其位置可位于该单元的边界线上。地理数据库系统106将单元搜索结果118返回给CSM 104。

    根据一个或多个实施方式,如图1所示,CSM 104可包括单元确定模块(CIM)124和过滤器模块126。CSM 124可确定一单元,将其作为由CSM104向地理数据库系统106发送查询的当前单元。根据一个或多个实施方式,初始查询包括采用初始单元为当前单元。通过应用程序102在搜索请求110中指定的初始点或位置可确定初始单元。一个非限定性的例子为,初始点可以为应用程序102的使用者的当前位置(例如,由GPS坐标确定)或者使用者或应用程序102确定的一些其它位置。对于具有通常技能的人员来说,明显地,初始点可基于提供到CSM 104的信息特殊指定,或者由CSM 104得到。

    根据一个或多个实施方式,在接收到单元搜索请求112后,地理数据库106生成输出到CSM 104的单元搜索结果118。过滤器126用来过滤单元搜索结果118。过滤器126可为任何类型的滤波器,例如,可包含基于搜索请求110中指定的标准的滤波器。随后,过滤的或者未过滤的搜索结果作为搜索结果120被转发至应用程序102。

    在图1所示的例子中,CIM 124为CSM 104的一部分或者一组件。或者,CIM124的一部分或者全部可为地理数据库106的一部分。例如,对于给定的搜索,地理数据库106可确定当前单元,例如一初始单元或后继单元。进一步地,当过滤器模块126所示为CSM 126的一部分,一些或者全部过滤器模块126可为CSM 126的一部分。还有另一种替换方式为,一些或所有CSM 104可为地理数据库106一部分的数据库管理系统的一部分,和/或CSM 104可为应用程序102的一部分。还有,应用程序102、CSM104和地理数据库196可为一集成元件。

    根据本发明的至少一个实施方式,针对这里归为邻域单元的一组单元,CSM104每次一个单元来查询地理数据库106,将单元检索编译的检索结果120返回给应用程序102。这里说明的是,邻域单元可为单元的集合,例如相邻单元的集合。图2为根据本发明的一个或多个实施方式使用的邻域单元的说明性示例。根据这些实施方式,提供了可为静态或动态单元网格的网格单元200。相对于指定存储于地理数据存储器108的例如POI s的地理对象的地理和坐标系统,可用单独的单元来限定单元网格200。单元网格200中的每个单元具有至少一组坐标和至少一个尺寸。例如,一组坐标可相对于单元网格200,并且另一组可相对于用来在地理数据存储器108中的位置的地理和坐标系统,例如GPS坐标系统。当然,本发明的实施方式可应用任意组坐标和任意个坐标系统,这是显而易见的。

    图2对单元网格坐标系统举例说明。这里使用的例子假定为二维坐标系统和单元网格。很明显,任何数目的维数均可用于本发明的实施方式。在图2所示的例子中,左上方单元220可考虑为起始单元,单元220的左上方点210可考虑为单元220以及单元网格200的起始点210。在图2的例子中,网格单元200的坐标值可表达为x‑和y‑坐标值,这样起始点210的x‑和y‑坐标值为(0,0),该坐标值也是单元网格200的初始点的坐标值。另外,起始点210可包括地理信息系统的相关坐标值,例如纬度和经度坐标值。由于起始点210也是单元网格200的起始点,这些相同的地理坐标系统的坐标也是单元网格200的起始点的地理坐标。

    可能得到单元网格200中的任何单元的坐标。例如,网格200中紧邻单元220右方的单元具有的x‑和y‑坐标为(1,0)。类似地,假定X方向上的X个单元和Y方向上的Y个单元,位于单元网格220的其它角的单元222、224和216的相应初始点212、214和216分别具有的x‑和y‑坐标值为(0,Y)、(X,Y)和(X,0)。另外,初始点212、214和216也可具有预先确定或动态确定的坐标值,例如,基于单元网格200的位置是静态的还是动态的来动态确定。例如,可通过另一单元的地理坐标值和每个单元的已知尺寸,例如两个单元的起始点之间的已知距离,来动态确定起始点的地理坐标值。

    在图2所示的例子中,网格单元200中的每一单元为高度和宽度相同的正方形。也可使用其它几何形状,这是显而易见的。另外,单元网格200中的所有网格的单元尺寸明显不需要相同。

    单元234的点236表示搜索的一初始点或者中心点。点236被示为单元网格200的中心和单元234的中心,但并非必须如此。点236对应可基于例如为搜索请求110的搜索请求的信息确定的搜索中心点。根据一个或多个实施方式,网格单元200可为固定的,或者可沿点236动态定位。使用中心点作为搜索的初始点可确定单元234,例如,单元234可确定为包含点236的单元。

    根据一个或多个实施方式,单元网格200中的一组单元构成邻域单元,可基于每个单元相对于初始单元234的位置来限定这些单元。在图2的例子中,框202中的单元包括具有作为初始单元的单元234的单元邻域202,单元234包含初始点236。如同单元网格200的单元220以及其他网格,单元234包括至少一个点,例如左上方的点238,岂可包含一个或多组坐标。

    根据本发明的一个或多个实施方式,从单元204的初始单元开始,在图2的例子中为单元234,每次一个单元执行搜索,接着在邻域202中的单元204重复,针对每个单元执行地理数据存储器108的查询114。与邻域202中的单元相关的数目不需要对应搜索单元的顺序。搜索单元的顺序可为随机的。例如,在搜索单元1后,搜索单元7,然后是单元3等。搜索单元的顺序可基于对应于单元邻域202中单元的初始点236的位置。这种情况下,可首先搜索作为初始单元的单元1,接下来是单元4,之后为单元3。

    另一非限定性的例子为,可基于一个单元比另一单元产生更多的POIs的预期来确定单元的搜索顺序。例如,假定单元5预期比单元1产生出更多的POIs。即使初始位置位于单元1,可以先搜索单元5。当初始点236比所示情形更靠近单元1和5之间的共有边界时,这可能更加有效。

    根据一个或多个实施方式,可针对单元邻域中搜索的单元和搜索的单元邻域递增且重复地执行搜索。根据一个或多个这样的实施方式,在搜索结果120返回到应用程序102前,搜索单元邻域202中的所有单元204。在这些实施方式中,可对于单元204执行查询114,并且查询结果可由过滤模块126过滤。对于单元邻域202中的下一单元204重复该步骤。搜索单元邻域202中的单元204和过滤搜索的每个单元的结果之后,对单元邻域202中搜索的所有单元编译过滤的搜索结果。明显地,例如并行处理技术的技术可用于优化搜索。

    根据一个或多个实施方式,为单元邻域202编译的搜索结果包括搜索结果102的第一增量,其可在例如搜索单元邻域202中的所有单元204完成后的时间点返回到应用程序102。应用程序102可选择继续搜索,例如,实际上扩展搜索区域。可替换地,CSM 104在将为单元邻域202编译的搜索结果120返回到应用程序120之前可选择扩展搜索区域。在任一情况下,本发明的实施方式不需搜索在前搜索区域即能扩展要搜索的地理区域,例如,可利用搜索在前搜索单元之外的单元来执行扩展搜索。

    图4给出了根据本发明的一个或多个实施方式包括两个单元邻域的搜索的例子。图2中的单元邻域202如图4所示。如前文所述,搜索单元邻域202中的单元204,并编译关于单元邻域202的搜索结果。另一单元邻域402包括单元404,例如,单元编号为10到25。可搜索单元邻域402中的单元404以扩展搜索区域。根据搜索邻域404的单元404编译的搜索结果可补充根据搜索单元邻域202中单元204编译得到的搜索结果。

    CSM 104的CIM 124可基于初始点236确定邻域202的单元202并确定搜索邻域202的单元202的顺序。当要搜索的单元邻域402与单元邻域202相随时,CSM 124可确定邻域402的单元404以及搜索单元404的顺序。在确定单元邻域402的单元404过程中,CIM 124可确定单元邻域202的单元204,这样被用于单元邻域402的搜索不包括单元邻域202的单元204。如此,可扩展搜索区域,例如,获得附加搜索结果,不需要重复搜索属于之前搜索区域的单元。

    图6给出了根据本发明的一个或多个实施方式确定的邻域单元的另一个例子。单元邻域中的单元编号为1到4。在图6的例子中,初始点靠近单元1和4的交叉部。根据一个或多个实施方式,CIM 124可使用初始点的位置来确定邻域单元。在所示例子中,邻域被确定为单元1到4.当然,可使用初始确定的单元之外的单元扩展搜索。

    图3给出了根据本发明的一个或多个实施方式利用邻域单元进行搜索的处理步骤流程图的例子。例如,可由CSM 104执行这些步骤。在步骤302,CSM104接收搜索请求,例如搜索请求110。在步骤304,CSM 104的CIM 124可根据接收的搜索请求中的信息确定邻域单元。在步骤306,从确定的邻域单元中获得初始单元。在步骤308,从地理数据存储器108取得例如为POIs的地理对象。获取的POIs区域在被搜索的当前单元中具有确定的相应位置。

    在步骤310,过滤搜索结果,例如采用CSM 104的过滤模块126。过滤步骤可采用搜索请求110表明的搜索标准。可执行的过滤器的一个例子可基于采用搜索请求110中包含的信息确定的距离或者搜索区域。还有一非限定性的例子为,可基于获取的搜索单元的POIs的名称、分类和/或子分类过滤。

    在步骤312,判断是否搜索了单元邻域中的全部单元。如果不是,程序执行步骤314以确定邻域中下一单元。如果判断邻域中所有单元均被搜索过,程序执行步骤316,判断是否获得了预定数量的结果。如果是,程序执行步骤320以返回结果。如果在步骤316指示附加搜索,程序执行步骤318扩大搜索范围并执行搜索,例如,执行步骤306、308、310和314。这里根据一个或多个实施方式描述的情形为,扩大搜索区域不包括在前搜索的区域。一旦搜索了新的扩大的搜索区域,在步骤316判断是否获取了预定数量的搜索结果。如果不是,可继续执行步骤318以进一步扩大搜索范围。

    当在步骤316中判断获得了预定数量的结果,执行步骤320将结果返回给应用程序102。如果搜索了多个邻域,针对每个邻域编译的搜索结果可被聚合并返回给应用程序102。

    在图3所示的例子中,由CSM 104判断是否扩大搜索。可替换地,可由应用程序102执行该判断。这种情况下,搜索邻域单元得到的结果可返回到应用程序102,这样应用程序可基于返回的结果判断是否扩大搜索区域。

    在图3所示的例子中,在搜索完邻域中的所有单元之后,在步骤316执行判断。或者,步骤316可在搜索完邻域的部分单元之后执行判断。由于搜索区域被划分为单元邻域的多个单元,可通过搜索邻域中在前搜索单元之外的单元来扩大搜索。

    图5给出了根据本发明的一个或多个实施方式扩大搜索区域的处理步骤的流程图的例子。在步骤512,判断是否扩大搜素区域。如前所述,例如,可基于应用程序102或者CSM 104发出的指令扩大该搜索区域。如果不需要扩大该搜索区域,处理结束。

    如果判断结果为扩大该搜索区域,程序执行步骤504确定包括结合本发明的一个或多个实施方式说明的在前搜索过的单元之外的邻域单元。在步骤506,获得扩大搜索区域的初始单元,并获取位于确定单元中的POIs。在步骤510,过滤获取的结果。在步骤512,判断是否搜索了包含扩展搜索区域的邻域单元中的所有单元。如果不是,执行步骤512以确定邻域中的下一单元并执行步骤506。如果在步骤516确定已搜索了邻域中的所有单元,执行步骤516返回搜索结果。

    根据本发明的多个实施方式,搜索包括被确定为最接近初始点的多个单元。每一单元包含待搜索的地理区域的一部分,给定单元的该部分比搜索区域要小。应用程序102可确定搜索区域的最大尺寸以及搜索的初始点。可使用初始点的例如纬度和经度坐标的地理位置来确定初始单元。可基于对应于搜索的初始点或中心点的地理坐标以及单元网格中单元的地理坐标和边界来确定该初始单元。类似地,可基于例如POI和多个单元以及单元边界的地理坐标动态或静态地确定相对于单元网格中多个单元的POI位置。

    根据一个或者多个实施方式,最近邻域搜索使用包含用以确定单元邻域以及包含在单元邻域中的单元的圆环的螺旋方式。搜索从初始单元开始并向搜索区域外围进发。如上所述,搜索区域可递增地、重复地增长,不包括在前搜索的单元,并可在任意点停止。根据一个或多个实施方式,可通过数值R增加初始半径或当前半径来确定单元邻域。邻域中的多个单元具有几何形状,并且该单元邻域的几何形状基于邻域中多个单元的形状,例如正方形或三角形。根据采用螺旋方法的一个或多个实施方式,可从搜索中排除位于单元邻域角位置处的单元,例如三角形单元邻域的角。在例如对象更密集地靠近初始点时,该方法是有用的。

    根据一个或多个实施方式,在螺旋搜索的情形下,该搜索区域被划分为多个环,其可由例如初始索引值为1索引,每个环由与其相关的半径来表征。半径的取值范围从0开始,其环绕包含例如初始搜索点的单元。与当前环相关的半径值可增加R的数值以获得下一环的半径。可通过单元尺寸信息,例如以米为单位的一些测量单位的最小单元宽度和高度来确定R的数值。环可确定单元邻域并用于确定属于单元邻域的单元。例如,最外环可限定搜索区域。

    根据一个或多个这样的实施方式,初始环半径为0,并且包含一个单元,例如包含初始点的单元。后继的每个环具有通过对当前半径增加值R确定的半径。每个半径包含其中心到搜索区域中心的距离小于或等于环的半径的多个单元。当前环中符合与在前环或后继环连接条件的单元被排除。根据一个或多个实施方式,通过实际距离的平方与一归一化系数的乘积计算用于给定单元的距离。

    当半径值超过搜索区域半径时,该半径被置为该搜索区域半径。根据一个或多个实施方式,该环为倒数第二个环。并非排除全部位于环内的单元。用于当前搜索处理的最后一个环的半径与倒数第二个环相同。例如,最后的搜索可包括与搜索半径指定的搜索区域交叉的但并非全部容纳于其中的单元。例如,与最后一个环相关执行的搜索中包含单元的中心位于与整个搜索区域相关的半径之外。

    根据一个或多个实施方式,搜索环被划为四个象限,例如右、左、上、下象限。这些象限可确定搜索单元邻域/环中单元的顺序。一个非限定性的例子为,中心单元可用作右象限和左象限之间的水平转变点。例如,右象限包含位于被确定为当前单元邻域的中心单元的水平位置右方的单元,例如,确定位于右象限的单元的相应水平位置大于或者等于中心单元相关的水平位置。可使用例如与单元相关的x‑坐标值的坐标值确定单元的水平位置。x‑坐标值大于或者等于中心单元的x‑坐标值的那些单元位于右象限,并且余下的水平位置小于中心单元的水平位置的单元不在右象限,落入左象限。可基于单元的上边缘中心是否比下边缘中心到搜索区域中心更远来确定单元位于上象限。类似地,比如,可基于单元的下边缘中心是否比上边缘中心到搜索区域中心更远来确定单元位于下象限。

    根据至少一个实施方式,在螺旋搜索中,每次一个象限的一行来搜索单元邻域/环中的单元,例如从象限的外行开始。从例如最靠近初始点的最内单元开始搜索位于象限当前行中的单元一直到该行的最外单元。

    对于第一个单元,测量从例如初始搜索点的搜索中心到单元边缘的距离以确定上象限到下象限的转变。在该位置,可确定用来确定上象限和下象限之间转变点的垂直位置,例如一y‑坐标值。下象限从其中的底部行开始,并在垂直转变到达的位置结束。

    根据一个或多个实施方式,在螺旋搜索中,对于给定的行,可通过到初始搜索点和当前以及在前环的半径的单元距离来确定当前单元邻域包含的单元。对于最外环中的单元,距离可为到该单元最近的角的距离,而不是到单元中心的距离。单元距离可用于确定哪些单元属于当前环,是否处理了当前行中的所有单元,和/或是否终止当前行并开始在新行中搜索。如果单元距离大于当前环的半径,从一行跳到新的一行。或者,如果单元距离小于或者等于在前环的半径,该单元属于在前环,无需被搜索。如果两个条件均不满足,确定该单元属于当前环并可被搜索。

    确定当前环一行中的单元可以使得针对当前环中的后续行中的单元计算的单元距离最小化。例如,处理当前环中某一行时,跳过与在前环关联的搜索过的行中的单元,直到确定出未搜索的与在前环关联的行中的第一个单元。可保持第一个单元的水平位置,这样在开始新的行时,可使用这一水平位置确定新的一行中对应于保持的水平位置的单元,例如,可从该水平位置而不是初始搜索点开始下一行。这样递进可避免重复的距离计算。图7给出了根据本发明的一个或者多个实施方式通过在前行的至少一个单元来确定作为当前环一部分的后继行的单元。

    图7的例子中示出了三个单元行。可基于计算的距离或与当前环的在前行相关的判断来判定单元属于当前环、属于在前环,或者不属于当前环或者在前环。通过计算距离,标记为“X”的单元被确定为当前环的一部分。通过计算距离,标记为“<”的单元被确定为在前环的一部分。通过计算距离,标记为“>”的单元为不是在前环或者当前环的一部分。可使用这里说明的技术或者一些已知或者之后阐述的其它技术来计算距离。符号“‑‑”指定的单元,不对其计算距离。

    在图7所示的第一行中,前四个单元(由左向右读取)标记为“X”,其指示对这些单元计算了距离,并且对于每个单元计算的距离表示该单元属于当前环。与第五个单元相关的计算距离表示该单元不属于在前环或者当前环。例如,第一行的第五个单元属于后继环。基于与第一行中第五个单元相关的输出,不需要计算例如第一行中第六、第七和第八单元这三个单元到第五单元右侧的距离。

    针对第二行的第一、第二和第三单元的每一个计算距离,并且计算的距离用以判断这些单元属于在前环。针对第二行中第四、第五、第六和第七单元计算的距离用来判断第四、第五和第六单元属于当前环以及第二行中的第七单元不属于当前或在前环。基于对第七单元的判断,不需要计算有关第二行中第八单元的距离。

    关于第二行的判断用于处理第三行,对于一些单元来说可避免这样的距离计算,例如第三行的第一、第二和第三单元。如前所述,确定属于当前环的在前行中的第一单元的水平位置可确定对应于被确定的水平位置的后续处理行的单元。用于新行的距离计算可从确定的单元开始。在图7的例子中,第二行中的第四个单元的位置用来确定对于第三行中的第一、第二和第三单元可跳过距离计算,以及可从第三行的第四单元开始距离计算。

    图8给出了根据本发明的一个或多个实施方式的螺旋搜索采用的给定环包含的环和单元的例子。术语“n:n”指定每个单元,其中第一个“n”确定环,并且第二个“n”表示给定环中的搜索序列。例如,“3:4”确定该单元属于第三个环并且为搜索的第三个环的第四个单元。横越网格中的单元从初始环的初始单元开始,指定为“1:1”,可看出该运动为螺旋形式。另外,可能使得环和环中的单元可见。可以看出,与后继环关联的半径递增地大于在前环的半径。当处理当前环时,可避免与在前环相关的在前处理的单元之处理过程。

    显而易见的,任何搜索序列均可用于本发明的实施方式。在图8中的例子中,对于给定的环,搜索序列从上象限和右象限开始,比如搜索上象限的单元并且搜索向位于右象限的单元进发。例如,对于处理的第三环,上象限和右象限的搜索包括指定为“3:1”、“3:2”和“3:3”的单元。该例中上象限和下象限之间的转变在单元“3:3”和“3:5”之间。因此,在处理完“3:3”单元后,处理继续到下象限和右象限,从“3:4”单元开始,进而执行“3:5”单元。刚刚说明的反映序列的序列可用于左象限以及正被搜索的上象限和左象限的单元,例如“3:6”和“3:7”单元,之后为正被搜索的下象限和左象限,例如被指定为“3:8”、“3:9”和“3:10”的单元。

    根据一个或多个实施方式,可由地理数据库系统106和CSM 104的一个或者另一个或者二者一起来执行过滤。接下来给出了根据本发明一个或者多个实施方式用于执行搜索的对象类的例子和示例应用编程接口(API)的方法。

    可使用定义了在单元邻域和/或搜索区域中多个单元中进行迭代的函数的ImapObjectsIterator类。对于给定单元,可使用SetQuery函数设置过滤器和搜索标准。过滤器确定给定单元中的对象。本发明中实施方式使用的另一函数或方法的例子为确定单元标识符的函数,该单元标识符例如为单元的唯一标识符、给定的一组世界坐标,例如GPS坐标、映射识别符和映射层标识符。对于给定的单元,可使用一函数通过获取的单元标识符得到边界框。可使用另一函数获得用于与给定的单元相邻的若干单元的单元标识符。函数的变化可返回给定方向上与给定单元相邻的单个单元,例如北、南、东、西、东北、西北、东南等。

    SetSpiralQuery函数可用于初始化查询,例如螺旋查询。该方法选取以例如GPS坐标的世界坐标表示的初始搜索点以及以例如米为测量单元表示的搜索距离作为输入。可传送布尔值到该函数,其可用作过滤开关,例如通过数据库系统106打开或关闭过滤。例如被搜索的当前单元的一部分位于搜索区域之外时,可使用这样的过滤。可检查例如POI的每个对象的坐标来确定哪些对象位于搜索区域内部或者外部,这样只有位于搜索区域内部的那些对象被提供给CSM 104。这样,例如,可跳过位于搜索区域之外的对象。例如可在搜索范围被确定时应用这类过滤。不过,如果未限定搜索距离,例如,在获取了足够数量的对象后可中止搜索。这样,地理数据库系统106不需要过滤已获取的对象,并且布尔标记可设置为“关”。对于非限制的搜索区域,距离输入可被设置为大的数值。

    GetCurrentSpiralIndex函数返回当前环的索引。该函数可用来搜索一个环到下一环的转变。GetCurrentSpiralIndex函数返回例如以米为单位的当前环半径。如上所述,最后两个环的半径可相同。GetSpiralDeltaR返回用以增加环半径的数值R。例如,返回的数值可通过R增加用于下一环的当前半径。

    根据一个或多个实施方式,当确定该环包含多个“空”单元,例如不包括任意对象的单元时,跳过一个或多个环是可能的。这样可通过大于R的数值来增加半径,并且可通过比1大的数值增加环的索引。相反,半径增长的数值可小于R,例如当搜索接近搜索区域边界时。

    CnearestSearch类可执行层组的搜索,例如同时执行多个层。例如,可搜索多个类别中的POIs。该类中的ExecuteSearch函数接收组索引和可使用SearchParams数据结构定义的搜索参数。例如,搜索结果可存储在容器中并可由GetNumFound和GetFoundObject函数获取。该类可支持本文说明的增量搜索,包括圆形和螺旋搜索。作为SearchParams数据结构一部分的区域类型参数area_tp可识别搜索类型,例如螺旋搜索中的“SPIRAL_SRCH”。布尔标记unlimit_area可识别搜索区域为“unlimited”。如前所述,非限定的搜索区域可用于搜索直到找到若干对象。例如,如果设置了该标记,search_distance值被忽略并且对象过滤可被关闭。

    当在多个层上进行搜索时,用于所有层的环并行增长。一般地,该组中多个层的单元尺寸彼此不同。这样,搜索工具试图尽可能紧密地保持所有层的当前环半径。

    例如,可由应用程序102的使用者或者应用程序102管理该搜索,并通过搜索提示对象进行控制。抽象类CnearestSearchNotifier可用于该目的。可从该抽象类派生出子类以创建自定义的通知符。当设置了SearchParams的通知器成员时,可触发对应于识别的事件响应的通知器函数。例如,在处理获得的对象之后可调用CnearestSearchNotifier::Object函数。另一非限定性的例子为,在每个环被处理后,可调用CnearestSearchNotifier::Ring函数。例如,当搜索包括多个层时,在一组层上而不是在每一层时可调用Ring函数。通知器函数,例如Object或Ring通知器函数,可以向布尔值形式的通知返回响应,其用于判断是否继续或中止检索。例如,如果返回值为TRUE,可继续当前搜索,反之,如果值为FALSE,结束该搜索。

    可使用CnearestSearchTool类函数查询搜索的当前状态。GetNumFound()函数返回当前存储在搜索结果容器的多个对象。GetNumIterated()返回被迭代的多个对象。由于并非所有的对象被接受为搜索结果的部分,例如过滤的结果,比如迭代对象的数目可大于或等于搜索结果容器中存储的对象的数目。

    GetNumReliable()函数返回容纳于搜索结果中并被认为最接近的对象的估计数量。当被请求数目的对象被放入结果容器时,并非所有均为实际最接近的对象。随着搜索进行,一些对象可被更好的对象替换。当环并非最优时,例如该环由属于该环的矩形单元限定,并且下一环的单元可能包括比当前环中找到的一些对象更接近搜索中心的对象,会出现上述情况。这也是搜索可能在找到对象的数目超过一阈值数目时仍可能继续的一个原因。继续搜索并判断在前迭代中是否遗漏了对象。

    判断是否中止搜索的一个方法为,根据当前环搜索中找到的对象缺失一起的若干对象得到中止搜索的判定。更特别地,一旦找到足够数目的对象并且当前环的搜索不能得出其它附加的和/或更好的对象时,可中止该搜索。然而,该方法要求搜索至少一个环,不需要从该环中生成有意义的搜索结果。这种方法存在显而易见的缺陷。可替换地,可使用GetNumReliable函数确定搜索过程中可中止该搜索和避免处理不必需的最后一个环的点。该函数返回近似最接近搜索中心点的对象的估计数目。可比较该数目与多个请求的对象以判断是否中止搜索。根据一个或多个实施方式,该函数使用经验方法进行估计。经验公式应用程序可在处理了一定数目的环之后开始,例如第三个环之后开始。例如,对每个处理的环可更新可信对象的数目。该函数提供的信息可协助应用程序102的使用者和/或应用程序自身来判断是否中止搜索。

    本发明的实施方式可在通用微处理器或其它处理设备中实施。如果以软件形式实施,该技术可具体化为例如随机读取存储器(RAM)、只读存储器(ROM)、非易失性随机读取存储器(NVRAM)、电子擦除可编程只读存储器(EEPROM)、FLASH存储器等计算机可读介质上的指令或程序代码。这些指令使得一个或多个处理器执行或者被配置以执行本发明中所说明的功能。

    还有非限定性的一些例子为,所说明的一个或多个实施方式可部分或整体地作为构成特殊应用集成电路的电路配置的硬件电路实现,或者作为加载到非易失性存储器的韧件程序,或者作为从数据存储介质加载或者加载到数据存储介质的软件程序,其作为机器可读编码,该编码为例如微处理器或其它数字信号处理单元的一组逻辑元件可执行的指令。数据存储介质可为比如半导体存储器(其可非限定性的包含静态或动态RAM、ROM和/或flash RAM)或铁电物质、双向开关半导体元件、聚合体或相变存储器;或者例如磁盘或光盘的盘类介质。

    本领域技术人员将认识到:本发明的方法和系统可通过多种方式实现,并且这些方式不会被前述的示例实施方式和例子所限定。也就是说,以硬件和软件或韧件组合的各种方式,由一个或多个组件执行的功能元件,以及单个函数,均可分布在客户端或服务器位置或两者处的软件应用程序中。在这点上,这里说明的不同具体实施方式的任何特征可结合在单个或多个实施方式中,并且具有比这里说明的所有特征或多或少有所替换的实施方式是可能的。整体或者部分功能可通过现在已知的或者以后会知晓的方式分布在多个组件中。因此,在获得这里说明的函数、特征、接口或者优先选择过程中,得到混合的软件/硬件、韧件组合是可能的。而且,本发明的范围覆盖执行所述特征和功能以及接口的已知的通用方式,并且现在或之后的本领域技术人员可以理解,这里说明的硬件或软件或韧件组件均可进行变换和修改。本发明旨在覆盖权利要求精神和范围内包含的各种修改和类似的配置。权利要求的范围应对应最广义的解释,以便包含所有此类修改和类似的结构。本发明包含以下权利要求的任一实施方式和所有实施方式。

    

最近邻域地理搜索.pdf_第1页
第1页 / 共21页
最近邻域地理搜索.pdf_第2页
第2页 / 共21页
最近邻域地理搜索.pdf_第3页
第3页 / 共21页
点击查看更多>>
资源描述

《最近邻域地理搜索.pdf》由会员分享,可在线阅读,更多相关《最近邻域地理搜索.pdf(21页珍藏版)》请在专利查询网上搜索。

公开了从邻域单元中每次一个单元搜索地理数据库以获取地理对象的方法和装置。可通过网格单元和一初始点或中心点来限定单元邻域。第一邻域基于到初始搜索点的接近距离被限定,并与由搜索点和在多个方向上到初始搜索点的距离限定的第一地理区域一致。在使用多个单元邻域时,每个后继单元邻域均被限定,从而其可排除属于在前搜索的单元邻域的单元。后继邻域对应一地理区域,其到初始点的距离比与在前搜索邻域相关的距离大。 。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 物理 > 计算;推算;计数


copyright@ 2017-2020 zhuanlichaxun.net网站版权所有
经营许可证编号:粤ICP备2021068784号-1