CN108572999B - 兴趣面aoi轮廓的搜索方法及装置 - Google Patents
兴趣面aoi轮廓的搜索方法及装置 Download PDFInfo
- Publication number
- CN108572999B CN108572999B CN201710150698.9A CN201710150698A CN108572999B CN 108572999 B CN108572999 B CN 108572999B CN 201710150698 A CN201710150698 A CN 201710150698A CN 108572999 B CN108572999 B CN 108572999B
- Authority
- CN
- China
- Prior art keywords
- point
- search
- aoi
- search point
- intersection
- 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
Landscapes
- Navigation (AREA)
- Image Analysis (AREA)
Abstract
本发明实施例公开了一种AOI轮廓的搜索方法,包括:确定起始搜索点,获取起始搜索点对应的道路坐标数据;将起始搜索点作为目标搜索点进行迭代查找,查找与目标搜索点的距离为距离阈值的下一跳搜索点,距离阈值为第一步长;获取目标搜索点与下一跳搜索点之间的线段与道路坐标数据的交叉点,将交叉点添加到预设的交叉点集合中,终止下一跳搜索点的迭代;在未获取到交叉点时,将下一跳搜索点作为目标搜索点,执行查找与目标搜索点的距离为预设的第一步长的下一跳搜索点的步骤;根据交叉点集合中的交叉点的位置确定AOI。此外,本发明实施例还公开了一种AOI轮廓的搜索装置。采用本发明,可提高AOI轮廓搜索的准确度。
Description
技术领域
本发明涉及计算机技术领域,尤其涉及一种兴趣面AOI轮廓的搜索方法及装置。
背景技术
在地图应用中,AOI(area of interest,即信息面,也叫兴趣面),是指地图上的一个区域或地图数据中的区域状的地理实体,这个区域可以是大学、建筑物等,并且,这个区域通常会有一个名字,例如北京大学、腾讯大厦等。不同于信息点(英语:Point ofInterest,简称:POI,即为地图上的某个地标、景点,用以标示出该地所代表的政府部门,百货公司、酒店、医院等商业机构,公园、公共厕所等旅游景点,古迹名胜,各式车站、停车场、超速照相机、限速标识等交通设施,也可称为兴趣点)是一种点数据,AOI是一种面数据,并且,为有名面数据。而AOI轮廓即为该区域的边界,AOI轮廓的确定即是指在地图上确定每一个AOI或者某一个特定的AOI对应的具体区域。目前,地图数据中的AOI轮廓的确定,主要是通过实采人员人工画的面,由于AOI的数量通常较多,这就导致了AOI轮廓的确定需要耗费大量的时间和人力,并且因为是人工操作,无法避免出现错误,也是的AOI轮廓的确定存在准确率不足的问题。
发明内容
基于此,为解决传统技术中AOI轮廓的确定中成本耗费过大、准确率不足的技术问题,特提出了一种AOI轮廓的搜索方法。
一种AOI轮廓的搜索方法,包括:
确定起始搜索点,获取所述起始搜索点对应的道路坐标数据;
将起始搜索点作为目标搜索点进行迭代查找,查找与所述目标搜索点的距离为距离阈值的下一跳搜索点,所述距离阈值为第一步长;
获取所述目标搜索点与所述下一跳搜索点之间的线段与道路坐标数据的交叉点,将所述交叉点添加到预设的交叉点集合中,终止所述下一跳搜索点的迭代;
在未获取到交叉点时,将所述下一跳搜索点作为目标搜索点,执行所述查找与所述目标搜索点的距离为预设的第一步长的下一跳搜索点的步骤;
根据所述交叉点集合中的交叉点的位置确定AOI。
可选的,在其中一个实施例中,所述查找与所述目标搜索点的距离为预设的第一步长的下一跳搜索点包括:
查找与所述目标搜索点在预设搜索方向上延展的距离为预设的第一步长的下一跳搜索点,所述预设搜索方向的数量为至少一个。
可选的,在其中一个实施例中,所述获取所述目标搜索点与所述下一跳搜索点之间的线段与道路坐标数据的交叉点之后还包括:
将所述距离阈值设置为第二步长,重新执行所述查找与所述目标搜索点的距离为距离阈值的下一跳搜索点的步骤。
可选的,在其中一个实施例中,所述将所述下一跳搜索点作为目标搜索点之前还包括:
将所述目标搜索点添加到预设的面内点集合中;
所述终止所述下一跳搜索点的迭代之前还包括:
将所述下一跳搜索点添加到预设的面外点集合中,建立与所述交叉点的对应关系。
可选的,在其中一个实施例中,所述将所述下一跳搜索点添加到预设的面外点集合中之前还包括:
查找面内点集合中是否包括与所述下一跳搜索点的位置相同的搜索点,在未查找到时,则执行将所述下一跳搜索点添加到预设的面外点集合中,建立与所述交叉点的对应关系的步骤。
可选的,在其中一个实施例中,所述将所述目标搜索点添加到预设的面内点集合中之后还包括:
查找位置相同但既属于所述面外点集合又属于面内点集合的搜索点,若查找到,则将查找到的搜索点从所述面外点集合中移除,将所述查找到的搜索点对应的交叉点在所述交叉点集合中移除。
可选的,在其中一个实施例中,所述根据所述交叉点集合中的交叉点的位置确定AOI之后还包括:
根据所述交叉点集合中交叉点的位置确定所述AOI的轮廓,判断所述轮廓是否存在相交,若是,则判定所述AOI无效。
此外,为解决传统技术中AOI轮廓的确定中成本耗费过大、准确率不足的技术问题,特提出了一种AOI轮廓的搜索装置。
一种AOI轮廓的搜索装置,包括:
起始搜索点确定模块,用于确定起始搜索点,获取所述起始搜索点对应的道路坐标数据;
目标搜索点确定模块,用于将起始搜索点作为目标搜索点进行迭代查找;
下一跳搜索点查找模块,用于查找与所述目标搜索点的距离为距离阈值的下一跳搜索点,所述距离阈值为第一步长;
交叉点获取模块,用于获取所述目标搜索点与所述下一跳搜索点之间的线段与道路坐标数据的交叉点;
迭代终止模块,用于将所述交叉点添加到预设的交叉点集合中,终止所述下一跳搜索点的迭代;
目标搜索点重新确定模块,用于在未获取到交叉点时,将所述下一跳搜索点作为目标搜索点,并调用所述下一跳搜索点查找模块;
AOI确定模块,用于根据所述交叉点集合中的交叉点的位置确定AOI。
可选的,在其中一个实施例中,所述下一跳搜索点查找模块还用于查找与所述目标搜索点在预设搜索方向上延展的距离为预设的第一步长的下一跳搜索点,所述预设搜索方向的数量为至少一个。
可选的,在其中一个实施例中,所述装置还包括第二步长搜索模块,用于将所述距离阈值设置为第二步长,并调用所述下一跳搜索点查找模块。
可选的,在其中一个实施例中,所述装置还包括面内点添加模块和面外点添加模块,其中:
所述面内点添加模块用于将所述目标搜索点添加到预设的面内点集合中;
所述面外点添加模块用于将所述下一跳搜索点添加到预设的面外点集合中,建立与所述交叉点的对应关系。
可选的,在其中一个实施例中,所述装置还包括搜索点验证模块,用于查找面内点集合中是否包括与所述下一跳搜索点的位置相同的搜索点,在未查找到时,调用所述面外点添加模块。
可选的,在其中一个实施例中,所述装置还包括交叉点验证模块,用于查找位置相同但既属于所述面外点集合又属于面内点集合的搜索点,若查找到,则将查找到的搜索点从所述面外点集合中移除,将所述查找到的搜索点对应的交叉点在所述交叉点集合中移除。
可选的,在其中一个实施例中,所述装置还包括AOI验证模块,用于根据所述交叉点集合中交叉点的位置确定所述AOI的轮廓,判断所述轮廓是否存在相交,若是,则判定所述AOI无效。
实施本发明实施例,将具有如下有益效果:
采用了上述AOI轮廓的搜索方法和装置之后,在需要确定AOI以及与该AOI对应的轮廓时,从一个搜索点为目标搜索点开始按照预设的迭代规则查找与之对应的下一跳搜索点,然后判断该目标搜索点与下一跳搜索点之间是否存在交叉点,若存在交叉点,则将该交叉点判定为AOI轮廓上的一个坐标点;若不存在,则判定该目标搜索点和下一跳搜索点均在AOI轮廓内部,并以该下一跳搜索点为目标搜索点开始重新查找与该点对应的下一跳搜索点,直至每一个下一跳搜索点确定了一个交叉点并终止了与该搜索点对应的迭代查找,从而确定与AOI轮廓对应的所有的交叉点,然后根据确定的所有的交叉点确定AOI以及与该AOI对应的AOI轮廓。也就是说,从一个搜索点开始不断确定目标区域AOI内的内部的点、边界上的点、外部的点,从而可以准确的确定目标区域AOI所对应的区域和区域边界,提高了确定的AOI以及AOI轮廓的准备性。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
其中:
图1为一个实施例中电子地图的应用场景中AOI的示意图;
图2为一个实施例中一种AOI轮廓的搜索方法的流程示意图;
图3为一个实施例中一种根据目标搜索点确定下一跳搜索点的示意图;
图4为一个实施例中与目标搜索点对应的搜索方向示意图;
图5为一个实施例中AOI中包含有断头路的道路示意图;
图6为一个实施例中AOI中包含有断头路的搜索点示意图;
图7为一个实施例中一种AOI轮廓的搜索装置的结构示意图;
图8为一个实施例中运行前述AOI轮廓的搜索方法的计算机设备的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
为解决传统技术中AOI轮廓的确定中成本耗费过大、准确率不足的技术问题,在本实施例中,特提出了一种AOI轮廓的搜索方法,该方法的实现可依赖于计算机程序,该计算机程序可运行于基于冯诺依曼体系的计算机系统之上,该计算机程序可以是桌面地图应用、网页地图应用或手机地图应用等包含了AOI等有名面数据的笛子地图应用程序,该计算机程序科运行于冯诺依曼体系的计算机系统之上。该计算机系统可以是智能手机、平板电脑、笔记本电脑或者个人电脑等计算机设备。
需要说明的是,在本实施例中,AOI的轮廓确定即为在地图数据中确定与每一个AOI对应的轮廓或者确定与一个目标点对应的AOI对应的轮廓;并且,在本实施例中,AOI的轮廓是由公路、铁道、河流等地图数据中的线型数据组成的。也就是说,在本实施例中,AOI轮廓的确定即为确定一个AOI所对应的区域或面的边界在地图数据中所对应的公路、铁道、河流等线型数据。
例如,在图1所示的电子地图的应用场景中,编号S1所示的线条即为AOI“慧忠里(B区)”的轮廓,编号N1所示的区域即为AOI“慧忠里(B区)”在地图上所对应的区域。
具体的,如图1所示,上述AOI轮廓的搜索方法包括如下步骤:
步骤S102:确定起始搜索点,获取所述起始搜索点对应的道路坐标数据。
在本实施例中,AOI轮廓的搜索是从AOI中的一个初始点开始进行搜索,搜索的具体方式是从该初始点不断的向外进行发散查找,直至确定AOI的轮廓上所有的坐标为止;也就是说,该初始点即为起始搜索点。
具体实施中,若用户需要查找与某个POI对应的AOI所对应的轮廓,即可将该POI所对应点作为起始搜索点。例如,在图1中,编号D1对应的POI是慧忠里(B区),则可将D1所对应的点作为起始搜索点查找与包含了该起始搜索点的AOI。
在另一个实施例中,起始搜索点还可以是查找区域内的任意一点,或者指定点。
在起始搜索点确定之后,即获取地图数据中与该起始搜索点对应的道路坐标数据;具体的,道路坐标数据包括了相应的地图数据所对应的区域中包含的道路所对应的每一个点的坐标数据,并且,还可以确定地图数据所对应的区域中包含的每一个点的坐标数据。一般来讲,一个AOI所对应的区域时有限的,因此,在进行搜索时可以先在一定的范围内进行搜索,若在该区域内搜索未终止,再扩展搜索区域;搜索区域即为与起始搜索点对应的道路坐标数据对应的区域。例如,在本实施例中,在步骤S102中获取的与起始搜索点对应的道路坐标区域可以是与起始搜索点之间的距离为预设距离(如2km)的点所对应的区域。
需要说明的是,在本实施例中,在本实施例中,在进行迭代搜索之前,还需要将相关的地图数据加载到内存中,以便在进行AOI搜索时使用。
步骤S104:将起始搜索点作为目标搜索点进行迭代查找。
在本实施例中,在确定与起始搜索点对应的AOI时,需要从起始搜索点开始不断的向外进行搜索,因此,需要不断的下一步的搜索或查找,即进行迭代查找。在本实施例中,以起始搜索点作为目标搜索点开始迭代查找。
具体的,迭代查找的步骤如步骤S106-S112所示,迭代查找的过程即为确定与AOI的轮廓所对应的点的过程:
步骤S106:查找与所述目标搜索点的距离为距离阈值的下一跳搜索点,所述距离阈值为第一步长;
步骤S108:获取所述目标搜索点与所述下一跳搜索点之间的线段与道路坐标数据的交叉点;
步骤S110:将所述交叉点添加到预设的交叉点集合中,终止所述下一跳搜索点的迭代;
步骤S112:在未获取到交叉点时,将所述下一跳搜索点作为目标搜索点,执行步骤S106:查找与所述目标搜索点的距离为预设的第一步长的下一跳搜索点。
在确定目标搜索点之后,即可查找与目标搜索点对应的下一跳搜索点;具体的,按照预设的下一跳搜索点的确定规则,在地图数据中或者在地图数据对应的坐标图中,确定与目标搜索点对应的下一跳搜索点。需要说明的是,在本实施例中,在根据目标搜索点查找与目标搜索点对应的下一跳搜索点时,是查找与目标搜索点之间的距离为预设的距离阈值的坐标点作为下一跳搜索点。例如,可以设置预设的距离阈值为30米。
进一步的,在本实施例中,在所述查找与所述目标搜索点的距离为预设的第一步长的下一跳搜索点的步骤中,在确定与下一跳搜索点时,并不是查找所有的与目标搜索点之间的距离为预设的第一步长的所有的坐标点,而是仅在预设的方向上查找与目标搜索点之间的距离为预设的第一步长的坐标点,从而可以减少在确定下一跳搜索点的查找过程中的计算量;即查找与所述目标搜索点在预设方向上延展的距离为预设的第一步长的下一跳搜索点。
例如,在一个实施例中,上述查找下一跳搜索点时的预设方向可以是以目标搜索点为中心的上、下、左、右或者东、南、西、北四个方向,在以目标搜索点为中心的预设方向的延展方向上,获取到目标搜索点的距离为预设的第一步长的坐标点为下一跳搜索点。
如图3所示,在图3所示的应用场景中,以P22为目标搜索点为例,预设的第一步长为单位1(网格的大小为1),且预设的方向为上、下、左、右,则与P22对应的下一跳搜索点为与P22之间的距离为1的P21、P23、P12、P32。
在与目标搜索点对应的下一跳搜索点确定之后,即可对查找到的下一跳搜索点进行判断,判断查找到的搜索点是否跨越了AOI轮廓对应的道路。具体的,即判断目标搜索点与下一跳搜索点之间的连线是否与道路所对应的轨迹之间存在交叉点。
若目标搜索点与下一跳搜索点之间的线段与道路坐标数据之间存在交叉点,则说明目标搜索点与下一跳搜索点之间的线段与道路所对应的线条或轨迹之间存在交叉,而在本实施例中,上述迭代搜索就是要确定包括起始搜索点的闭合的道路,因此,目标搜索点与下一跳搜索点之间的线段与道路坐标数据之间的交叉点相当于确定了与起始搜索点相邻的最近的道路上的一个点,也就是说,该交叉点为AOI轮廓上的一个坐标点,因此将该交叉点添加到预设的交叉点集合中。
需要说明的是,在本实施例中,在步骤S106之前,还需要对交叉点集合进行初始化处理,例如,对交叉点集合进行清空处理;或者,若不存在交叉点集合,则新建一个空集为交叉点集合。
在本实施例中,交叉点集合即为根据上述迭代查找确定的与AOI轮廓对应的坐标点的集合,在迭代查找完成之后,即可根据交叉点集合中包含的所有的点来确定当前需要确定的AOI所对应的区域以及与该AOI对应的AOI轮廓。
在另一个实施例中,若在上述获取目标搜索点与下一跳搜索点之间的线段与道路坐标数据之间的交叉点时,未获取到满足条件的交叉点,则说明在本次的迭代搜索中并未搜索到相应的道路坐标数据,在此种情况下,将下一跳搜索点作为新的目标搜索点,并再次进行迭代搜索,即重新执行步骤S106:查找与所述目标搜索点的距离为预设的第一步长的下一跳搜索点。
需要说明的是,在本实施例中,与目标搜索点对应的下一跳搜索点的数量至少为一个,并且,在一般情况下,为了尽可能的完整的对地图数据中的坐标点进行覆盖,至少设置2个或两个以上的预设搜索方向来查找与目标搜索点对应的下一跳搜索点,例如,4个预设的搜索方向或8个预设的搜索方向。如图4所示,在图4所示的应用场景中,编号P所对应的搜索方向包括了b1、b2、b3、b4这4个搜索方向,在搜索下一跳搜索点时,分别在以点P为中心的b1、b2、b3、b4这4个方向的延展方向上进行搜索。
在此种情况下,分别针对每一个下一跳搜索点确定其与目标搜索点之间的线段与道路坐标数据之间是否存在交叉点,并且,根据每一个下一跳搜索点分别执行步骤S108-S112。也就是说,在一次迭代查找完成后,在所有的下一跳搜索点中,可能存在这样一种情况,即部分下一跳搜索点与目标搜索点之间的线段与道路坐标数据之间存在交叉点,并将该交叉点添加到了交叉点集合中,也终止了与该下一跳搜索点对应的迭代;但是,还有部分下一跳搜索点与目标搜索点支架的线段与道路坐标数据之间不存在交叉点,还需要继续进行迭代搜索,即将该下一跳搜索点作为新的目标搜索点,并重新执行步骤S106-S 112。
需要说明的是,在本实施例中,除了起始搜索点作为目标搜索点时、目标搜索点是数量为1之外,在后续的迭代搜索中,目标搜索点的数量可以不只一个;并且,在目标搜索点的数量不止一个的情况下,分别针对每一个目标搜索点分别执行上述步骤S106-S112。也就是说,针对每一个目标搜索点单独的执行上述步骤S106-S112,每一个目标搜索点之间是互不干扰的;或者说,按照多线程或者并行计算的思想,分别针对每一个目标搜索点来确定与之对应的下一跳搜索点,并确定是否存在与之对应的交叉点。
需要说明的是,在本实施例中,在上述查找与目标搜索点对应的下一跳搜索点的过程中,是根据点与目标搜索点之间的距离是否为预设的第一步长来确定的。若设置较大的第一步长,在进行迭代搜索的过程中,可以较快的完成迭代搜索,减少迭代的次数,但是,相应的,较大的第一步长也对应了确定的交叉点之间的距离,或者说,确定的AOI轮廓是比较粗糙的,即较大的第一步长对应了较差的精确度。反之,若设置较小的第一步长,虽然能提高精确度,但是也会增加迭代的次数,增加AOI轮廓搜索的计算量。因此,在本实施例中,为了保证良好的精确度和较快的迭代速度,根据不同的迭代情况,采用不同的迭代步长。
具体的,所述获取所述目标搜索点与所述下一跳搜索点之间的线段与道路坐标数据的交叉点之后还包括:将所述距离阈值设置为第二步长,重新执行所述查找与所述目标搜索点的距离为距离阈值的下一跳搜索点的步骤,其中,第二步长小于第一步长。
也就是说,在迭代搜索的开始时,采用较大的迭代步长,以保证迭代速度和计算量,而在逼近AOI轮廓时,采用较小的迭代步长,以保证搜索结果的精确度。
在按照第一步长确定的与目标搜索点对应的下一跳搜索点与目标搜索点之间的线段与道路坐标数据之间存在交叉点时,目标搜索点与AOI轮廓所对应的轨迹或线条之间的距离较近,因此,在此种情况下,为了提高搜索的精确度,采用较小的第二步长针对目标搜索点重新执行步骤S106,即重新执行查找与所述目标搜索点的距离为距离阈值的下一跳搜索点的步骤。
需要说明的是,在本实施例中,查找与目标搜索点对应的下一跳搜索点时采用的预设的距离阈值可以不只第一步长和第二步长,还可以根据需要设定不止两个步长,在具体的实施过程中,在逼近AOI轮廓时缩小步长进行搜索,直至采用的步长为预设步长的最小值。
步骤S114:根据所述交叉点集合中的交叉点的位置确定AOI。
具体实施例中,在根据上述迭代搜索的过程中,在每一个下一跳搜索点对应的迭代均因为与该下一跳搜索点对应的交叉点被获取并添加到交叉点集合中去而被终止之后,即完成了对AOI轮廓搜索的所有的交叉点集合的搜索。也就是说,AOI轮廓的搜索所需要确定的交叉点已经被全部获取,在此种情况下,即可根据交叉点集合中包含的所有的交叉点的位置来确定相应的AOI以及与该AOI对应的AOI轮廓,即与该AOI轮廓对应的道路。
需要说明的是,在本实施例中,在根据目标搜索点查找与目标搜索点对应的下一跳搜索点时,已经查找过的点不再进行查找,该下一跳搜索点可以确定是AOI对应的面数据中的面内点,而不是AOI对应的面数据的面外点或者边界点。
具体的,所述将所述下一跳搜索点作为目标搜索点之前还包括:将所述目标搜索点添加到预设的面内点集合中。也就是说,在步骤S108中,若未获取到与目标搜索点与下一跳搜索点之间的线段与道路坐标数据之间的交叉点,则说明目标搜索点与下一跳搜索点之间的线段在AOI这个面数据所对应的区域之内,因此,将该下一跳搜索点添加到预设的面内点集合中。
需要说明的是,在执行上述迭代查找之前,还需要对面内点集合进行初始化处理,即将面内点集合内的数据进行清除处理,或者新建一个空集为面内点集合。
进一步的,若在步骤S108中,获取到与目标搜索点与下一跳搜索点之间的线段与道路坐标数据之间的交叉点,则说明目标搜索点与下一跳搜索点之间的线段跨越了某一条道路,在此种情况下,目标搜索点是面内点,而下一跳搜索点为AOI对应的区域之外的点,即面外点。在此种情况下,不仅需要获取与该下一跳搜索点对应的交叉点并将该交叉点添加到预设的交叉点集合中去,还需要将该下一跳搜索点添加到预设的面外点集合中去。
具体的,所述终止所述下一跳搜索点的迭代之前还包括:将所述下一跳搜索点添加到预设的面外点集合中,建立与所述交叉点的对应关系。
需要说明的是,在执行上述迭代查找之前,还需要对面外点集合进行初始化处理,即将面外点集合中的数据进行清除处理,或者新建一个空集为面外点集合。
在另一个实施例中,在某一个AOI所对应的封闭区域的内部可能存在有断头路,例如,在图5所示的应用场景中,编号L1所示的道路即为编号L2所示的AOI轮廓内部的断头路。针对该种情况,在图6所示的应用场景中,与图5相同,编号L1所示的道路即为编号L2所示的AOI轮廓内部的断头路,在以Q1为目标搜索点的迭代搜索中,Q2会被判定为面外点,Q1为面内点,而X1为交叉点;反之,在以Q2为目标搜索点的迭代搜索中,Q1会被判定为面外点,Q2为面内点,X1为交叉点。而在实际情况中,AOI是一个封闭的区域,面内点与面外点之间不可能存在交集,即一个点不可能同时为面内点和面外点;而在本实施例中,上述Q1、Q2均为面内点。
针对上述情况,在本实施例中,所述将所述下一跳搜索点添加到预设的面外点集合中之前还包括:查找面内点集合中是否包括与所述下一跳搜索点的位置相同的搜索点,在未查找到时,则执行将所述下一跳搜索点添加到预设的面外点集合中,建立与所述交叉点的对应关系的步骤。
也就是说,在因为目标搜索点与下一跳搜索点之间的线段与道路坐标数据之间存在交叉点而终止迭代并对应的下一跳搜索点添加到面外点集合中之前,还需要判断该下一跳搜索点是否已经被标识为面内点,若否,则说明该下一跳搜索点确实为面外点;若是,则说明该下一跳搜索点对应的交叉点并不是AOI的轮廓所对应的闭合的道路上的点,而是在该AOI内部的断头路上的点,在此种情况下,将查找到的搜索点从所述面外点集合中移除,将所述查找到的搜索点对应的交叉点在所述交叉点集合中移除。
在本实施例中,每一个交叉点的确定都是因为某一个目标搜索点与某一个下一跳搜索点之间的线段与道路坐标数据的交叉而确定的,也就是说,每一个交叉点对应了一个目标搜索点,也对应了一个下一跳搜索点。因此,交叉点与相应的目标搜索点、下一跳搜索点之间是对应的,根据交叉点可以确定与之对应的目标搜索点一级下一跳搜索点。
在另一个实施例中,还可以是在搜索完成之后,在面内点集合和面外点集合中查找,是否存在某一个搜索点既属于面内点集合,又属于面外点集合,也就是说,并不是在将某一个搜索点添加到面内点集合或者面外点集合之前对该需要被添加的搜索点进行判断,而是在所有的搜索完成之后再进行验证。
具体的,所述将所述目标搜索点添加到预设的面内点集合中之后还包括:查找位置相同但既属于所述面外点集合又属于面内点集合的搜索点,若查找到,则将查找到的搜索点从所述面外点集合中移除,将所述查找到的搜索点对应的交叉点在所述交叉点集合中移除。
在终止了对于所有的下一跳搜索点的迭代搜索之后,对面内点集合和面外点集合中包含的所有的搜索点进行验证,确定是否存在某一个点或者某几个点即包含在面内点集合中,又包含在面外点集合中;例如,遍历面内点集合中的每一个搜索点,在面外点集合中查找与该遍历到的面内点一致的搜索点,若查找到,则判定该搜索点为位置相同但既属于所述面外点集合又属于面内点集合的搜索点,并将该搜索点从面外点集合中移除,并将与该搜索点对应的交叉点从交叉点集合中移除,但是,与之对应的面内点集合中的面内点并不需要从面内点集合中移除。
进一步的,在本实施例中,在迭代搜索终止之后,在交叉点集合确定之后,即可根据交叉点集合确定相应的AOI,也就是说,根据交叉点集合中包含的每一个交叉点的坐标或位置确定相应的AOI的轮廓。
但是,并不是按照上述AOI轮廓的搜索得到的结果一定是准备的,在本实施例中,还需要对上述迭代搜索得到的结果进行校验。
具体的,所述根据所述交叉点集合中的交叉点的位置确定AOI之后还包括:根据所述交叉点集合中交叉点的位置确定所述AOI的轮廓,判断所述轮廓是否存在相交,若是,则判定所述AOI无效。
根据交叉点集合中确定的所有的交叉点,挑选出一个起始交叉点(例如,在地图上位于最左上角的交叉点为起始交叉点),并从该起始交叉点开始,在剩余的交叉点中查找与该起始交叉点距离最近的一个交叉点,再在剩余的交叉点中寻找与该交叉点最近的下一个交叉点,直至交叉点集合中的所有的点均被查找到,按照查找顺序将所有的交叉点连接起来,并且将第一个起始交叉点与最后一个交叉点连接,形成一个闭合的线路,即为AOI的轮廓。
需要说明的是,在本实施例中,AOI的轮廓可以是不规则的闭合环,并且,AOI的轮廓内部不存在上述交叉点集合中的交叉点,若存在,则说明该确定的AOI不合法或者确定的AOI是错误的,在此种情况下,判定该确定的AOI是非法的。
进一步的,上述AOI的轮廓是由多个交叉点集合中的交叉点之间的多个线段首尾相连组成的线条或轨迹,并且,任意两个线段之间是不相交的。若在上述确定的交叉点集合中存在某两条由交叉点集合组成的线段之间是相交的,则说明由该交叉点确定的AOI的轮廓并不是一个闭合的环,是不合法的,在此种情况下,判定确定的AOI是非法的。
此外,为解决传统技术中AOI轮廓的确定中成本耗费过大、准确率不足的技术问题,在一个实施例中,如图7所示,还提出了一种AOI轮廓的搜索装置,包括起始搜索点确定模块102、目标搜索点确定模块104、下一跳搜索点查找模块106、交叉点获取模块108、迭代终止模块110、目标搜索点重新确定模块112以及AOI确定模块114,其中:
起始搜索点确定模块102,用于确定起始搜索点,获取所述起始搜索点对应的道路坐标数据;
目标搜索点确定模块104,用于将起始搜索点作为目标搜索点进行迭代查找;
下一跳搜索点查找模块106,用于查找与所述目标搜索点的距离为距离阈值的下一跳搜索点,所述距离阈值为第一步长;
交叉点获取模块108,用于获取所述目标搜索点与所述下一跳搜索点之间的线段与道路坐标数据的交叉点;
迭代终止模块110,用于将所述交叉点添加到预设的交叉点集合中,终止所述下一跳搜索点的迭代;
目标搜索点重新确定模块112,用于在未获取到交叉点时,将所述下一跳搜索点作为目标搜索点,并调用所述下一跳搜索点查找模块106;
AOI确定模块114,用于根据所述交叉点集合中的交叉点的位置确定AOI。
可选的,在一个实施例中,下一跳搜索点查找模块106还用于查找与所述目标搜索点在预设搜索方向上延展的距离为预设的第一步长的下一跳搜索点,所述预设搜索方向的数量为至少一个。
可选的,在一个实施例中,如图7所示,上述装置还包括第二步长搜索模块116,用于将所述距离阈值设置为第二步长,并调用所述下一跳搜索点查找模块106。
可选的,在一个实施例中,如图7所示,上述装置还包括面内点添加模块118和面外点添加模块120,其中:所述面内点添加模块118用于将所述目标搜索点添加到预设的面内点集合中;所述面外点添加模块120用于将所述下一跳搜索点添加到预设的面外点集合中,建立与所述交叉点的对应关系。
可选的,在一个实施例中,如图7所示,上述装置还包括搜索点验证模块122,用于查找面内点集合中是否包括与所述下一跳搜索点的位置相同的搜索点,在未查找到时,调用所述面外点添加模块120。
可选的,在一个实施例中,如图7所示,上述装置还包括交叉点验证模块124,用于查找位置相同但既属于所述面外点集合又属于面内点集合的搜索点,若查找到,则将查找到的搜索点从所述面外点集合中移除,将所述查找到的搜索点对应的交叉点在所述交叉点集合中移除。
可选的,在一个实施例中,如图7所示,上述装置还包括AOI验证模块126,用于根据所述交叉点集合中交叉点的位置确定所述AOI的轮廓,判断所述轮廓是否存在相交,若是,则判定所述AOI无效。
实施本发明实施例,将具有如下有益效果:
采用了上述AOI轮廓的搜索方法和装置之后,在需要确定AOI以及与该AOI对应的轮廓时,从一个搜索点为目标搜索点开始按照预设的迭代规则查找与之对应的下一跳搜索点,然后判断该目标搜索点与下一跳搜索点之间是否存在交叉点,若存在交叉点,则将该交叉点判定为AOI轮廓上的一个坐标点;若不存在,则判定该目标搜索点和下一跳搜索点均在AOI轮廓内部,并以该下一跳搜索点为目标搜索点开始重新查找与该点对应的下一跳搜索点,直至每一个下一跳搜索点确定了一个交叉点并终止了与该搜索点对应的迭代查找,从而确定与AOI轮廓对应的所有的交叉点,然后根据确定的所有的交叉点确定AOI以及与该AOI对应的AOI轮廓。也就是说,从一个搜索点开始不断确定目标区域AOI内的内部的点、边界上的点、外部的点,从而可以准确的确定目标区域AOI所对应的区域和区域边界,提高了确定的AOI以及AOI轮廓的准备性。
在一个实施例中,如图8所示,图8展示了一种运行上述AOI轮廓的搜索方法的基于冯诺依曼体系的计算机系统的终端。该计算机系统可以是智能手机、平板电脑、掌上电脑、笔记本电脑或个人电脑等终端设备。具体的,可包括通过系统总线连接的外部输入接口1001、处理器1002、存储器1003和输出接口1004。其中,外部输入接口1001可选的可至少包括网络接口10012。存储器1003可包括外存储器10032(例如硬盘、光盘或软盘等)和内存储器10034。输出接口1004可至少包括显示屏10042等设备。
在本实施例中,本方法的运行基于计算机程序,该计算机程序的程序文件存储于前述基于冯诺依曼体系的计算机系统的外存储器10032中,在运行时被加载到内存储器10034中,然后被编译为机器码之后传递至处理器1002中执行,从而使得基于冯诺依曼体系的计算机系统中形成逻辑上的起始搜索点确定模块102、目标搜索点确定模块104、下一跳搜索点查找模块106、交叉点获取模块108、迭代终止模块110、目标搜索点重新确定模块112、AOI确定模块114、第二步长搜索模块116、面内点添加模块118、面外点添加模块120、搜索点验证模块122、交叉点验证模块124以及AOI验证模块126。且在上述AOI轮廓的搜索方法执行过程中,输入的参数均通过外部输入接口1001接收,并传递至存储器1003中缓存,然后输入到处理器1002中进行处理,处理的结果数据或缓存于存储器1003中进行后续地处理,或被传递至输出接口1004进行输出。
具体的,上述处理器1002还用于执行如下步骤:
确定起始搜索点,获取所述起始搜索点对应的道路坐标数据;
将起始搜索点作为目标搜索点进行迭代查找,查找与所述目标搜索点的距离为距离阈值的下一跳搜索点,所述距离阈值为第一步长;
获取所述目标搜索点与所述下一跳搜索点之间的线段与道路坐标数据的交叉点,将所述交叉点添加到预设的交叉点集合中,终止所述下一跳搜索点的迭代;
在未获取到交叉点时,将所述下一跳搜索点作为目标搜索点,执行所述查找与所述目标搜索点的距离为预设的第一步长的下一跳搜索点的步骤;
根据所述交叉点集合中的交叉点的位置确定AOI。
可选的,在一个实施例中,上述处理器1002还用于执行查找与所述目标搜索点在预设搜索方向上延展的距离为预设的第一步长的下一跳搜索点,所述预设搜索方向的数量为至少一个。
可选的,在一个实施例中,上述处理器1002还用于执行将所述距离阈值设置为第二步长,重新执行所述查找与所述目标搜索点的距离为距离阈值的下一跳搜索点的步骤。
可选的,在一个实施例中,上述处理器1002还用于执行将所述目标搜索点添加到预设的面内点集合中;将所述下一跳搜索点添加到预设的面外点集合中,建立与所述交叉点的对应关系。
可选的,在一个实施例中,上述处理器1002还用于执行查找面内点集合中是否包括与所述下一跳搜索点的位置相同的搜索点,在未查找到时,则执行将所述下一跳搜索点添加到预设的面外点集合中,建立与所述交叉点的对应关系的步骤。
可选的,在一个实施例中,上述处理器1002还用于执行查找位置相同但既属于所述面外点集合又属于面内点集合的搜索点,若查找到,则将查找到的搜索点从所述面外点集合中移除,将所述查找到的搜索点对应的交叉点在所述交叉点集合中移除。
可选的,在一个实施例中,上述处理器1002还用于执行根据所述交叉点集合中交叉点的位置确定所述AOI的轮廓,判断所述轮廓是否存在相交,若是,则判定所述AOI无效。
以上所揭露的仅为本发明较佳实施例而已,当然不能以此来限定本发明之权利范围,因此依本发明权利要求所作的等同变化,仍属本发明所涵盖的范围。
Claims (16)
1.一种兴趣面AOI轮廓的搜索方法,其特征在于,包括:
确定起始搜索点,获取所述起始搜索点对应的道路坐标数据,所述道路坐标数据包括相应的地图数据所对应的区域中包含的道路所对应的每一个点的坐标数据;
将起始搜索点作为目标搜索点进行迭代查找,查找与所述目标搜索点的距离为距离阈值的下一跳搜索点,所述距离阈值为第一步长;
获取所述目标搜索点与所述下一跳搜索点之间的线段与道路坐标数据的交叉点,将所述交叉点添加到预设的交叉点集合中,终止所述下一跳搜索点的迭代;
在未获取到交叉点时,将所述下一跳搜索点作为目标搜索点,执行所述查找与所述目标搜索点的距离为预设的第一步长的下一跳搜索点的步骤;
根据所述交叉点集合中的交叉点的位置确定AOI。
2.根据权利要求1所述的AOI轮廓的搜索方法,其特征在于,所述查找与所述目标搜索点的距离为预设的第一步长的下一跳搜索点包括:
查找与所述目标搜索点在预设搜索方向上延展的距离为预设的第一步长的下一跳搜索点,所述预设搜索方向的数量为至少一个。
3.根据权利要求1所述的AOI轮廓的搜索方法,其特征在于,所述获取所述目标搜索点与所述下一跳搜索点之间的线段与道路坐标数据的交叉点之后还包括:
将所述距离阈值设置为第二步长,重新执行所述查找与所述目标搜索点的距离为距离阈值的下一跳搜索点的步骤。
4.根据权利要求1所述的AOI轮廓的搜索方法,其特征在于,所述将所述下一跳搜索点作为目标搜索点之前还包括:
将所述目标搜索点添加到预设的面内点集合中;
所述终止所述下一跳搜索点的迭代之前还包括:
将所述下一跳搜索点添加到预设的面外点集合中,建立与所述交叉点的对应关系。
5.根据权利要求4所述的AOI轮廓的搜索方法,其特征在于,所述将所述下一跳搜索点添加到预设的面外点集合中之前还包括:
查找面内点集合中是否包括与所述下一跳搜索点的位置相同的搜索点,在未查找到时,则执行将所述下一跳搜索点添加到预设的面外点集合中,建立与所述交叉点的对应关系的步骤。
6.根据权利要求4所述的AOI轮廓的搜索方法,其特征在于,所述将所述目标搜索点添加到预设的面内点集合中之后还包括:
查找位置相同但既属于所述面外点集合又属于面内点集合的搜索点,若查找到,则将查找到的搜索点从所述面外点集合中移除,将所述查找到的搜索点对应的交叉点在所述交叉点集合中移除。
7.根据权利要求1至6任一所述的AOI轮廓的搜索方法,其特征在于,所述根据所述交叉点集合中的交叉点的位置确定AOI之后还包括:
根据所述交叉点集合中交叉点的位置确定所述AOI的轮廓,判断所述轮廓是否存在相交,若是,则判定所述AOI无效。
8.一种兴趣面AOI轮廓的搜索装置,其特征在于,包括:
起始搜索点确定模块,用于确定起始搜索点,获取所述起始搜索点对应的道路坐标数据,所述道路坐标数据包括相应的地图数据所对应的区域中包含的道路所对应的每一个点的坐标数据;
目标搜索点确定模块,用于将起始搜索点作为目标搜索点进行迭代查找;
下一跳搜索点查找模块,用于查找与所述目标搜索点的距离为距离阈值的下一跳搜索点,所述距离阈值为第一步长;
交叉点获取模块,用于获取所述目标搜索点与所述下一跳搜索点之间的线段与道路坐标数据的交叉点;
迭代终止模块,用于将所述交叉点添加到预设的交叉点集合中,终止所述下一跳搜索点的迭代;
目标搜索点重新确定模块,用于在未获取到交叉点时,将所述下一跳搜索点作为目标搜索点,并调用所述下一跳搜索点查找模块;
AOI确定模块,用于根据所述交叉点集合中的交叉点的位置确定AOI。
9.根据权利要求8所述的AOI轮廓的搜索装置,其特征在于,所述下一跳搜索点查找模块还用于查找与所述目标搜索点在预设搜索方向上延展的距离为预设的第一步长的下一跳搜索点,所述预设搜索方向的数量为至少一个。
10.根据权利要求8所述的AOI轮廓的搜索装置,其特征在于,所述装置还包括第二步长搜索模块,用于将所述距离阈值设置为第二步长,并调用所述下一跳搜索点查找模块。
11.根据权利要求8所述的AOI轮廓的搜索装置,其特征在于,所述装置还包括面内点添加模块和面外点添加模块,其中:
所述面内点添加模块用于将所述目标搜索点添加到预设的面内点集合中;
所述面外点添加模块用于将所述下一跳搜索点添加到预设的面外点集合中,建立与所述交叉点的对应关系。
12.根据权利要求11所述的AOI轮廓的搜索装置,其特征在于,所述装置还包括搜索点验证模块,用于查找面内点集合中是否包括与所述下一跳搜索点的位置相同的搜索点,在未查找到时,调用所述面外点添加模块。
13.根据权利要求11所述的AOI轮廓的搜索装置,其特征在于,所述装置还包括交叉点验证模块,用于查找位置相同但既属于所述面外点集合又属于面内点集合的搜索点,若查找到,则将查找到的搜索点从所述面外点集合中移除,将所述查找到的搜索点对应的交叉点在所述交叉点集合中移除。
14.根据权利要求8至13任一所述的AOI轮廓的搜索装置,其特征在于,所述装置还包括AOI验证模块,用于根据所述交叉点集合中交叉点的位置确定所述AOI的轮廓,判断所述轮廓是否存在相交,若是,则判定所述AOI无效。
15.一种终端,其特征在于,所述终端包括处理器和存储装置,所述处理器和存储装置相互连接,其中,所述存储装置用于存储计算机程序,所述计算机程序包括程序指令,所述处理器被配置用于调用所述程序指令,执行如权利要求1-7任一项所述的方法。
16.一种计算机存储介质,其特征在于,该计算机存储介质中存储有程序指令,该程序指令被执行时,用于实现如权利要求1-7任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710150698.9A CN108572999B (zh) | 2017-03-14 | 2017-03-14 | 兴趣面aoi轮廓的搜索方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710150698.9A CN108572999B (zh) | 2017-03-14 | 2017-03-14 | 兴趣面aoi轮廓的搜索方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108572999A CN108572999A (zh) | 2018-09-25 |
CN108572999B true CN108572999B (zh) | 2022-06-24 |
Family
ID=63577231
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710150698.9A Active CN108572999B (zh) | 2017-03-14 | 2017-03-14 | 兴趣面aoi轮廓的搜索方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108572999B (zh) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110968657B (zh) * | 2018-09-30 | 2023-04-07 | 百度在线网络技术(北京)有限公司 | 感兴趣区域查询方法、装置、设备及计算机可读介质 |
CN109191853B (zh) * | 2018-10-26 | 2021-07-09 | 江苏智通交通科技有限公司 | 城市道路交警执勤岗点配置方法 |
CN109994038B (zh) * | 2019-02-20 | 2020-08-28 | 北京三快在线科技有限公司 | 不规则区域内兴趣点确定方法、装置、电子设备 |
CN109933638B (zh) * | 2019-03-19 | 2023-05-23 | 腾讯科技(深圳)有限公司 | 基于电子地图的目标区域轮廓确定方法、装置及存储介质 |
CN110502705A (zh) * | 2019-07-16 | 2019-11-26 | 贝壳技术有限公司 | 一种基于智能终端的电子地图搜索的方法及装置 |
CN114077979B (zh) * | 2020-08-18 | 2024-05-28 | 北京三快在线科技有限公司 | 一种确定配送服务范围的方法及装置 |
CN112257207B (zh) * | 2020-10-27 | 2021-08-06 | 智慧足迹数据科技有限公司 | 一种路网边界确定方法、装置、电子设备和存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103500217A (zh) * | 2013-10-09 | 2014-01-08 | 北京火信网络科技有限公司 | 兴趣区域的识别服务的提供方法和系统 |
CN103631888A (zh) * | 2013-11-15 | 2014-03-12 | 北京火信网络科技有限公司 | 基于位置的多数据源的数据搜索方法和装置 |
CN104596527A (zh) * | 2013-10-31 | 2015-05-06 | 北京四维图新科技股份有限公司 | 一种划分各级引导道路和细街路的方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2006036866A1 (en) * | 2004-09-27 | 2006-04-06 | Travelocity.Com Lp | System, method and computer program product for searching amd retrieving ranked points of interest within a polygonal area of interest |
-
2017
- 2017-03-14 CN CN201710150698.9A patent/CN108572999B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103500217A (zh) * | 2013-10-09 | 2014-01-08 | 北京火信网络科技有限公司 | 兴趣区域的识别服务的提供方法和系统 |
CN104596527A (zh) * | 2013-10-31 | 2015-05-06 | 北京四维图新科技股份有限公司 | 一种划分各级引导道路和细街路的方法 |
CN103631888A (zh) * | 2013-11-15 | 2014-03-12 | 北京火信网络科技有限公司 | 基于位置的多数据源的数据搜索方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
CN108572999A (zh) | 2018-09-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108572999B (zh) | 兴趣面aoi轮廓的搜索方法及装置 | |
US10627241B2 (en) | Map-centric map matching method and apparatus | |
US10109082B2 (en) | System and method for generating signal coverage information from client metrics | |
CN109478184B (zh) | 识别、处理和显示数据点聚类 | |
US9671234B2 (en) | System and method for acquiring map portions based on expected signal strength of route segments | |
CN111044056B (zh) | 基于道路匹配的定位方法、芯片子系统及电子设备 | |
CN108225341B (zh) | 车辆定位方法 | |
JP2018119984A (ja) | 自動的に決定された出発点と選択された目的地との間のナビゲーション案内 | |
CN112233240B (zh) | 三维矢量地图的三维矢量数据切片方法、装置及电子设备 | |
CN111651685A (zh) | 一种兴趣点获取方法、装置、电子设备及存储介质 | |
EP3023740B1 (en) | Method, apparatus and computer program product for route matching | |
CN104090927B (zh) | 一种基于电子地图的划线搜索方法和装置 | |
US20130328879A1 (en) | Scalable and Efficient Cutting of Map Tiles | |
CN111611992B (zh) | 确定兴趣面的方法、装置和计算机设备 | |
CN107391516B (zh) | 公交站点聚合方法及装置 | |
CN113450455A (zh) | 用于生成停车场的道路链路的地图的方法、设备和计算机程序产品 | |
CN110555086A (zh) | 网格内资源点归属方法及装置 | |
CN116935656B (zh) | 道路交通数据处理方法、装置、电子设备及存储介质 | |
JP2003207358A (ja) | 道案内装置及びプログラム | |
CN112948517B (zh) | 区域位置标定方法、装置及电子设备 | |
CN108898862A (zh) | 红绿灯路口的确定方法、装置及电子设备 | |
CN113868518A (zh) | 热力图生成方法、装置、电子设备及存储介质 | |
CN113468198B (zh) | 地图更新方法、装置、电子设备和介质 | |
CN112798006B (zh) | 一种不同路径的差异点分析方法、装置、存储介质及终端 | |
CN116465394B (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 |