基于UnrealEngine的瓦片动态加载、定位和显示方法与流程

摘要: 本发明属于地理信息数据处理,具体涉及基于unrealengine的瓦片动态加载、定位和显示方法。背景技术:1、wmts是一种基于标准化协议的地理信息服务,能够将...
基于UnrealEngine的瓦片动态加载、定位和显示方法与流程

本发明属于地理信息数据处理,具体涉及基于unrealengine的瓦片动态加载、定位和显示方法。

背景技术:

1、wmts是一种基于标准化协议的地理信息服务,能够将地理空间数据分割成标准化的瓦片,通过网络高效地分发和显示,其主要目的在于解决传统地理信息系统在面对大规模、高分辨率地图数据时传输和渲染方面的瓶颈。

2、传统技术通常依赖于web前端技术(如javascript、html5)结合gis库(如openlayers、leaflet)来实现wmts地图的加载和渲染,这种方法主要依赖于浏览器来解析wmts服务并渲染地图,因此存在以下问题:

3、1、数据解析速度和转换效率低;

4、2、在复杂地形和大规模数据下的渲染低效,降低了地图应用的视觉效果和交互体验。

技术实现思路

1、为解决上述背景技术中提出的问题,本发明提供基于unrealengine的瓦片动态加载、定位和显示方法,以解决现有技术数据解析速度和转换效率低,在复杂地形和大规模数据下的渲染低效,降低了地图应用的视觉效果和交互体验的问题。

2、为实现上述目的,本发明提供如下技术方案:

3、基于unrealengine的瓦片动态加载、定位和显示方法,包括以下步骤:

4、s1:初始化项目区空间索引;在unrealengine中导入瓦片项目,在unrealengine的项目区中计算最大地图范围和相机最远距离,由相机最远距离计算最远分级编号,通过最远分级编号确定瓦片项目中各层级的瓦片坐标的最小和最大编号值,各层级的精度由wmts协议定义,循环存储各层级精度和地球每度的长度,并计算每一层级的单位像素宽度和256×256瓦片的实际宽度,循环存储各层级的瓦片总数,对瓦片项目的所有矢量图层的左上、右下范围坐标进行计算,并循环计算存储各图层各子级的瓦片坐标的编号值范围区间;

5、s2:动态计算当前视窗瓦片分级;获取当前视窗中心两侧的左min、右max屏幕坐标,将屏幕坐标均转换为空间坐标,通过射线检测计算空间坐标与空间位置相交的地理坐标,根据两个地理坐标计算地理坐标间的距离,循环分级256瓦片横向辅满屏幕宽度并计算当前视窗对应的瓦片层级;

6、s3:更新需加载瓦片序列编号组,具体为:

7、s3.1:依据四叉树算法进行wmts金字塔瓦片的分级空间索引构建,获取屏幕中心点的屏幕坐标,将其转换为空间坐标,通过射线检测计算空间坐标与地表相交的国家大地2000坐标后,将空间坐标转换为经纬度坐标,根据当前视窗的瓦片分级,由经纬度坐标计算当前瓦片坐标的行号和列号;

8、s3.2:依据四叉树算法确定当前瓦片坐标的编号是否为当前瓦片左上节点,并依次添加对应右上、左下、右下四叉树节点的瓦片坐标编号;

9、s3.3:以当前分级的四叉树四节点为中心,分别计算周围九宫格对应四叉树节点编号,组成屏幕核心区6×6瓦片节点序列;

10、s3.4:获取当前节点序列相邻一周的瓦片的坐标编号,循环计算每一节点是否为四叉树左上节点,若是则代表当前四叉树节点完整,若否则依四叉树算法填充完整四节点,每新增一个瓦片节点时,立即计算存储当前瓦片编号对应的国家大地2000坐标;

11、s3.5:循环查找当前已计算四叉树的四叉节最相邻一周的瓦片坐标编号,降低当前瓦片分级,逐级完整的填充周围父节点;

12、s3.6:依次递归循环添加周围父节点的瓦片坐标,直至当前瓦片坐标超出当前级的瓦片坐标阈值,退出递归循环;

13、s4:影像瓦片多线程加载;批量更新加载每一图层时,循环将已计算的更新瓦片序列与当前图层初始化时的瓦片坐标范围进行比较判断,若超出范围则当前图层不存在的瓦片,若未超出则当前图层存在需加载的瓦片,循环瓦片编号序列多线程同步加载瓦片影像,若失败则再进行一次加载请求,成功则将立即进行当前瓦片的转换和显示更新;

14、s5:影像瓦片坐标的位置旋转缩放转和显示;当瓦片加载请求成功后,查询预计算的当前瓦片国家大地2000坐标值,将坐标值转换为空间坐标,在对应空间坐标位置实例化生成影像投影对象,并计算当前瓦片右侧和下侧对应编号的瓦片空间坐标值,通过与当前瓦片的横纵坐标x、y计算获取水平和垂直向的缩放偏移值,控制影像投影对象的相应影像缩放,再通过当前与右侧瓦片空间坐标值计算旋转偏移量,瓦片更新后,对上一次更新的瓦片序列进行比对,销毁未在更新列表中的旧投影对象,完成本轮的地图影像更新。

15、优选的,s1中,最大地图范围和相机最远距离通过unrealengine的项目区左上角和右下角坐标值进行计算。

16、优选的,s3.4中,获取当前瓦片编号对应的国家大地2000坐标的方法为:通过当前瓦片分级和坐标的行号和列号计算经纬度坐标,再使用经纬度坐标计算对应国家大地2000坐标。

17、优选的,s4中,使用16线程进行加载瓦片影像操作。

18、与现有技术相比,本发明的有益效果是:

19、本申请可实时地从wmts服务接口获取地图瓦片数据,并将其转换为unrealengine可识别的格式,这一过程需要处理数据格式的兼容性、数据量的优化以及实时性要求等关键问题,相比传统技术,本申请在数据解析速度和转换效率上显著提升,降低了数据传输和处理的延迟,提高了用户体验,利用unrealengine的先进渲染技术,如实时全局光照、阴影处理、物理材质等,本申请还可对地图数据进行高质量的渲染,同时,结合地形分级加载(lod)技术,可根据用户视角和地图细节需求动态调整渲染精度,以平衡渲染质量和性能消耗,通过优化渲染算法和参数设置,实现了在复杂地形和大规模数据下的高效渲染,提升了地图应用的视觉效果和交互体验。

1.基于unrealengine的瓦片动态加载、定位和显示方法,其特征在于,包括以下步骤:

2.根据权利要求1所述的基于unrealengine的瓦片动态加载、定位和显示方法,其特征在于,s1中,最大地图范围和相机最远距离通过unrealengine的项目区左上角和右下角坐标值进行计算。

3.根据权利要求1所述的基于unrealengine的瓦片动态加载、定位和显示方法,其特征在于,s3.4中,获取当前瓦片编号对应的国家大地2000坐标的方法为:通过当前瓦片分级和坐标的行号和列号计算经纬度坐标,再使用经纬度坐标计算对应国家大地2000坐标。

4.根据权利要求1所述的基于unrealengine的瓦片动态加载、定位和显示方法,其特征在于,s4中,使用16线程进行加载瓦片影像操作。