基于Google地图雷达搜索的地标挖掘方法转让专利

申请号 : CN201810086732.5

文献号 : CN108388587B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 尹美娟刘晓楠贠晨书罗向阳陈岩杨文杨世厅段顺然

申请人 : 中国人民解放军战略支援部队信息工程大学

摘要 :

本发明涉及一种基于Google地图雷达搜索的地标挖掘方法,包含:获取待挖掘地标行政区在Google地图上的雷达搜索抽样点;对所有抽样点进行雷达搜索请求,获取该待挖掘地标行政区内的机构ID列表;以机构ID为参数进行详情搜索请求,获取机构关键信息,并作为候选地标信息存入地标数据库。本发明通过调用一次请求可返回机构条目更多的雷达搜索方式并自动执行雷达搜索递归请求,挖掘出Google地图中所有可用的候选地标信息;通过基于雷达搜索抽样点行政区划信息获取指定区域的行政区陆地边界,判断出抽样点领土是否隶属于指定区域,在确保雷达搜索抽样点完整覆盖指定地域领土的同时,减少了对大量无需进行雷达搜索的抽样点的Google服务请求,从而有效提高了本发明的实用性。

权利要求 :

1.一种基于Google地图雷达搜索的地标挖掘方法,其特征在于,包含:A)获取待挖掘地标行政区在Google地图上的雷达搜索抽样点;

B)对所有抽样点进行雷达搜索请求,获取该待挖掘地标行政区内的机构ID列表;

C)以机构ID为参数进行详情搜索请求,获取机构关键信息,并作为候选地标信息存入地标数据库;

A)中获取抽样点,具体包含如下内容:

A1)、指定待挖掘地标行政区的名称、雷达搜索半径、雷达搜索机构类型;

A2)、以行政区的名称为参数进行Google Maps Geocode正向地理解析请求,得到该行政区对应的推荐点经纬度;以该推荐点经纬度为参数进行Google Maps Geocode反向地理解析请求,得到该行政区东北点、西南点的经纬度;

A3)、根据东北点、西南点的经纬度,获取该行政区领土的最东点、最西点的经度,以及其最南点、最北点的纬度,形成地理空间中包含该行政区领土的矩形区域,作为抽样点遍历的最大范围;

A4)、构造该行政区内所有抽样点的经纬度;

A5)、从推荐点到矩形区域的四条边逐层遍历抽样点,对每个抽样点以其经纬度为参数进行Google Maps Geocode反向地理解析请求,根据响应中的行政区划信息判断该抽样点是否隶属于该行政区,并根据判断结果自动调整遍历策略;

A5)根据判断结果自动调整遍历策略,包含如下内容:

A51)、记录每个抽样点Google Maps Geocode反向地理解析请求后的判断结果,每个抽样点是否做Google Maps Geocode反向地理解析请求取决于其相邻点中是否存在领土内的点;

A52)、若该点的相邻点中不存在领土内的点,则先对该点不做判断,继续遍历下一个抽样点;若该点的相邻点中存在领土内的点,则判断该点是否也在领土内,并记录结果,若该点在领土内,其相邻点中存在未做过判断的点,则对未做判断的抽样点进行是否在领土内的判断;

A53)、由该行政区内推荐点发散至整个行政区陆地边界,记录下领土内抽样点经纬度。

2.根据权利要求1所述的基于Google地图雷达搜索的地标挖掘方法,其特征在于,A4)中,构造该行政区内所有抽样点的经纬度,包含如下内容:A41)、由雷达搜索半径Rradar换算出抽样点距Dpoint;

A42)、以行政区领土内推荐点作为起点,通过实地长度与经纬度的转换,循环得到正东、正西方向上的所有抽样点的经度,以及正南、正北方向上的所有抽样点的纬度;

A43)、将正东、正西、正南及正北四个正方向抽样点的经度和纬度组合,循环得到东北、东南、西南、西北方向上的所有抽样点的经纬度。

3.根据权利要求2所述的基于Google地图雷达搜索的地标挖掘方法,其特征在于,A41)中换算公式为:

4.根据权利要求1所述的基于Google地图雷达搜索的地标挖掘方法,其特征在于,B)中,对所有抽样点进行雷达搜索请求,获取该待挖掘地标行政区内的机构ID列表,包含如下内容:B1)、对领土内所有抽样点进行Google Maps Places API雷达搜索请求,每次请求的参数为抽样点的经纬度、雷达搜索半径和雷达搜索机构类型;

B2)、通过雷达搜索结果,自动调整请求参数的雷达搜索递归,每次雷达搜索的返回结果为一组机构ID,保存每种雷达搜索机构类型下雷达搜索返回的机构ID,对每次雷达搜索新得到的机构ID进行基于已存机构ID的去重。

5.根据权利要求4所述的基于Google地图雷达搜索的地标挖掘方法,其特征在于,B2)中自动调整请求参数的雷达搜索递归,具体包含如下内容:B21)、当某次雷达搜索返回的条目等于预设条目数值时,将该点周围圆形区域切分为四个圆形区域;否则,停止递归;

B22)、针对四个圆形区域,分别取圆心经纬度、半径为参数做雷达搜索,判断返回的条目数;

B23)、返回步骤B21)进行雷达搜索递归,直至返回的条目数小于预设条目数值,停止递归,判定已获得整个行政区内的所有地标。

6.根据权利要求5所述的基于Google地图雷达搜索的地标挖掘方法,其特征在于,步骤B23)中进行雷达搜索递归,结合地标数量和采集速度设置雷达搜索递归次数,满足雷达搜索递归次数时,停止递归,判定已获得整个行政区内的所有地标。

7.根据权利要求1所述的基于Google地图雷达搜索的地标挖掘方法,其特征在于,C)中进行详情搜索请求获取机构关键信息,并作为候选地标信息存入地标数据库,包含如下内容:C1)、对每个机构ID,以机构ID为参数进行Google Maps Places API中详情搜索请求;

C2)、将详情搜索请求的响应结果中的行政区划信息与待挖掘行政区的名称进行比对,若属于待挖掘行政区,则抽取机构的关键信息,作为候选地标信息存入地标数据库;否则不进行机构关键信息抽取。

8.根据权利要求7所述的基于Google地图雷达搜索的地标挖掘方法,其特征在于,C2)中机构的关键信息包含:地址、联系方式、经纬度、Web服务器域名。

说明书 :

基于Google地图雷达搜索的地标挖掘方法

技术领域

[0001] 本发明属于网络实体定位技术领域,特别涉及一种基于Google地图雷达搜索的地标挖掘方法,用于网络实体地标采集。

背景技术

[0002] 网络实体定位技术,无论是在民用市场,还是在军事和安全领域,都具有十分广阔的应用前景。在面向实体定位服务的诸多应用中,都必须已知一定数量的网络实体作为参考地标,才能进一步对位置未知的网络实体实施定位,因此,开展网络实体地标采集技术的探索具有重要的研究意义。网络实体地标采集,能够给出具有一定密度的、地理位置较为稳定的网络节点,用来作为网络实体定位的参考地标。如何实现实体地标采集、建立一个网络实体地标库,成为了网络实体定位技术的关键问题。
[0003] 现已实现的基于Google地图文本搜索的地标挖掘方法,通过调用Google Maps Places API中的文本搜索服务接口,以一个行政区名称为参数,返回一个匹配此行政区名称和已设定的任何位置偏向的响应列表,搜索响应包含一个机构ID列表;以列表中的机构ID为参数通过详情请求服务可获得机构的地理位置、Web服务器域名等信息,通过域名转换即可形成候选地标信息。然而该方法存在以下缺陷:1)每次文本搜索响应最多为60条机构信息,且每个行政区只能进行一次文本搜索,因此每个行政区可获得的地标数量存在上限,即最多是60个。通常情况下,由此地标挖掘方法采集到的地标数量远低于实际地标数量,不足以提供足够数量的候选地标用于筛选出可靠度较高的可信地标,直接影响了可信地标的数量。2)利用该方法采集一个国家的地标时,为得到更多的候选地标,需要已知尽可能细粒度的行政区划信息,至少包含三级以上的行政区划信息。然而,未发现某一个公开知识库中包含了全球各国细粒度的行政区划信息,虽然部分知识库或网页中有一些国家的行政区划信息,但一般仅到城市级区划且存在一些错误信息,并且不同网站或网页的内容结构和获取方式差异较大,这为全球行政区划信息的抽取带来很大难度。因此该方法在应用于全球地标采集时非常受限。

发明内容

[0004] 针对现有技术中的不足,本发明提供一种基于Google地图雷达搜索的地标挖掘方法,不依赖一个国家或地区的细粒度行政区划信息,自动挖掘Google地图中该地域内尽可能多的机构信息,实现高密度候选地标的获取,解决基于Google文本搜索方法受制于细粒度行政区划信息且不能充分挖掘地图中可用候选地标信息的问题。
[0005] 按照本发明所提供的设计方案,一种基于Google地图雷达搜索的地标挖掘方法,包含:
[0006] A)获取待挖掘地标行政区在Google地图上的雷达搜索抽样点;
[0007] B)对所有抽样点进行雷达搜索请求,获取该待挖掘地标行政区内的机构ID列表;
[0008] C)以机构ID为参数进行详情搜索请求,获取机构关键信息,并作为候选地标信息存入地标数据库。
[0009] 上述的,A)中获取抽样点,具体包含如下内容:
[0010] A1)、指定待挖掘地标行政区的名称、雷达搜索半径、雷达搜索机构类型;
[0011] A2)、以行政区的名称为参数进行Google Maps Geocode正向地理解析请求,得到该行政区对应的推荐点经纬度;以该推荐点经纬度为参数进行Google Maps Geocode反向地理解析请求,得到该行政区东北点、西南点的经纬度;
[0012] A3)、根据东北点、西南点的经纬度,获取该行政区领土的最东点、最西点的经度,以及其最南点、最北点的纬度,形成地理空间中包含该行政区领土的矩形区域,作为抽样点遍历的最大范围;
[0013] A4)、构造该行政区内所有抽样点的经纬度;
[0014] A5)、从推荐点到矩形区域的四条边逐层遍历抽样点,对每个抽样点以其经纬度为参数进行Google Maps Geocode反向地理解析请求,根据响应中的行政区划信息判断该抽样点是否隶属于该行政区,并根据判断结果自动调整遍历策略。
[0015] 上述的,A4)中,构造该行政区内所有抽样点的经纬度,包含如下内容:
[0016] A41)、由雷达搜索半径Rradar换算出抽样点距Dpoint;
[0017] A42)、以行政区领土内推荐点作为起点,通过实地长度与经纬度的转换,循环得到正东、正西方向上的所有抽样点的经度,以及正南、正北方向上的所有抽样点的纬度;
[0018] A43)、将正东、正西、正南及正北四个正方向抽样点的经度和纬度组合,循环得到东北、东南、西南、西北方向上的所有抽样点的经纬度。
[0019] 优选的,A41)中换算公式为:
[0020] 上述的,A5)根据判断结果自动调整遍历策略,包含如下内容:
[0021] A51)、记录每个抽样点Google Maps Geocode反向地理解析请求后的判断结果,每个抽样点是否做Google Maps Geocode反向地理解析请求取决于其相邻点中是否存在领土内的点;
[0022] A52)、若该点的相邻点中不存在领土内的点,则先对该点不做判断,继续遍历下一个抽样点;若该点的相邻点中存在领土内的点,则判断该点是否也在领土内,并记录结果,若该点在领土内,其相邻点中存在未做过判断的点,则对未做判断的抽样点进行是否在领土内的判断;
[0023] A53)、由该行政区内推荐点发散至整个行政区陆地边界,记录下领土内抽样点经纬度。
[0024] 上述的,B)中,对所有抽样点进行雷达搜索请求,获取该待挖掘地标行政区内的机构ID列表,包含如下内容:
[0025] B1)、对领土内所有抽样点进行Google Maps Places API雷达搜索请求,每次请求的参数为抽样点的经纬度、雷达搜索半径和雷达搜索机构类型;
[0026] B2)、通过雷达搜索结果,自动调整请求参数的雷达搜索递归,每次雷达搜索的返回结果为一组机构ID,保存每种雷达搜索机构类型下雷达搜索返回的机构ID,对每次雷达搜索新得到的机构ID进行基于已存机构ID的去重。
[0027] 上述的,B2)中自动调整请求参数的雷达搜索递归,具体包含如下内容:
[0028] B21)、当某次雷达搜索返回的条目等于预设条目数值时,将该点周围圆形区域切分为四个圆形区域;否则,停止递归;
[0029] B22)、针对四个圆形区域,分别取圆心经纬度、半径为参数做雷达搜索,判断返回的条目数;
[0030] B23)、返回步骤B21)进行雷达搜索递归,直至返回的条目数小于预设条目数值,停止递归,判定已获得整个行政区内的所有地标。
[0031] 优选的,步骤B23)中进行雷达搜索递归,结合地标数量和采集速度设置雷达搜索递归次数,满足雷达搜索递归次数时,停止递归,判定已获得整个行政区内的所有地标。
[0032] 上述的,C)中进行详情搜索请求获取机构关键信息,并作为候选地标信息存入地标数据库,包含如下内容:
[0033] C1)、对每个机构ID,以机构ID为参数进行Google Maps Places API中详情搜索请求;
[0034] C2)、将详情搜索请求的响应结果中的行政区划信息与待挖掘行政区的名称进行比对,若属于待挖掘行政区,则抽取机构的关键信息,作为候选地标信息存入地标数据库;否则不进行机构关键信息抽取。
[0035] 优选的,C2)中机构的关键信息包含:地址、联系方式、经纬度、Web服务器域名。
[0036] 本发明的有益效果:
[0037] 1、本发明按搜索半径的大小将一个地域的领土自动切分为多个区域,针对每个区域调用Google Maps Places API中雷达搜索服务接口,获取该区域内的机构信息,若雷达搜索结果达到200条,即表明该区域内还有未获取到的机构信息,则自动调整请求参数进行雷达搜索递归请求,对该区域内机构信息进行充分挖掘,从而实现对一个地域的高密度候选地标信息的获取。
[0038] 2、本发明通过调用一次请求可返回机构条目更多的雷达搜索方式并自动执行雷达搜索递归请求,挖掘出Google地图中所有可用的候选地标信息,解决基于Google地图文本搜索的地标挖掘方法受制于依赖行政区划的请求和单次响应条数上限过低而导致的地标挖掘数量严重与实际不符的问题;同时,通过基于雷达搜索抽样点行政区划信息获取指定区域的行政区陆地边界,判断出抽样点领土是否隶属于指定区域,在确保雷达搜索抽样点完整覆盖指定地域领土的同时,减少了对大量无需进行雷达搜索的抽样点的Google服务请求,从而有效提高了本发明的实用性。附图说明:
[0039] 图1为本发明实施例中基于Google地图雷达搜索的地标挖掘方法流程图;
[0040] 图2为实施例中地标挖掘流程示意图二;
[0041] 图3为实施例中以“河南”为例的雷达搜索抽样点示意图;
[0042] 图4为实施例中遍历抽样点过程示意图;
[0043] 图5为实施例中自动调整请求参数的雷达搜索递归示意图;
[0044] 图6为实施例中边界抽样点的雷达搜索覆盖到领土外的地点示意图。具体实施方式:
[0045] 为使本发明的目的、技术方案和优点更加清楚、明白,下面结合附图和技术方案对本发明作进一步详细的说明。
[0046] 网络实体定位技术中,现有的基于Google地图文本搜索地标挖掘方法受制于细粒度行政区划信息且不能充分挖掘地图中可用候选地标信息。为此,本发明实施例一,参见图1所示,提供一种基于Google地图雷达搜索的地标挖掘方法,包含:
[0047] a01)获取待挖掘地标行政区在Google地图上的雷达搜索抽样点;
[0048] a02)对所有抽样点进行雷达搜索请求,获取该待挖掘地标行政区内的机构ID列表;
[0049] a03)以机构ID为参数进行详情搜索请求,获取机构关键信息,并作为候选地标信息存入地标数据库。
[0050] 通过调用一次请求可返回机构条目更多的雷达搜索方式并自动执行雷达搜索递归请求,可以挖掘出Google地图中所有可用的候选地标信息,解决了基于Google地图文本搜索的地标挖掘方法受制于依赖行政区划的请求和单次响应条数上限过低而导致的地标挖掘数量严重与实际不符的问题;同时,给出了基于雷达搜索抽样点行政区划信息获取指定区域的行政区陆地边界的方法,可判断出抽样点领土是否隶属于指定区域,在确保雷达搜索抽样点完整覆盖指定地域领土的同时,减少了对大量无需进行雷达搜索的抽样点的Google服务请求,从而有效提高了本发明的实用性。
[0051] 获取待挖掘地标行政区Google地图上雷达搜索抽样点中,以待挖掘地标的地区对应行政区名称为参数,进行Google Maps Geocode正向地理解析请求,返回的某点经纬度作为该地区的推荐点,以推荐点为起点、以雷达半径转换得到的长度为点距,在该行政区领土最东点、最西点的经度以及最南点、最北点的纬度形成的矩形区域中构造进行雷达搜索的抽样点经纬度,本发明的另一个实施例中,并以河南为例,参见图2和3所示,获取待挖掘地标行政区Google地图上雷达搜索抽样点具体包含如下内容:
[0052] 步骤1.1指定待采集地标行政区的名称、雷达搜索的半径、雷达搜索的机构类型。
[0053] 步骤1.2进行以行政区名称为参数的Google Maps Geocode正向地理解析的请求,得到该行政区对应的推荐点经纬度;再进行以该推荐点经纬度为参数的Google Maps Geocode反向地理解析的请求,得到该行政区东北点、西南点的经纬度。
[0054] 步骤1.3根据东北点、西南点的经纬度,得到该行政区领土的最东点、最西点的经度,以及其最南点、最北点的纬度,形成一个地理空间中必定包含该行政区领土的矩形区域,以此作为抽样点遍历的最大范围。
[0055] 步骤1.4构造该行政区内所有抽样点的经纬度,包含如下内容:
[0056] 1.4.1由指定的雷达搜索半径(Rradar)换算出抽样点距(Dpoint),公式为
[0057] 1.4.2以行政区领土内推荐点作为起点,通过实地长度与经纬度的转换,循环得到正东、正西方向上的所有抽样点的经度(这些抽样点的纬度与推荐点的纬度相同),以及正南、正北方向上的所有抽样点的纬度(这些抽样点的经度与推荐点的经度相同)。
[0058] 1.4.3将四个正方向抽样点的经度和纬度组合,循环得到东北、东南、西南、西北方向上的所有抽样点的经纬度。
[0059] 步骤1.5从推荐点到矩形区域的四条边逐层遍历抽样点,对每个抽样点以其经纬度为参数进行Google Maps Geocode反向地理解析请求,根据响应中的行政区划信息判断该抽样点是否隶属于该行政区,并根据判断结果自动调整遍历策略。遍历抽样点过程的示意图见图4,具体包含:
[0060] 1.5.1记录每点Google Maps Geocode反向地理解析请求后的判断结果,每个点是否做Google Maps Geocode反向地理解析请求取决于其相邻点中是否存在领土内的点。
[0061] 1.5.2若该点的相邻点中不存在领土内点,则先对该点不做判断,继续遍历下一个抽样点。
[0062] 1.5.3若该点的相邻点中存在领土内的点,则判断该点是否也在领土内,并记录结果。
[0063] 1.5.4若该点在领土内,然而其相邻点中存在未做过判断的点,说明其周围存在未遍历到的领土内抽样点,则对这些未做判断的抽样点进行是否在领土内的判断。
[0064] 1.5.5由该行政区内推荐点发散至整个行政区陆地边界,记录下领土内抽样点经纬度。
[0065] 遍历该行政区对应矩形区域中的所有抽样点,对每个抽样点判断其是否隶属此行政区,得到一组该行政区领土内全部抽样点的经纬度;对这些抽样点进行以经纬度、搜索半径和机构类型为参数的雷达搜索请求,得到每次请求返回的机构ID列表,具体包含如下内容:
[0066] 步骤2.1对领土内的所有抽样点进行Google Maps Places API中的雷达搜索请求,每次请求的参数为抽样点的经纬度、已指定的雷达搜索半径和机构类型。
[0067] 步骤2.2通过判断雷达搜索结果,实现自动调整请求参数的雷达搜索递归,示意图见图5,具体包含如下内容:
[0068] 2.2.1当某次雷达搜索返回的条目等于200条时,将该点周围圆形区域进行切分为四个圆形区域;否则,即返回的条目小于200条,则停止递归。
[0069] 2.2.2对这四个圆形区域,取圆心经纬度、半径为参数做雷达搜索,判断返回的条目数。
[0070] 2.2.3对前两步实现依次递归,当不设置递归次数时,可以获得整个行政区内的所有地标;若设置递归次数,则应结合地标数量和采集速度的平衡来合理设置。
[0071] 步骤2.3每次雷达搜索的返回结果为一组机构ID,保存每种机构类型下雷达搜索返回的机构ID,对每次雷达搜索新得到的机构ID进行基于已存机构ID的去重。
[0072] 对这些机构ID去重后,进行以机构ID为参数的详情搜索请求,抽取该行政区内机构的关键信息,每个机构的信息就形成了一条候选地标信息,具体包含如下内容:
[0073] 步骤3.1对每个机构ID进行以机构ID为参数的Google Maps Places API中的详情请求。
[0074] 步骤3.2对详情请求的响应结果中包含的行政区划信息与指定行政区名称进行比对,若属于指定行政区,则抽取此机构的地址、联系方式、经纬度、Web服务器域名等关键信息,作为候选地标信息存入地标数据库;否则不进行机构关键信息抽取。边界抽样点的雷达搜索会覆盖指定行政区领土外的地点,因此会返回大量不在指定行政区领土内的机构信息,如图6中带有箭头圈标注的抽样点所示。
[0075] 为了验证方法的有效性,针对台湾地区利用本发明与基于Google地图文本搜索的地标挖掘方法进行了对比实验。实验设定的参数包括:指定地区为“台湾”、指定半径为“5000米”、机构类型为“大学”、“中学”、“医院”、“酒店”等53种机构类型。而对于基于Google地图文本搜索的地标挖掘方法,还需要指定台湾地区的详细行政区划信息等参数。
[0076] 将两种方法成功采集到的候选地标信息存入数据库,并分别统计出候选地标的条目数,两种方法挖掘到台湾各城市的地标数目如表1所示。
[0077] 表1 两种方法挖掘到的地标条目统计结果
[0078]
[0079]
[0080] 采用本发明挖掘到的地标信息为121020条,远高于基于文本搜索方式得到的地标总数21627条。从表1可以看出,除了連江縣为台湾当局军事重地两种方法均未获取到地标、苗栗縣为多山地区Google地图中机构信息数目本身较少导致两种方法获得的地标数相当以外,其余城市通过本发明给出的方法挖掘到的地标数均有明显提高。其中,52.38%城市通过本发明给出的方法获取到的地标数目是文本搜索方法的地标数目的5倍以上,23.81%城市通过雷达搜索方法获取到的地标数目是文本搜索方法的地标数目的7倍以上,可见达到了预期目标,提升地标数目效果显著。进一步验证了本发明可以挖掘出Google地图中所有可用的候选地标信息,解决基于Google地图文本搜索的地标挖掘方法受制于依赖行政区划的请求和单次响应条数上限过低而导致的地标挖掘数量严重与实际不符的问题;本发明可判断出抽样点领土是否隶属于指定区域,在确保雷达搜索抽样点完整覆盖指定地域领土的同时,减少对大量无需进行雷达搜索的抽样点的Google服务请求,从而有效提高了本发明的实用性。
[0081] 以上内容是结合具体的优选实施方式对本发明所作的进一步详细说明,不能认定本发明的具体实施方式仅限于此,对于本发明所属技术领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干简单的推演或替换,都应当视为属于本发明由所提交的权利要求书确定专利保护范围。对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本申请。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本申请的精神或范围的情况下,在其它实施例中实现。因此,本申请将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。