本申请涉及三维模型的,尤其是涉及一种基于osgb数据对三维模型进行高度监测的方法及系统。
背景技术:
1、目前三维模型获取高度通常借助cesium在前端进行三角测量获取,cesium是一个跨平台、跨浏览器的展示三维地球和地图的java script库。
2、cesium在前端进行三角测量不利于实现高度测量自动化。如何实现三维模型的高度监测自动化是本领域技术人员需要解决的技术问题。
技术实现思路
1、为了至少部分解决上述技术问题,本申请提供了一种基于osgb数据对三维模型进行高度监测的方法及系统。
2、第一方面,本申请提供的一种基于osgb数据对三维模型进行高度监测的方法采用如下的技术方案。
3、一种基于osgb数据对三维模型进行高度监测的方法,包括:
4、将两个osgb文件的模型转换为gitf规范文件;两个所述模型分别记为模型a及模型b;
5、创建瓦片树并找到根瓦片;
6、初始化监测点位;所述初始化监测点位包括:接收输入的监测点位的经纬度坐标;将所述监测点位的经纬度坐标转为以地心为原点的笛卡尔坐标;
7、对于模型a与模型b,分别基于监测点位笛卡尔坐标、根瓦片的位置以及边界体积分别找到所述监测点位的叶子瓦片a及叶子瓦片b;
8、分别计算所述叶子瓦片a及叶子瓦片b的高度以得到所述监测点位在模型a及模型b的高度;以及,
9、比较监测点位在模型a及模型b中的高度变化。
10、可选的,创建瓦片树并找到根瓦片,包括:
11、基于三维瓦片数据集找到文件入口;
12、检验数据是否符合gitf规范;
13、创建根瓦片对象;将根瓦片存储于文件入口的root中;从根瓦片开始基于3dtiles的层级结构搜索整个所述三维瓦片数据集以创建出所有3dtiles。
14、可选的,基于监测点位笛卡尔坐标、根瓦片的位置以及边界体积分别找到所述监测点位的叶子瓦片a及叶子瓦片b,包括:
15、基于模型a的盒式边界体积及地心的笛卡尔坐标系计算第一坐标区域得到x轴区域、y轴区域;其中,x轴区域范围为[transform[0][0] box[0][0]-box[1][0],transform[0][0] box[0][0] box[1][0]];y轴区域范围为[transform[0][1] box[0][1]-box[2][1],transform[0][1] box[0][1] box[2][1]];
16、判断监测点位是否位于所述第一坐标区域内;如果否,则退出计算;如果是,则根据根瓦片的子瓦片中心点位于边界体积计算子瓦片的第二坐标区域;
17、找出在所述第二坐标区域包含所述监测点位的子瓦片;以及,
18、若包含所述监测点位的子瓦片存在自瓦片,则递归计算直至叶子瓦片。
19、可选的,若判定监测点位位于所述第一坐标区域内,所述方法还包括:
20、判断子瓦片是否存在平移、旋转及缩放中的至少一个;
21、若是,则对所述子瓦片进行坐标转换。
22、可选的,所述计算所述叶子瓦片a的高度以得到所述监测点位在模型a的高度,包括:
23、获取叶子瓦片a的上层瓦片b的坐标信息;所述上层瓦片b的坐标信息包括:经纬度信息、平移信息、旋转信息、缩放信息;
24、计算叶子瓦片a相对于上层瓦片b的相对坐标;其中,叶子瓦片的相对坐标=叶子瓦片a相对于上层瓦片b的坐标*translation(叶)*matrix(叶);translation(叶)*matrix(叶)表征对叶子瓦片a的坐标作矩阵变换;
25、将叶子瓦片a的相对坐标与上层瓦片b的坐标信息相结合,进行坐标变换操作以获得叶子瓦片a相对于地球或全局坐标系的坐标信息;地球或全局坐标系=叶子瓦片a的相对坐标*translation(上层)*matrix(上层);translation(上层)*matrix(上层)表征对生成瓦片b作矩阵变换;
26、若上层瓦片b为子瓦片,则递归进行坐标变换操作以计算叶子瓦片a的全局坐标,达到根瓦片为止;
27、基于叶子瓦片a的全局坐标,获得叶子瓦片a的高度。
28、可选的,创建瓦片树并找到根瓦片,还包括:
29、缓存瓦片对象的引用;所述缓存瓦片对象的引用包括:当所述三维模型所占内存小于预设值时,瓦片缓存在内存中;当所述三维模型所占内存不小于预设值时,瓦片缓存在磁盘中。
30、第二方面,本申请提供的一种基于osgb数据对三维模型进行高度监测的方法采用如下的技术方案。
31、一种基于osgb数据对三维模型进行高度监测的系统,包括:
32、第一处理模块,用于:将两个osgb文件的模型转换为gitf规范文件;两个所述模型分别记为模型a及模型b;
33、第二处理模块,用于:创建瓦片树并找到根瓦片;
34、第三处理模块,用于:初始化监测点位;所述初始化监测点位包括:接收输入的监测点位的经纬度坐标;将所述监测点位的经纬度坐标转为以地心为原点的笛卡尔坐标;
35、第四处理模块,用于:对于模型a与模型b,分别基于监测点位笛卡尔坐标、根瓦片的位置以及边界体积分别找到所述监测点位的叶子瓦片a及叶子瓦片b;
36、第五处理模块,用于:分别计算所述叶子瓦片a及叶子瓦片b的高度以得到所述监测点位在模型a及模型b的高度;
37、第六处理模块,用于:比较监测点位在模型a及模型b中的高度变化。
38、第三方面,本申请公开一种电子设备,包括存储器和处理器,所述存储器上存储有被处理器加载并执行上述的任一方法的计算机程序。
39、第四方面,本申请公开一种计算机可读存储介质,存储有能够被处理器加载并执行上述的任一方法的计算机程序。
1.一种基于osgb数据对三维模型进行高度监测的方法,其特征在于,包括:
2.根据权利要求1所述的一种基于osgb数据对三维模型进行高度监测的方法,其特征在于,创建瓦片树并找到根瓦片,包括:
3.根据权利要求2所述的一种基于osgb数据对三维模型进行高度监测的方法,其特征在于,对于模型a,基于监测点位笛卡尔坐标、根瓦片的位置以及边界体积找到所述监测点位的叶子瓦片a,包括:
4.根据权利要求3所述的一种基于osgb数据对三维模型进行高度监测的方法,其特征在于,若判定监测点位位于所述第一坐标区域内,所述方法还包括:
5.根据权利要求4所述的一种基于osgb数据对三维模型进行高度监测的方法,其特征在于,所述计算所述叶子瓦片a的高度以得到所述监测点位在模型a的高度,包括:
6.根据权利要求5所述的一种基于osgb数据对三维模型进行高度监测的方法,其特征在于,创建瓦片树并找到根瓦片,还包括:
7.一种基于osgb数据对三维模型进行高度监测的系统,其特征在于,包括:
8.一种电子设备,其特征在于,包括存储器和处理器,所述存储器上存储有被处理器加载并执行如权利要求1至6中任一所述方法的计算机程序。
9.一种计算机可读存储介质,其特征在于,存储有能够被处理器加载并执行如权利要求1至6中任一所述方法的计算机程序。