生成地理围栏的方法及装置与流程

文档序号:12183957阅读:536来源:国知局
生成地理围栏的方法及装置与流程

本发明涉及位置服务技术领域,尤其涉及一种生成地理围栏的方法及装置。



背景技术:

通过划分地理围栏,可以在电子地图上区分不同的业务区域,便于各行各业业务的开展,例如判断人员或车辆是否从围栏外违规进入围栏内,或者是否从围栏内离开。

现有技术中的一种方法采用手工逐点绘制地理围栏,并在首尾点点选最短路径,但是由于地理围栏往往是不规则多边形,如果用人工操作鼠标绘制,绘制地理围栏的一条边需要不断的将地图扩大到最大级别,以绘制相对准确的边界,并且由于最大级别的可视范围比较狭窄,往往需要不断滑动地图,以便完成边的延长线的绘制,绘制完成一条边后,需要将地图缩放到正常可视比例,以观测绘制的效果,以及准备下一条边的绘制;当需要绘制多条边的时候,需要多次手工反复操作,手工工作量比较繁重,并且绘制的地理围栏容易受到人为因素影响,有时会不准确。

现有技术中的另一种方法绘制地理围栏时,在目标围栏的区域里面寻找密度大过一定门槛值的兴趣点,把这些点作为有意义的关键点,然后首尾相连形成闭合区间,但是如果该区域的密度分布比较分散无法满足门槛值或者中心区域大而边界密度小,则难以通过该方法有效完成围栏的自动绘制。

因此,有必要提出一种生成地理围栏的方法以解决上述问题。



技术实现要素:

本公开要解决的一个技术问题是如何提出一种自动生成地理围栏的方法,提高生成地理围栏的效率,减少人工工作量。

本公开提供一种生成地理围栏的方法,包括:遍历兴趣点集合,对每个兴趣点确定能够覆盖所有兴趣点的目标圆;在目标圆内获取能够首尾相连的闭合道路;剔除不能覆盖所有兴趣点的闭合道路,将剔除完后留下的闭合道路组成有效闭合道路集合;在有效闭合道路集合中,计算各闭合道路的面积,选取面积最小的闭合道路作为地理围栏;将地理围栏绘制到地图上。

进一步地,遍历兴趣点集合,对每个兴趣点确定能够覆盖所有兴趣点的目标圆、包括:以兴趣点为中心并以初始半径值画目标圆;判断目标圆是否能够覆盖兴趣点集合的所有兴趣点,如果否,则扩大初始半径值,并以兴趣点为圆心继续画目标圆,直至兴趣点集合中的所有兴趣点都在目标圆中;如果是,则在目标圆内获取能够首尾相连的闭合道路。

进一步地,目标圆的初始半径设定为R,若半径为R的圆能覆盖兴趣点集合的所有兴趣点,则在半径为R的目标圆内,根据地图内置的道路数据自动寻找能够覆盖所有兴趣点的闭合道路,并将寻找到的闭合道路的信息归入有效闭合道路集合;若在半径为R的目标圆内未能找到覆盖兴趣点集合的所有兴趣点的闭合道路,则在半径为RX、RX2或半径更大的目标圆中找到能够覆盖兴趣点集合所有兴趣点的闭合道路为止,并将寻找到的闭合道路的信息归入有效闭合道路集合,其中X>1。

进一步地,在目标圆内,获取能够首尾相连的闭合道路,包括:遍历地图中所有道路,将所有起始点和结束点都在目标圆内的道路归入集合M{m1,m2,..,mn};任选一个mi开始,寻找和mi有公共端点的道路mj,如果有多条则形成多个分支继续;对于mj,继续上述过程,直到寻找到能和mi闭合的道路为止,最后得到1个或者多个闭合道路。

进一步地,将地理围栏绘制到地图上包括:获取作为地理围栏的闭合道路的经纬度信息集合;将闭合道路的经纬度用打点的方法呈现在地图上,完成地理围栏的自动化绘制。

本公开还提供一种生成地理围栏的装置,包括:兴趣点遍历模块, 用于遍历兴趣点集合,对每个兴趣点确定能够覆盖所有兴趣点的目标圆;闭合道路计算模块,用于在目标圆内获取能够首尾相连的闭合道路;闭合道路剔除模块,用于剔除不能覆盖所有兴趣点的闭合道路,将剔除完后留下的闭合道路组成有效闭合道路集合;目标边界处理模块,用于在有效闭合道路集合中,计算各闭合道路的面积,选取面积最小的闭合道路作为地理围栏;边界绘制模块,用于将地理围栏绘制到地图上。

进一步地,兴趣点遍历模块还用于:以兴趣点为中心并以初始半径值画目标圆;判断目标圆是否能够覆盖兴趣点集合的所有兴趣点,如果否,则扩大初始半径值,并以兴趣点为圆心继续画目标圆,直至兴趣点集合中的所有兴趣点都在目标圆中;如果是,则在目标圆内获取能够首尾相连的闭合道路。

进一步地,目标圆的初始半径设定为R,若半径为R的圆能覆盖兴趣点集合的所有兴趣点,则在半径为R的目标圆内,闭合道路计算模块根据地图内置的道路数据自动寻找能够覆盖所有兴趣点的闭合道路,并将寻找到的闭合道路的信息归入有效闭合道路集合;

若在半径为R的目标圆内未能找到覆盖兴趣点集合的所有兴趣点的闭合道路,闭合道路计算模块则在半径为RX、RX2或半径更大的目标圆中找到能够覆盖兴趣点集合所有兴趣点的闭合道路为止,并将寻找到的闭合道路的信息归入有效闭合道路集合,其中X>1。

闭合道路剔除模块,用于获取有效闭合道路集合中的各闭合道路所封闭区域的面积,选取封闭区域面积最小的闭合道路作为兴趣点集合的地理围栏。

进一步地,闭合道路计算模块,用于遍历地图中所有道路,将所有起始点和结束点都在目标圆内的道路归入集合M{m1,m2,..,mn};任选一个mi开始,寻找和mi有公共端点的道路mj,如果有多条则形成多个分支继续;任选一个mi开始,寻找和mi有公共端点的道路mj,如果有多条则形成多个分支继续;对于mj,继续上述过程,直到寻找到能和mi闭合的道路为止,最后得到1个或者多个闭合道路。

进一步地,边界绘制模块用于获取作为地理围栏的闭合道路的经纬度信息集合;将闭合道路的经纬度用打点的方法呈现在地图上,完成地理围栏的自动化绘制。

本公开提供的生成地理围栏方法以及装置,基于兴趣点和地图中闭合道路数据自动生成准确的地理围栏,并可以大大减少手工操作,降低人工工作量,提高绘制地理围栏的效率。

附图说明

图1示出本发明一个实施例的生成地理围栏方法的流程图。

图2示出本发明另一个实施例的生成地理围栏方法的流程图。

图3示出本发明又一个实施例的生成地理围栏过程的示意图。

图4示出本发明一个实施例的实际生成的地理围栏的效果示意图。

图5示出本发明一个实施例的生成地理围栏的装置的结构框图。

图6示出了本发明的另一个实施例的一种生成地理围栏的设备的结构框图。

具体实施方式

下面参照附图对本发明进行更全面的描述,其中说明本发明的示例性实施例。

图1示出本发明一个实施例的生成地理围栏方法的流程图。如图1所示,该方法主要包括:

步骤100,遍历兴趣点集合,对每个兴趣点,确定能够覆盖所有兴趣点的目标圆。

在一个组织内部,如果有多个地理围栏来分割业务范围,那么为了便于管理和区分,组织往往要求各个地位围栏之间以道路为边界,之所以用道路为边界,是因为很多业务的开展是在道路两侧的小区、写字楼这样的静态区域,而不是在道路这样的行车动态区域,因此可以将道路作为兴趣点区的边界。

具体地,一般情况下,需要绘制地理围栏的组织单位对自己的业务 区域是熟悉的,经过长期的业务发展,对本区域的兴趣点(Point of Interest,POI)或者说经纬度的数据集有一定的积累,形成自身的经纬度数据库,每个POI包含四方面信息,名称、类别、经度纬度、附近的酒店饭店商铺等信息,可以称之为“导航地图信息”,导航地图数据是整个导航产业的基石。

在一个实施例中,可以在电子地图上临时点选一些能大致覆盖业务区域的兴趣点,并根据这些临时兴趣点确定地理围栏。

在一个实施例中,该步骤可以包括:以兴趣点为中心并以初始半径值画目标圆;判断目标圆是否能够覆盖兴趣点集合的所有兴趣点,如果否,则扩大初始半径值,并以兴趣点为圆心继续画目标圆,直至兴趣点集合中的所有兴趣点都在目标圆中;如果是,则在目标圆内获取能够首尾相连的闭合道路。

举例而言,确定能够覆盖所有兴趣点的目标圆时,可以逐步扩大半径画圆,依次增大k值判断半径为RXk的圆是否能覆盖兴趣点集合内的所有兴趣点,其中,X大于1,k为自然数。例如,可以分别以半径R、RX1、RX2、RX3…画圆,判断半径R、RX、RX2、RX3…的圆能否覆盖兴趣点集合的所有兴趣点。在一个实施例中,可以以正比例方式逐渐增大半径画圆。

尽管以指数形式或正比例形式画圆为示例以做说明,但是本领域人员可以理解,本发明不限于此,还可以以其他方式增大半径画圆。

步骤102,在目标圆内,获取能够首尾相连的闭合道路。

在一个实施例中,遍历地图中所有道路,将所有起始点和结束点都在目标圆内的道路归入集合M{m1,m2,..,mn};任选一个mi开始,寻找和mi有公共端点的道路mj,如果有多条则形成多个分支继续;对于mj,继续上述过程,直到寻找到能和mi闭合的道路为止。这样可以搜索到的道路可以组成一个多叉树,最后可以得到1个或者多个闭合道路。

步骤104,剔除不能覆盖所有兴趣点的闭合道路,将剔除完后留下的闭合道路组成有效闭合道路集合。

在一个实施例中,可以设置目标圆的初始半径设定为R,若半径为R的圆能覆盖兴趣点集合的所有兴趣点,则在半径为R的目标圆内,根据地图内置的道路数据自动寻找能够覆盖所有兴趣点的闭合道路,并将寻找到的闭合道路的信息归入有效闭合道路集合;若在半径为R的目标圆内未能找到覆盖兴趣点集合的所有兴趣点的闭合道路,则在半径为RX、RX2或半径更大的目标圆中找到能够覆盖兴趣点集合所有兴趣点的闭合道路为止,并将寻找到的闭合道路的信息归入有效闭合道路集合,其中X>1。

在一个实施例中,可以用RXk代表目标圆的半径,其中R表示初始半径,X表示半径增长率,k为从0开始的自然数,如果半径为RXk的第k个圆能覆盖兴趣点集合的所有兴趣点,则在半径为RXk的圆内,根据地图内置的道路数据自动寻找能够覆盖所有兴趣点的闭合道路,并将寻找到的闭合道路的信息归入有效闭合道路集合;若在半径为RXk的第k个圆内未能找到覆盖兴趣点集合的所有兴趣点的闭合道路,继续增大k值,直到在半径RXk+1或半径更大的圆中找到能够覆盖兴趣点集合所有兴趣点的闭合道路为止,并将寻找到的闭合道路的信息归入有效闭合道路集合。

步骤106,在有效闭合道路集合中,计算各闭合道路的面积,选取面积最小的闭合道路作为地理围栏。

例如,可以使用格点法计算各个闭合道路封闭区域的面积,栅格化地图后,通过计算闭合道路内的格点个数确定闭合道路的面积。

在一个实施例中,还可以调用现有技术中的其他API接口

步骤108,将地理围栏绘制到地图上。

在一个实施例中,获取作为地理围栏的闭合道路的经纬度信息集合;将闭合道路的经纬度用打点的方法呈现在地图上,完成地理围栏的自动化绘制。

本发明实施例的地理围栏生成方法,基于兴趣点和地图中闭合道路数据自动生成较高准确性的地理围栏,并可以大大减少手工操作,降低工作量,提高绘制地理围栏的效率。

图2示出本发明另一个实施例的生成地理围栏方法的流程图。如图2所示,该方法包括:

步骤200,将兴趣点定义为一个集合A,依次遍历集合A里面的所有的兴趣点。具体地,遍历兴趣点集合的方式可以是顺序遍历或逆序遍历、二分法遍历等,只要能实现遍历所有兴趣点的效果即可。

步骤201,对集合A中的每个兴趣点,逐步扩大半径画圆。例如,可以设置圆的初始半径为R,以半径R,RX、RX2…的画目标圆。

步骤202,判断目标圆能否覆盖集合A中的所有兴趣点。

如果以半径R画的圆能够覆盖集合A中所有的兴趣点,则执行步骤203,根据地图内置的道路数据自动寻找到闭合的道路;若半径为R的目标圆不能覆盖集合A中的所有兴趣点,则执行步骤204,继续扩大半径画圆,直到能够找到能覆盖集合A中所有兴趣点的目标圆为止。

具体地,可以采用距离比较方法判断目标圆能否覆盖集合中的所有兴趣点,由于圆心的经纬度已知,可以计算各个兴趣点到当前圆心的距离,例如采用d=sqrt((xi-x0)2+(yi-y0)2)计算各个兴趣点到圆心的距离,计算出来距离d之后,与当前的目标圆的已知半径R相比较,若各个兴趣点到圆心的距离d均小于等于已知半径R,则认为该目标圆可以覆盖集合A的所有的兴趣点,如果有某个兴趣点到圆心的距离d均大于已知半径R,则认为当前的圆不能覆盖所有兴趣点,则需要继续扩大半径画圆。当然,判断目标圆能否覆盖所有的兴趣点也可以采用地图领域是通用算法,例如还可以调用图形开发领域一些API,即可实现上述判断的效果。

具体地,步骤203可以包括以下流程:遍历地图中所有道路,起始点和结束点都在目标圆内的道路归入集合M{m1,m2,..,mn};任选一个mi开始,寻找和mi有公共端点的道路mj,如果有多条则形成多个分支继续;对于mj,继续上述过程,直到寻找到某条道路能和mi闭合。这样,搜索结构是一颗多叉树,最后得到1个或者多个闭合道路。具体可以选择递归循环的方式遍历完所有道路数据,确定能够封闭的所有兴趣点的闭合道路。

步骤205,判断步骤203寻找到的闭合道路能否覆盖集合A中的所有兴趣点。若能够找到能否覆盖集合A中的所有兴趣点闭合道路,则执行步骤206,将找到的闭合道路归入集合B;若不能在目标圆中找到能够覆盖集合A中所有兴趣点的闭合道路,则执行步骤207,继续扩大画圆,并循环执行步骤S203和S205,直到在目标圆内寻找能够覆盖集合A中所有兴趣点的闭合道路为止。

具体地,如果半径R的圆无法覆盖所有兴趣点,则将半径扩大到R*X,X可调且X>1,如果还是无法覆盖目标圆内的所有兴趣点,则继续扩大半径到R*X*X,并依次循环扩大半径,以此类推直到能够找到覆盖了所有的兴趣点的闭合的道路。

如果找到的闭合道路覆盖了所有的兴趣点,则把它归入集合B,其中,如果这样的闭合道路不止一条,只要符合上述条件,则同样归入集合B。

步骤208,遍历集合B中的所有的闭合道路,逐个计算封闭区域的面积。

具体地,遍历完集合A中的所有点后,处理集合B,遍历集合B中的每个封闭道路即多边形,逐个计算面积。

步骤209,选择面积最小的闭合道路作为集合A的地理围栏。

步骤210,将该地理围栏的封闭道路的经纬度用打点的方法呈现在地图上,完成地理围栏的自动化绘制。

图3示出本发明又一个实施例的生成地理围栏过程的示意图。如图3所示,集合A中有多个兴趣点,星号点为遍历的第一个点,如果半径R的圆不能覆盖所有兴趣点,则扩大为R*X,在半径为R*X的圆内计算出3个闭合道路,但是判断发现闭合道路3无法覆盖所有兴趣点,则剔除闭合道路3,剩下闭合道路1和2,并将闭合道路1和2归入集合B。依次类推,遍历完集合A的所有兴趣点,获取包括多个闭合道路的集合B,依次计算集合B中的闭合道路的封闭区域面积,计算面积最小的闭合道路作为结果电子围栏。

图4示出本发明一个实施例的实际生成的地理围栏的效果示意图。 如图4所示,兴趣点区域有多个点表示POI点,区域周边的围栏是计算生成的最小电子围栏。

本发明实施例的地理围栏生成方法,采用兴趣点逐点遍历方法,在目标圆中自动生成多个覆盖所有兴趣点的闭合道路,然后在闭合道路中选取面积最小作为结果电子围栏,一次性绘制完成地理围栏,是其他任何专利都没有采用过的方法。相对于现有技术中的对兴趣点进行密度处理方法,对每个兴趣点都处理考虑,对兴趣点的处理更加完善,在目标区域内一次性获得多个闭合的道路,通过选取最小面积的闭合道路作为最后的围栏。相对于现有技术中每人每天平均绘制5个围栏的效率,根据本发明实施例提供的方法,每人每天平均绘制可以绘制30个围栏,绘制工作耗时很少,且自动完成,时间主要花费在兴趣点数据库的导入上面,该方法可以用于车辆定位服务等产品中。

图5示出本发明一个实施例的生成地理围栏的装置的结构框图。如图5所示,该装置包括:

兴趣点遍历模块501,用于遍历兴趣点集合,对每个兴趣点确定能够覆盖所有兴趣点的目标圆。

闭合道路计算模块502,用于在目标圆内,获取能够首尾相连的闭合道路。

闭合道路剔除模块503,用于剔除不能覆盖所有兴趣点的闭合道路,将剔除完后留下的闭合道路组成有效闭合道路集合。

目标边界处理模块504,用于在有效闭合道路集合中,计算各闭合道路的面积,选取面积最小的闭合道路作为地理围栏。

边界绘制模块505,用于将地理围栏绘制到地图上。

在一个实施例中,兴趣点遍历模块501还用于:以兴趣点为中心并以初始半径值画目标圆;判断目标圆是否能够覆盖兴趣点集合的所有兴趣点,如果否,则扩大初始半径值,并以兴趣点为圆心继续画目标圆,直至兴趣点集合中的所有兴趣点都在目标圆中;如果是,则在目标圆内获取能够首尾相连的闭合道路。

在一个实施例中,闭合道路计算模块502用于遍历地图中所有道 路,将所有起始点和结束点都在目标圆内的道路归入集合M{m1,m2,..,mn};任选一个mi开始,寻找和mi有公共端点的道路mj,如果有多条则形成多个分支继续;任选一个mi开始,寻找和mi有公共端点的道路mj,如果有多条则形成多个分支继续;对于mj,继续上述过程,直到寻找到能和mi闭合的道路为止。

在一个实施例中,目标圆的初始半径设定为R,若半径为R的圆能覆盖兴趣点集合的所有兴趣点,则在半径为R的目标圆内,闭合道路计算模块502根据地图内置的道路数据自动寻找能够覆盖所有兴趣点的闭合道路,并将寻找到的闭合道路的信息归入有效闭合道路集合;若在半径为R的目标圆内未能找到覆盖兴趣点集合的所有兴趣点的闭合道路,闭合道路计算模块502则在半径为RX、RX2或半径更大的目标圆中找到能够覆盖兴趣点集合所有兴趣点的闭合道路为止,并将寻找到的闭合道路的信息归入有效闭合道路集合,其中X>1。

在一个实施例中,闭合道路剔除模块503,用于获取有效闭合道路集合中的各闭合道路所封闭区域的面积,选取封闭区域面积最小的闭合道路作为兴趣点集合的地理围栏。

在一个实施例中,边界绘制模块505用于获取作为地理围栏的闭合道路的经纬度信息集合;将闭合道路的经纬度用打点的方法呈现在地图上,完成地理围栏的自动化绘制。

图6示出了本发明的另一个实施例的一种生成地理围栏的设备的结构框图。生成地理围栏的设备600可以是具备计算能力的主机服务器、个人计算机PC、或者可携带的便携式计算机,移动终端或其他终端等。本发明具体实施例并不对计算节点的具体实现做限定。

生成地理围栏的设备600包括处理器(processor)601、通信接口(Communications Interface)602、存储器(memory)603和总线604。其中,处理器601、通信接口602、以及存储器603通过总线604完成相互间的通信。

通信接口602用于与网络设备通信,其中网络设备包括例如虚拟机管理中心、共享存储等。

处理器601用于执行程序。处理器601可以是一个中央处理器CPU,或者可以是专用集成电路ASIC(Application Specific Integrated Circuit),或者是被配置成实施本发明实施例的一个或多个集成电路。

存储器603用于存放文件。存储器603可以包含高速RAM存储器,也可还包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。存储器603也可以是存储器阵列。存储器603还可能被分块,并且块可按一定的规则组合成虚拟卷。

在一种实施方式中,上述程序可为包括计算机操作指令的程序代码。该程序具体可用于:遍历兴趣点集合,对每个兴趣点确定能够覆盖所有兴趣点的目标圆;在目标圆内获取能够首尾相连的闭合道路;剔除不能覆盖所有兴趣点的闭合道路,将剔除完后留下的闭合道路组成有效闭合道路集合;在有效闭合道路集合中,计算各闭合道路的面积,选取面积最小的闭合道路作为地理围栏;将地理围栏绘制到地图上。

在一种实施方式中,遍历兴趣点集合,对每个兴趣点确定能够覆盖所有兴趣点的目标圆、包括:以兴趣点为中心并以初始半径值画目标圆;判断目标圆是否能够覆盖兴趣点集合的所有兴趣点,如果否,则扩大初始半径值,并以兴趣点为圆心继续画目标圆,直至兴趣点集合中的所有兴趣点都在目标圆中;如果是,则在目标圆内获取能够首尾相连的闭合道路。

在一种实施方式中,目标圆的初始半径设定为R,若半径为R的圆能覆盖兴趣点集合的所有兴趣点,则在半径为R的目标圆内,根据地图内置的道路数据自动寻找能够覆盖所有兴趣点的闭合道路,并将寻找到的闭合道路的信息归入有效闭合道路集合;若在半径为R的目标圆内未能找到覆盖兴趣点集合的所有兴趣点的闭合道路,则在半径为RX、RX2或半径更大的目标圆中找到能够覆盖兴趣点集合所有兴趣点的闭合道路为止,并将寻找到的闭合道路的信息归入有效闭合道路集合,其中X>1。

在一种实施方式中,在目标圆内,获取能够首尾相连的闭合道路,包括:遍历地图中所有道路,将所有起始点和结束点都在目标圆内的道 路归入集合M{m1,m2,..,mn};任选一个mi开始,寻找和mi有公共端点的道路mj,如果有多条则形成多个分支继续;对于mj,继续上述过程,直到寻找到能和mi闭合的道路为止,最后得到1个或者多个闭合道路。

在一种实施方式中,将地理围栏绘制到地图上包括:获取作为地理围栏的闭合道路的经纬度信息集合;将闭合道路的经纬度用打点的方法呈现在地图上,完成地理围栏的自动化绘制。

本领域普通技术人员可以意识到,本文所描述的实施例中的各示例性单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件形式来实现,取决于技术方案的特定应用和设计约束条件。专业技术人员可以针对特定的应用选择不同的方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。

如果以计算机软件的形式来实现功能并作为独立的产品销售或使用时,则在一定程度上可认为本发明的技术方案的全部或部分(例如对现有技术做出贡献的部分)是以计算机软件产品的形式体现的。该计算机软件产品通常存储在计算机可读取的非易失性存储介质中,包括若干指令用以使得计算机设备(可以是个人计算机、服务器、或者网络设备等)执行本发明各实施例方法的全部或部分步骤。而前述的存储介质包括U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。

本发明的描述是为了示例和描述起见而给出的,而并不是无遗漏的或者将本发明限于所公开的形式。很多修改和变化对于本领域的普通技术人员而言是显然的。选择和描述实施例是为了更好说明本发明的原理和实际应用,并且使本领域的普通技术人员能够理解本发明从而设计适于特定用途的带有各种修改的各种实施例。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1