法律状态公告日
法律状态信息
法律状态
2020-07-24
授权
授权
2018-06-22
实质审查的生效 IPC(主分类):G06F17/30 申请日:20171124
实质审查的生效
2018-05-29
公开
公开
技术领域
本发明涉及POI管理地图技术领域,具体的说,涉及一种基于虚实POI树的管理地图表达方法。
背景技术
POI(Point of Interest,兴趣点)是电子地图最重要的展示部分之一,其特征为海量数据和繁多种类,如何快速展示和定位相关的POI成为电子地图成功应用的重要筹码。
现有电子管理地图缺陷:现有电子管理地图都把POI当作一个基本的点加以搜索和处理,没有考虑过地图本身的显示其实是有层次的,也没有考虑POI本身的层次结构问题,无法表达混合层次的POI数据,而这一点在垂直应用领域,如城市安防系统、林业报警系统中显得尤为重要。
发明内容
本发明的目的是结合POI的多维内容和电子地图本身的多层次结构,提出一种基于虚实POI树的管理地图表达方法,使用虚实树而不是列表/数组来表达POI,从而从根本上解决复杂POI的地图显示问题,大大提高了显示POI的速度和效果。
为达到上述目的,本发明采用的具体技术方案如下:
一种基于虚实POI树的管理地图表达方法,首先定义所述虚实POI树为同时具有虚拟POI结点和真实POI挂接的树形结构集合,其中,所述虚拟POI结点为具有一个或一个以上归属地相同的真实POI聚合的结点,每一真实POI代表实际使用的传感器件、控制结点等实物信号点;
则每一虚拟POI结点可以查阅到其下所管辖或控制的所有真实POI的总数和每一不同类型的数量,实现便携监管统计,且显示速度大大增加。
进一步描述,包括虚实POI树的生成方法A和生成后的显示方法B,所述生成方法A具体采用如下步骤:
A1,向初始地图M0输入真实POI集合V,所述集合V中每个真实POI为当前地域管理的真实结点,且均设置有类型、区域属性;
构建行政区化的树E={e1,e2,…,ei},其中,ei表示当前地域行政区化的拟合结点,建立树E的地图层级表Dmap={D1,D2,…,Dj},j≤i,其中Dj=[aj,bj],则所述地图层级表Dmap各元素Dj表示ei在对应地图级别bj范围内所显示的行政区等级aj,Dj一般是经验数据,例如[1,1-4]、[2,5-8]、[3,9-12]、[4,13-16]、[5,16-20];
A2,新建集合Enew,将树E的内容逐一复制到集合Enew中并为集合Enew的每一结点enew增加虚拟属性,则结点enew即为所述虚拟POI结点;
A3,将集合V的每个真实POI挂接到对应归属地的结点enew上;
A4,更新集合Enew:统计每一结点enew直接和间接挂接的所有真实POI总数,若该结点为空的、无任何真实POI直接或间接挂接,则删减该结点;
A5,输出集合Enew,所述集合Enew即是虚实POI树,所述初始地图M0变为基础地图M1。
通过上述设计,每一真实POI对应挂接到其直接管辖的上级虚拟POI结点,且真实POI的不同类型均在直接或间接的虚拟POI结点上递归,使每一虚拟POI结点可以直观地查阅到当前管理的真实POI总数和各类型的数量。
更进一步描述,所述显示方法B具体采用如下步骤:
B1,向所述基础地图M1输入待查询的坐标范围[(xstart,ystart),(xend,yend)]和地图层级Dlevel;
B2,新建集合Q,并扩展所述坐标范围[(xstart,ystart),(xend,yend)];
B3,调取集合Enew,将集合Enew中所有满足扩展后的坐标范围和地图层级Dlevel的结点放入集合Q;
B4,输出集合Q,所述集合Q即为显示结果:生成的目标地图M2。
通过上述设计,在查阅时输入需要查阅的范围,则地图可在指定范围的相关区域内快速展示出当前范围内的虚拟POI结点,大大减少了对不相关的POI数据的查询和展示,加快了查阅的速度。
更进一步描述,所述步骤A2具体内容如下:
A2.1,新建集合Enew={enew1,enew2,…,enewi},从树E中依次取出结点ei令enewi=ei,并将ei的地图层级Dj添加到enewi,即enewi新增层级属性dlevel=Dj;
A2.2,为enewi设定虚拟属性isVirtual=true,表示该结点为虚拟POI结点,并设定类型集合[{type=type1,Counttype1=0},{type=type2,Counttype2=0},…,{type=typei,Counttypei=0}],其中{type=typei,Counttypei=0}表示该虚拟POI结点下直接和间接挂接的类型为typei的真实POI数量为Counttypei且初始化为0;
A2.3,返回A2.1,直到树E的所有结点ei都被取出一次为止。
通过上述设计,地图上每个行政点均设置为虚拟POI结点,且所有结点组合成层次分明的树状结构,方便其管理的真实POI挂接。
更进一步描述,所述步骤A3具体内容如下:
A3.1,将所述集合V根据类型分组,记为二元组[(V1,type1),(V2,type2),…,(Vi,typei)],其中Vi={vi1,vi2,…,vij},每一vij为一个真实POI,Vi为集合V中所有类型为typei的vij的集合;
A3.2,依次提取集合V的vij并根据其区域属性找到集合Enew中对应归属地的结点enewm;
A3.3,在所述结点enewm上新增结点enewv,令enewv=vij;
为结点enewv设定虚拟属性isVirtual=false,表示该结点为真实POI;
令enewv.parent=enewm,enewv.iCount=1,表示结点enewv指向父结点enewm,结点下真实POI计数为1;
A3.4,令所述结点enewm的真实POI总数enewm.iCount加1,该结点直接和间接挂接的类型为typev的真实POI总数Counttypev加1,所述typev为结点enewv的类型;
A3.5,返回A3.2,直到集合V中所有真实POI都被挂接到集合Enew为止。
通过上述设计,每一真实POI直接挂接到其对应的虚拟POI结点上,且将其类型归类并计算每一虚拟POI结点所直接挂接的同类型真实POI的计数。
更进一步描述,所述步骤A4具体内容如下:
A4.1,从集合Enew中从最低一级的结点enewm开始,由低到高的顺序依次为每一结点enewm更新计数器:
enewm.iCount=enewm.iCount+∑echild.iCount
其中enewm.iCount为结点enewm直接和间接挂接的真实POI总数,echild.iCount为结点enewm直接挂接的子结点的真实POI总数;
A4.2,从集合Enew中从最低一级的结点enewm开始,由低到高的顺序依次更新每一结点enewm的类型集合[{type1,Counttype1},{type2,Counttype2},…,{typei,Counttypei}]:
enewm.Counttypei=enewm.Counttypei+∑echild.Counttypei
其中enewm.Counttypei为结点enewm直接和间接挂接的类型为typei的真实POI总数,echild.Counttypei为结点enewm直接挂接的子结点上类型为typei的真实POI总数;
A4.3,删减全部enewm.iCount=0的结点,即任一结点enewm若无子结点和真实POI挂接则被删减;
删除全部enewm.Counttypei=0的类型属性{typei,Counttypei},即任一结点enewm若无直接或间接挂接类型为typei的真实POI则删除该类型属性。
通过上述设计,将每一虚拟POI结点所间接挂接的真实POI数量归结计算,并按不同类型分类递归。
更进一步描述,所述步骤B2具体内容如下:
B2.1,计算坐标范围[(xstart,ystart),(xend,yend)]的中心点(xo,yo),计算范围长度:dx=|xend-xstart|,dy=|yend-ystart|;
B2.2,扩展范围长度:dx=dx*2,dy=dy*2。
更进一步描述,所述步骤B3具体内容如下:
B3.1,依次取出集合Enew的结点enewi,判断所述地图层级Dlevel是否在enewi的对应地图级别bi范围内,是,进入步骤B3.2,否则跳到步骤B3.3;
B3.2,计算结点enewi坐标(xi,yi)与所述中心点(xo,yo)的距离:
di=|xi-xo|+|yi-yo|,
若di<(dx+dy),则将该结点enewi放入集合Q中;
B3.3,返回B3.1判断集合Enew所有结点,直至每个结点都判断一次为止。
本发明的有益效果:结合POI的多维内容和电子地图本身的多层次结构,使用虚实树而不是列表/数组来表达POI,从而从根本上解决复杂POI的地图显示问题,大大提高了显示POI的速度和效果,每一真实POI对应挂接到其直接管辖的上级虚拟POI结点,且真实POI的不同类型均在直接或间接的虚拟POI结点上递归,使每一虚拟POI结点可以直观地查阅到当前管理的真实POI总数和各类型的数量。
附图说明
图1是生成方法A的流程框图
图2是显示方法B的流程框图
图3是根据本发明获得的管理地图示意图
具体实施方式
下面结合附图及具体实施例对本发明作进一步详细说明:
一种基于虚实POI树的管理地图表达方法,定义所述虚实POI树为同时具有虚拟POI结点和真实POI挂接的树形结构集合,其中,所述虚拟POI结点为具有一个或一个以上归属地相同的真实POI聚合的结点;
包括虚实POI树的生成方法A和生成后的显示方法B。
如图1所示,所述生成方法A具体采用如下步骤:
A1,向初始地图M0输入真实POI集合V,所述集合V中每个真实POI为当前地域管理的真实结点,且均设置有类型、区域属性;
构建行政区化的树E={e1,e2,…,ei},其中,ei表示当前地域行政区化的拟合结点,建立树E的地图层级表Dmap={D1,D2,…,Dj},j≤i,其中Dj=[aj,bj],则所述地图层级表Dmap各元素Dj表示ei在对应地图级别bj范围内所显示的行政区等级aj;
A2,新建集合Enew,将树E的内容逐一复制到集合Enew中并为集合Enew的每一结点enew增加虚拟属性,则结点enew即为所述虚拟POI结点:
A2.1,新建集合Enew={enew1,enew2,…,enewi},从树E中依次取出结点
ei令enewi=ei,并将ei的地图层级Dj添加到enewi,即enewi新增层级属性dlevel=Dj;
A2.2,为enewi设定虚拟属性isVirtual=true,表示该结点为虚拟POI结点,
并设定类型集合[{type=type1,Counttype1=0},{type=type2,Counttype2=0},…,
{type=typei,Counttypei=0}],其中{type=typei,Counttypei=0}表示该虚拟POI
结点下直接和间接挂接的类型为typei的真实POI数量为Counttypei且初始化
为0;
A2.3,返回A2.1,直到树E的所有结点ei都被取出一次为止;
A3,将集合V的每个真实POI挂接到对应归属地的结点enew上:
A3.1,将所述集合V根据类型分组,记为二元组[(V1,type1),(V2,
type2),…,(Vi,typei)],其中Vi={vi1,vi2,…,vij},每一vij为一个真实
POI,Vi为集合V中所有类型为typei的vij的集合;
A3.2,依次提取集合V的vij并根据其区域属性找到集合Enew中对应归
属地的结点enewm;
A3.3,在所述结点enewm上新增结点enewv,令enewv=vij;
为结点enewv设定虚拟属性isVirtual=false,表示该结点为真实POI;
令enewv.parent=enewm,enewv.iCount=1,表示结点enewv指向父结点enewm,
结点下真实POI计数为1;
A3.4,令所述结点enewm的真实POI总数enewm.iCount加1,该结点直接
和间接挂接的类型为typev的真实POI总数Counttypev加1,所述typev为结
点enewv的类型;
A3.5,返回A3.2,直到集合V中所有真实POI都被挂接到集合Enew为止;
A4,更新集合Enew:统计每一结点enew直接和间接挂接的所有真实POI总数,若该结点为空的、无任何真实POI直接或间接挂接,则删减该结点:
A4.1,从集合Enew中从最低一级的结点enewm开始,由低到高的顺序依
次为每一结点enewm更新计数器:
enewm.iCount=enewm.iCount+∑echild.iCount
其中enewm.iCount为结点enewm直接和间接挂接的真实POI总数,
echild.iCount为结点enewm直接挂接的子结点的真实POI总数;
A4.2,从集合Enew中从最低一级的结点enewm开始,由低到高的顺序依
次更新每一结点enewm的类型集合[{type1,Counttype1},{type2,Counttype2},…,
{typei,Counttypei}]:
enewm.Counttypei=enewm.Counttypei+∑echild.Counttypei
其中enewm.Counttypei为结点enewm直接和间接挂接的类型为typei的真实
POI总数,echild.Counttypei为结点enewm直接挂接的子结点上类型为typei的真
实POI总数;
A4.3,删减全部enewm.iCount=0的结点,即任一结点enewm若无子结点和
真实POI挂接则被删减;
删除全部enewm.Counttypei=0的类型属性{typei,Counttypei},即任一结点
enewm若无直接或间接挂接类型为typei的真实POI则删除该类型属性。
A5,输出集合Enew,所述集合Enew即是虚实POI树,所述初始地图M0
变为基础地图M1;
则生成的基础地图M1如图3所示。
如图2所示,所述显示方法B具体采用如下步骤:
B1,向所述基础地图M1输入待查询的坐标范围[(xstart,ystart),(xend,yend)]和地图层级Dlevel;
B2,新建集合Q,并扩展所述坐标范围[(xstart,ystart),(xend,yend)]:
B2.1,计算坐标范围[(xstart,ystart),(xend,yend)]的中心点(xo,yo),计算
范围长度:dx=|xend-xstart|,dy=|yend-ystart|;
B2.2,扩展范围长度:dx=dx*2,dy=dy*2;
B3,调取集合Enew,将集合Enew中所有满足扩展后的坐标范围和地图层级Dlevel的结点放入集合Q:
B3.1,依次取出集合Enew的结点enewi,判断所述地图层级Dlevel是否在
enewi的对应地图级别bi范围内,是,进入步骤B3.2,否则跳到步骤B3.3;
B3.2,计算结点enewi坐标(xi,yi)与所述中心点(xo,yo)的距离:
di=|xi-xo|+|yi-yo|,
若di<(dx+dy),则将该结点enewi放入集合Q中;
B3.3,返回B3.1判断集合Enew所有结点,直至每个结点都判断一次为止;
B4,输出集合Q,所述集合Q即为显示结果:生成的目标地图M2。
机译: 用于创建和管理导航设备的兴趣点(poi)的方法,包括以全球定位系统数据的形式定义虚拟vpoi并基于vpoi识别固定的数字对象标识符
机译: 打印地图链接的POI内容管理平台系统
机译: POI兴趣点内容管理平台系统与打印地图互通