首页> 中国专利> 基于虚实POI树的管理地图表达方法

基于虚实POI树的管理地图表达方法

摘要

本发明公开一种基于虚实POI树的管理地图表达方法,首先定义所述虚实POI树为同时具有虚拟POI结点和真实POI挂接的树形结构集合,其中,所述虚拟POI结点为具有一个或一个以上归属地相同的真实POI聚合的结点,每一真实POI代表实际使用的传感器件、控制结点等实物信号点。有益效果:结合POI的多维内容和电子地图本身的多层次结构,使用虚实树而不是列表/数组来表达POI,从而从根本上解决复杂POI的地图显示问题,大大提高了显示POI的速度和效果,每一虚拟POI结点可以查阅到其下所管辖或控制的所有真实POI的总数和每一不同类型的数量,实现便携监管统计,且显示速度大大增加。

著录项

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 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。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号