掌桥专利:专业的专利平台
掌桥专利
首页

技术领域

本发明涉及计算机应用技术领域,具体地说是一种POI标签的分级展示方法、系统及装置。

背景技术

近年来,全球很多企业都致力于在其开发、生产等过程中应用数字孪生系统。POI是“Point of Interest”的缩写,中文可以翻译为“兴趣点”。一个POI可以是一栋房子、一个商铺、一个邮筒、一个公交站等。POI的数量在一定程度代表着整个系统的价值。

但是,POI数量过大会占用大量CPU内存资源,导致客户端有可能出现卡顿甚至崩溃,且平面化的图标不能体现实际POI的远近关系的技术问题。

发明内容

本发明的技术任务是针对以上不足之处,提供一种POI标签的分级展示方法、系统及装置,可以提高POI信息的有序性、分类性,使三维场景中的POI标签分层级、分类展示。

本发明解决其技术问题所采用的技术方案是:

一种POI标签的分级展示方法,基于Unreal Engine的可视化编程,设计算法以根据不同的相机距离显示不同层级的POI;

该方法的实现包括项目创建、相机创建、相机数据获取、距离算法与POI标签的显隐实现,通过获取相机到模型的距离,在Unreal Engine中将POI标签按照相机到模型的距离进行分级渲染表现,实现三维场景中的POI标签分层级、分类展示。

该方法基于Unreal Engine实现POI标签的分级展示,围绕Unreal Engine的可视化编程知识内容,建设以POI标签为核心,通过获取相机到模型距离,在Unreal Engine将POI标签按照相机到模型距离进行分级渲染表现。用于POI的整理及展示,以可视化编程为支撑,提升用户体验。

优选的,所述相机创建,创建C++相机;在UE4蓝图里设置相机,实现蓝图相机,从而实现距离与分级的换算算法。

优选的,所述POI标签的显隐实现,设置POI标签的分级方式,包括POI标签的分级与背景颜色的对应关系、POI标签的分级与样式的对应关系。

优选的,所述项目创建的实现包括创建项目、项目设置和创建场景,实现过程如下:

1)、创建项目:打开UE4启动器,选择虚幻引擎Unreal Engine,点击启动按钮;

2)、项目设置:点击新建项目,选择创建C++项目,选择没有初学者内容,设置好项目名,然后点击创建项目;

3)、创建场景:在内容浏览器中右键选择创建新关卡。

优选的,所述相机创建的实现过程如下:

1)、创建一个C++类继承自Pawn,取名CameraPawn;

2)、首先在.h文件中添加springArmComponent以及CameraComponent两个组件;

3)、在.cpp文件中pawn的构造函数中初始化创建这些组件同时需要一个根组件,把SpringArm放到根组件上,再把camera放到SpringArm上;

4)、通过轴映射以及操作映射对应按键以及鼠标事件;

5)、在SetupPlayerInputComponent函数中绑定映射操作;

6)、编写函数以响应缩放、旋转、平移动作。

优选的,所述相机数据获取实现过程如下:

1)、在Unreal Engine中,以CameraPawn为父类创建蓝图BP_CameraPawn;

2)、在BP_CameraPawn蓝图中,注册Event Tick事件,在此事件中,获取到相机的springArmComponent组件的长度,并将此长度存储到本地Float变量distance中;完成此操作后,distance就是相机到地面的实时距离。

优选的,所述距离算法实现如下:

1)、创建蓝图POIController继承自Actor;

2)、在蓝图中获取Camera蓝图,得到变量distance,根据变量distance计算分级并存储至本地变量DistanceLevel;

3)、创建事件分发器OnPOILevelChangedEvent,当distance变量有变化时,就调用事件分发器触发事件OnPOILevelChangedEvent,传入参数DistanceLevel。

优选的,POI标签的显隐实现过程如下:

1)、创建新的蓝图类,继承自actor;

2)、双击进入蓝图类,添加组件widget,显示类型选择屏幕类型;

3)、在POI标签蓝图中,创建一个int类型的层级变量distanceLevel,用于存储当前POI标签的所属层级:

4)、创建POI标签的显示与隐藏方法,注册POIController上的OnPOILevelChangedEvent事件,监听到与自身层级一样的DistanceLevel时,相应调用显示与隐藏的方法;

5)、添加并调用方法IntPOI,不同的层级,POI标签背景与样式会不同的展现。

本方法依托Unreal Engine的可视化编程技术,设计算法以根据不同的相机距离显示不同层级的POI,可以提高POI信息的有序性、分类性。

本发明还要求保护一种POI标签的分级展示系统,包括项目创建、相机创建、相机数据获取、距离算法与POI标签的显隐实现;

该系统实现上述的POI标签的分级展示方法。

本发明还要求保护一种POI标签的分级展示装置,包括:至少一个存储器和至少一个处理器;

所述至少一个存储器,用于存储机器可读程序;

所述至少一个处理器,用于调用所述机器可读程序,实现上述的POI标签的分级展示方法。

本发明的一种POI标签的分级展示方法、系统及装置与现有技术相比,具有以下有益效果:

相比目前POI标签的构建方法,本方法能够将POI标签实现分级、分类展示,将POI标签根据不同的业务需求进行适当隐藏与显示。

在业务方面,可以在不同的地图层级中展示侧重点不同的POI标签,突出业务重点并且能够直观感受到当前地图缩放层级,提升用户体验;在系统逻辑中,由于POI标签的分类与隐藏,可以提升系统的运行效率,降低卡顿崩溃概率。

附图说明

图1是本发明实施例提供的POI标签的分级展示方法实现流程示图;

图2是本发明实施例提供的POI标签的分级展示方法效果示图。

具体实施方式

下面结合具体实施例对本发明作进一步说明。

一种POI标签的分级展示方法,基于Unreal Engine的可视化编程,设计算法以根据不同的相机距离显示不同层级的POI;

该方法的实现包括项目创建、相机创建、相机数据获取、距离算法与POI标签的显隐实现,通过获取相机到模型的距离,在Unreal Engine中将POI标签按照相机到模型的距离进行分级渲染表现,实现三维场景中的POI标签分层级、分类展示。所述相机创建,创建C++相机;在UE4蓝图里设置相机,实现蓝图相机,从而实现距离与分级的换算算法。如图1所示。

所述POI标签的显隐实现,设置POI标签的分级方式,包括POI标签的分级与背景颜色的对应关系、POI标签的分级与样式的对应关系。

所述项目创建的实现包括创建项目、项目设置和创建场景,实现过程如下:

1)、创建项目:打开UE4启动器,选择虚幻引擎Unreal Engine,点击“启动”按钮;

2)、项目设置:点击“新建项目”,选择创建“C++项目”,选择“没有初学者内容”,设置好项目名,然后点击创建项目;

3)、创建场景:在内容浏览器中右键选择创建新关卡。

所述相机创建的实现过程如下:

1)、创建一个C++类继承自Pawn,取名CameraPawn;

2)、首先在.h文件中添加springArmComponent以及CameraComponent两个组件;

3)、在.cpp文件中pawn的构造函数中初始化创建这些组件同时需要一个根组件,把SpringArm放到根组件上,再把camera放到SpringArm上;

4)、通过轴映射以及操作映射对应按键以及鼠标事件;

5)、在SetupPlayerInputComponent函数中绑定映射操作;

6)、编写函数以响应缩放、旋转、平移动作。

所述相机数据获取实现过程如下:

1)、在Unreal Engine中,以CameraPawn为父类创建蓝图BP_CameraPawn;

2)、在BP_CameraPawn蓝图中,注册Event Tick事件,在此事件中,获取到相机的springArmComponent组件的长度,并将此长度存储到本地Float变量distance中;完成此操作后,distance就是相机到地面的实时距离。

所述距离算法实现如下:

1)、创建蓝图POIController继承自Actor;

2)、在蓝图中获取Camera蓝图,得到变量distance,根据变量distance计算分级并存储至本地变量DistanceLevel;

3)、创建事件分发器OnPOILevelChangedEvent,当distance变量有变化时,就调用事件分发器触发事件OnPOILevelChangedEvent,传入参数DistanceLevel。

POI标签的显隐实现过程如下:

1)、创建新的蓝图类,继承自actor;

2)、双击进入蓝图类,添加组件widget,显示类型选择“屏幕”类型;

3)、在POI标签蓝图中,创建一个int类型的层级变量distanceLevel,用于存储当前POI标签的所属层级:

4)、创建POI标签的显示与隐藏方法,注册POIController上的OnPOILevelChangedEvent事件,监听到与自身层级一样的DistanceLevel时,相应调用显示与隐藏的方法;

5)、添加并调用方法IntPOI,不同的层级,POI标签背景与样式会不同的展现。

本方法依托Unreal Engine的可视化编程技术,设计算法以根据不同的相机距离显示不同层级的POI,可以提高POI信息的有序性、分类性。

本发明实施例还提供一种POI标签的分级展示系统,包括项目创建、相机创建、相机数据获取、距离算法与POI标签的显隐实现;

该系统实现上述实施例所述的POI标签的分级展示方法。

1、项目创建:

1)、创建项目:打开UE4启动器,选择虚幻引擎Unreal Engine,点击“启动”按钮;

2)、项目设置:点击“新建项目”,选择创建“C++项目”,选择“没有初学者内容”,设置好项目名,然后点击创建项目;

3)、创建场景:在内容浏览器中右键选择创建新关卡。

2、相机创建:

1)、创建一个C++类继承自Pawn,取名CameraPawn;

2)、首先在.h文件中添加springArmComponent以及CameraComponent两个组件;

3)、在.cpp文件中pawn的构造函数中初始化创建这些组件同时需要一个根组件,把SpringArm放到根组件上,再把camera放到SpringArm上;

4)、通过轴映射以及操作映射对应按键以及鼠标事件;

5)、在SetupPlayerInputComponent函数中绑定映射操作;

6)、编写函数以响应缩放、旋转、平移动作。

3、相机数据获取:

1)、在Unreal Engine中,以CameraPawn为父类创建蓝图BP_CameraPawn;

2)、在BP_CameraPawn蓝图中,注册Event Tick事件,在此事件中,获取到相机的springArmComponent组件的长度,并将此长度存储到本地Float变量distance中;完成此操作后,distance就是相机到地面的实时距离。

4、距离算法:

1)、创建蓝图POIController继承自Actor;

2)、在蓝图中获取Camera蓝图,得到变量distance,根据变量distance计算分级并存储至本地变量DistanceLevel;

3)、创建事件分发器OnPOILevelChangedEvent,当distance变量有变化时,就调用事件分发器触发事件OnPOILevelChangedEvent,传入参数DistanceLevel。

5、POI标签的显隐实现:

1)、创建新的蓝图类,继承自actor;

2)、双击进入蓝图类,添加组件widget,显示类型选择屏幕类型;

3)、在POI标签蓝图中,创建一个int类型的层级变量distanceLevel,用于存储当前POI标签的所属层级:

4)、创建POI标签的显示与隐藏方法,注册POIController上的OnPOILevelChangedEvent事件,监听到与自身层级一样的DistanceLevel时,相应调用显示与隐藏的方法;

5)、添加并调用方法IntPOI,不同的层级,POI标签背景与样式会不同的展现。

本发明实施例还提供一种POI标签的分级展示装置,包括:至少一个存储器和至少一个处理器;

所述至少一个存储器,用于存储机器可读程序;

所述至少一个处理器,用于调用所述机器可读程序,实现上述实施例所述的POI标签的分级展示方法。

通过上面具体实施方式,所述技术领域的技术人员可容易的实现本发明。但是应当理解,本发明并不限于上述的具体实施方式。在公开的实施方式的基础上,所述技术领域的技术人员可任意组合不同的技术特征,从而实现不同的技术方案。

除说明书所述的技术特征外,均为本专业技术人员的已知技术。

技术分类

06120115977881