一种大规模三维高精度地图快速生成方法与流程

文档序号:33706649发布日期:2023-03-31 21:53阅读:56来源:国知局
一种大规模三维高精度地图快速生成方法与流程

1.本发明属于gis数据可视化技术领域,具体为一种大规模三维高精度地图快速生成方法。


背景技术:

2.根据国家“十四五”发展规划主要任务的第七点,打造数字智能的智慧运输服务,为响应国家号召,大量的数字孪生应用应运而生。数字孪生的重要意义在于实现了现实物理系统向数字化模型的反馈,能够基于数字化模型进行各类仿真、分析、数据积累、挖掘,甚至可以研发出人工智能相关应用。大部分数字孪生应用离不开数字底座,也就是基于真实地理信息数据搭建的地形模型,但是地形模型因其自身规模大、数量多,生成加载成为了三维可视化环境研究的重要问题之一。
3.使用传统的建模方法来制作真实地形需要投入大量的人力物力,如果是大规模地形的人工建模,投入更是无法想象。类似unity,ue4等三维引擎已经推出了地形制作工具,只需要设置地形的大小,然后导入photoshop绘制的黑白高度图,并利用引擎中的地形笔刷工具,就能实现地形的快速生成,但是如果使用这种方法生成真实地形,需要很多繁琐的操作,比如地形大小需要手动计算,地形的高程数据也不能直接导入unity,甚至用photoshop转换成黑白高度图导入也会出现问题,而且创建大规模地形也是一大难题。
4.综上所述,通过人工建模成本高,使用unity等游戏引擎存在精度不高,高程比例不正确,生成速度不够快,还原程度达不到要求等问题。


技术实现要素:

5.本发明的目的在于提供一种大规模三维高精度地图快速生成方法,以解决背景技术中提出的现有技术中,通过人工建模成本高,使用un ity等游戏引擎存在精度不高,高程比例不正确,生成速度不够快,还原程度达不到要求的问题。
6.为解决上述技术问题,本发明所采用的技术方案是:
7.一种大规模三维高精度地图快速生成方法,包括以下步骤:
8.步骤s1,获取地理信息数据;地理信息数据包括卫星图片数据、地形高程数据以及所要生成区域的地形范围的经纬度数据;
9.步骤s2,多块地形的生成;多块地形的生成包括切分范围数据、切分高程数据和卫星影像数据;其中,切分范围数据具体为:
10.假设总地形范围为区域,解析区域范围数据,得到区域的经纬度点数据;通过计算经纬度的经纬差换算得到总地形的长宽;
11.切分高程数据和卫星影像数据具体为:高程数据和卫星影像数据根据地形的分块数量进行切割;
12.步骤s3,单块地形的生成;单块地形的生成包括以下步骤:
13.步骤s301,假设单块地形为区域,解析单块地形的区域范围数据,得到单块地形的
经纬度点数据;通过计算经纬度的经纬差换算得到单块地形的长度和宽度;
14.步骤s302,地形高程数据解析与映射,地形的高程数据通过要素的坐标值(x,y)与高程值z的组合描述地形的起伏,通过解析高程数据获得高程数据的二维数组;
15.步骤s303,卫星影像纹理映射;
16.步骤s4,完成地形生成。
17.根据上述技术方案,步骤s2中,切分范围数据得到的区域的经纬度点数据,其中左下角为经纬度最小的点,右上角为经纬度最大的点。
18.根据上述技术方案,步骤s2中,总地形的长宽的计算具体为:
[0019][0020]
式(1)中,latmin为左下角的纬度,lonmin为左下角的经度,latmax为右上角的纬度,lonmax为右上角的经度,block为分块数量;根据公式1可以得到第n块地形的左下角经纬度以及第n块地形的右上角经纬度。
[0021]
根据上述技术方案,计算经纬度的经纬差具体为:
[0022]
c=sin(lata*pi/180)*sin(latb*pi/180)+cos(lata*pi/180)*cos(latb*pi/180)*cos((lona-lonb)*pi/180)
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(2)
[0023]
distance=r*arccos(c)*pi/180)
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(3)
[0024]
其中,r为地球半径;lata为点a的纬度,lona为点a的经度,distance为两个经纬度点之间的距离,pi为圆周率,c为距离的弧度值。
[0025]
根据上述技术方案,步骤s302中,地形高程数据解析具体为:
[0026]
地形高程数据通过要素的坐标值(x,y)与高程值z的组合描述地形的起伏,通过解析高程数据可以获得高程数据的二维数组;具体为:
[0027]
altitude=z-(z(min)-z)
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(4)
[0028]
altitude为当前点的重映射高程值,z为该点原高程值,z(min)为该范围内所有高程值的最小值,z为模型空间下的最小高度值。
[0029]
根据上述技术方案,步骤s303中,卫星影像纹理映射具体包括:
[0030]
步骤a1,通过uv mapping将三维的空间坐标点转化为参数空间坐标;
[0031]
步骤a2,参数空间坐标通过变换函数转换到纹理空间坐标;
[0032]
步骤a3,纹理空间坐标通过纹理采样得到纹理值。
[0033]
根据上述技术方案,变换函数采用repeat、mirror、clamp或border中的一种。
[0034]
与现有技术相比,本发明具有以下有益效果:
[0035]
1、通过本发明中提供的方法,能够根据真实地理信息数据,包括地形范围,卫星图片,高程数据等,能够精确还原真是地形,且地形还原度高,方便了使用者使用。
[0036]
2、通过必要的参数配置,一键完成大规模地形的自动生成。通过自动解析范围文件得到地形大小,能够对范围内的地形进行分块处理,能够自动平滑高程数据,呈现出自然
过渡的视觉效果。
附图说明
[0037]
图1为本发明地形网格示意图;
[0038]
图2为本发明纹理映射过程示意图;
[0039]
图3为本发明地形分块示意图;
[0040]
图4为本发明示例示意图之一;
[0041]
图5为本发明示例示意图之二。
具体实施方式
[0042]
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0043]
实施例一
[0044]
如图1至图3所示,一种大规模三维高精度地图快速生成方法,其特征在于:包括以下步骤:
[0045]
步骤s1,获取地理信息数据;地理信息数据包括卫星图片数据、地形高程数据以及所要生成区域的地形范围的经纬度数据;
[0046]
步骤s2,多块地形的生成;多块地形的生成包括切分范围数据、切分高程数据和卫星影像数据;其中,切分范围数据具体为:
[0047]
假设总地形范围为矩形区域,解析区域范围数据,得到矩形区域的经纬度点数据;通过计算经纬度的经纬差换算得到总地形的长宽;
[0048]
切分高程数据和卫星影像数据具体为:高程数据和卫星影像数据根据地形的分块数量进行切割;
[0049]
步骤s3,单块地形的生成;单块地形的生成包括以下步骤:
[0050]
步骤s301,假设单块地形为矩形区域,解析单块地形的区域范围数据,得到单块地形的经纬度点数据;通过计算经纬度的经纬差换算得到单块地形的长度和宽度;
[0051]
步骤s302,地形高程数据解析与映射,地形的高程数据通过要素的坐标值(x,y)与高程值z的组合描述地形的起伏,通过解析高程数据获得高程数据的二维数组;
[0052]
步骤s303,卫星影像纹理映射;
[0053]
步骤s4,完成地形生成。
[0054]
进一步的,步骤s1中,地理信息数据获取通过现有数据源进行下载。例如bigemap,水经注,bing,谷歌地图等。生成真实地形模型的必要数据包括卫星图片数据,地形高程数据,所下载区域的范围经纬度数据。
[0055]
通过本发明中提供的方法,能够根据真实地理信息数据,包括地形范围,卫星图片,高程数据等,能够精确还原真是地形,且地形还原度高,方便了使用者使用。
[0056]
通过必要的参数配置,一键完成大规模地形的自动生成。通过自动解析范围文件得到地形大小,能够对范围内的地形进行分块处理,能够自动平滑高程数据,呈现出自然过
渡的视觉效果。
[0057]
根据制作好的地形模型,可以进行二次加工,比如路网的搭建,水系的制作,房屋的摆放,对数字孪生的应用提供了基础。
[0058]
实施例二
[0059]
本实施例为实施例一的进一步细化。步骤s2中,步骤s2中,切分范围数据得到的矩形区域的经纬度点数据,其中左下角为经纬度最小的点,右上角为经纬度最大的点。
[0060]
假设总地形范围为矩形区域,解析区域范围数据(这里的区域范围数据指是真实地形的经纬度边界数据,2个点可以确定一个矩形,所以获得左下角和右上角的经纬度点数据即可),得到矩形区域的经纬度点数据;左下角为经纬度最小的点,右上角为经纬度最大的点(通过bigemap地图下载器获取,其中kml格式的范围边界数据中,明确标注左下角点为经纬度最小的点,右上角为经纬度最大的点。),通过计算经纬度的经纬差换算可以得到总地形的长宽。
[0061]
总地形的长宽的计算具体为:
[0062][0063]
式(1)中,latmin为左下角的纬度,lonmin为左下角的经度,latmax为右上角的纬度,lonmax为右上角的经度,block为分块数量;根据公式1可以得到第n块地形的左下角经纬度以及第n块地形的右上角经纬度。
[0064]
实施例三
[0065]
本实施例为实施例一的进一步细化。步骤s301中,假设单块地形为矩形区域,解析单块地形的区域范围数据,得到单块地形的经纬度点数据;通过计算经纬度的经纬差换算得到单块地形的长度和宽度;具体为:
[0066]
根据步骤s1中获取的所要生成区域的范围的经纬度数据,并对获取到的经纬度数据进行解析;
[0067]
根据所要生成区域的地形范围的经纬度数据得到地形数据;具体为:首先,假设地形范围为矩形区域,下载的所要生成区域的地形范围的经纬度数据中包含经纬度点数据;其中,矩形区域的左下角点为经纬度最小的点,右上角为经纬度最大的点,(通过bigemap地图下载器获取,其中kml格式的范围边界数据中,明确标注左下角点为经纬度最小的点,右上角为经纬度最大的点。)通过计算经纬度的经纬差得到地形的长度数据和宽度数据。
[0068]
计算经纬度的经纬差具体为:
[0069]
c=sin(lata*pi/180)*sin(latb*pi/180)+cos(lata*pi/180)*cos(latb*pi/180)*cos((lona-lonb)*pi/180)
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(2)
[0070]
distance=r*arccos(c)*pi/180)
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(3)
[0071]
其中,r为地球半径,大概为6371.004千米(r可直接取6371.004千米);lata为点a的纬度,lona为点a的经度,distance为两个经纬度点之间的距离,pi为圆周率,c为距离的
弧度值,三角函数的输入和输出都采用弧度值。
[0072]
地形高程数据解析具体为:
[0073]
地形高程数据通过要素的坐标值(x,y),即高程数据点的坐标;与高程值z的组合描述地形的起伏,通过解析高程数据可以获得高程数据的二维数组;具体为:
[0074]
altitude=z-(z(min)-z)
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(4)
[0075]
altitude为当前点的重映射高程值,z为该点原高程值,z(min)为该范围内所有高程值的最小值,z为模型空间下的最小高度值。
[0076]
卫星影像纹理映射具体包括:
[0077]
步骤a1,通过uv mapping将三维的空间坐标点转化为参数空间坐标;
[0078]
步骤a2,参数空间坐标通过变换函数转换到纹理空间坐标,变换后转换到纹理空间进行纹理采样;
[0079]
步骤a3,纹理空间坐标通过纹理采样得到纹理值。
[0080]
纹理映射就是把纹理空间中的纹理像素与屏幕空间中的像素相互对应的一个过程,这个过程也叫做纹理贴图,就是在建造好三维白色模型之后,为了增加模型的真实感,在其表面贴上一张或多张图片。
[0081]
投影映射:通过projector或者uv mapping可以将三维的空间坐标点转化为二维的纹理坐标点;
[0082]
变换函数:一般是通过repeat,mirror,clamp和border这四种方法进行变换。变换后转换到纹理空间进行纹理采样。
[0083]
变换函数采用repeat、mirror、clamp或border中的一种。
[0084]
高程数据和卫星影像数据根据分块数量进行切割,得到切分的每一块范围数据(数据坐标所围成的范围大小);将得到的范围数据利用步骤s3中的方法生成多块地形。
[0085]
分块即步骤s3中切分范围数据得到的经纬度数据坐标所表示的范围。
[0086]
实施例四
[0087]
本实施例提供一种具体的实施方式。以都江堰为例。
[0088]
1、都江堰景区的经纬度范围为:经度(103.582,103.624),纬度(30.992,31.025),通过bigemap地图下载器下载该范围的卫星数据和高程数据。范围数据为.shp格式,高程图和卫星图均由globalmapper处理为png格式。
[0089]
2、解析范围数据,根据范围数据得到地形的大小为长4078.9米,宽3586.9米,属于中小型地形,不需要进行分块处理。将高程数据转化为地形网格的二维数组,生成地形模型,最后在地形模型中覆盖卫星图像,修改卫星图像经度和tilling size。
[0090]
生成的都江堰景区地形模型效果如图4所示。
[0091]
实施例五
[0092]
本实施例提供一种具体的实施方式。以安徽滁州g36宁洛高速部分区域为例。
[0093]
1、安徽滁州g36宁洛高速的经纬度范围为:经度(103.582,103.624),纬度(30.992,31.025),通过bigemap地图下载器下载该范围的卫星数据和高程数据。范围数据为.shp格式,高程图和卫星图均由globalmapper处理为png格式。
[0094]
2、解析范围数据,根据范围数据得到地形的大小为长28518.4米,宽39324.9米,属于中大型地形,可以分块为4*4规模的拼接地形,所以每块地形的大小为长7129.6米,宽
9831.225米。将高程数据转化为地形网格的二维数组,生成地形模型,最后在地形模型中覆盖卫星图像,修改卫星图像经度和tilling size。
[0095]
生成的安徽滁州g36宁洛高速大规模地形模型效果如图5所示。
[0096]
专业术语说明:
[0097]
纹理映射:纹理映射技术是一种将二维贴图映射到三维模型表面的技术,映射的过程是在渲染流水管线中完成的。模型的纹理坐标存储了顶点在纹理中对应的二维坐标,范围在[0,1]之间。纹理映射时,对模型中的某个像素点,对应到贴图的位置中,如果贴图位置恰好位于没有像素与之对应,取该位置最近的4个像素点的值,使用双线性差值得到该位置的像素颜色,完成一次贴图映射过程。
[0098]
tilling size:tiling指明了使用的贴图为输入贴图的多少倍,超过1的会自动拼接,同时offset指明了使用的贴图在输入贴图处的起始位置,假如位置超过了1,就会对1取余。
[0099]
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。
[0100]
最后应说明的是:以上所述仅为本发明的优选实施例而已,并不用于限制本发明,尽管参照前述实施例对本发明进行了详细的说明,对于本领域的技术人员来说,其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1