发明名称 基于城市三维模型提取2.5维地图建筑物轮廓的方法
摘要 本发明公开了一种基于城市三维模型自动提取2.5维地图建筑物轮廓方法,属于地理信息技术领域。本发明通过在城市三维模型与2.5维地图之间建立坐标映射关系,从而实现将建筑物轮映射到2.5维地图中,然后提取投影后的建筑轮廓进矢量范围。本发明实现了在生产2.5维地图的过程中自动提取建筑物轮廓,解决当前生产模式中人工勾绘费时费力的问题,极大的节约了2.5地图制作与应用成本,为将各类经济社会属性与2.5维地图中的建筑物进行挂接应用提供了技术支撑。
申请公布号 CN105469355A 申请公布日期 2016.04.06
申请号 CN201510798920.7 申请日期 2015.11.18
申请人 重庆市勘测院 发明人 何兴富;向泽君;薛梅;陈良超;王俊勇;王国牛;詹勇;李响;唐相桢;李锋;胡章杰;王阳生;李劼;邱月;胡颖;张艺;蓝图
分类号 G06T3/00(2006.01)I;G06T7/00(2006.01)I 主分类号 G06T3/00(2006.01)I
代理机构 代理人
主权项 一种基于城市三维模型提取2.5维地图建筑物轮廓的方法,其特征在于按以下步骤进行:步骤一、建立3维地图到2.5维地图坐标映射公式、获取建筑模型各三角面顶点坐标集;步骤二、根据坐标映射公式,计算建筑模型投影到2.5维地图后各三角面的顶点坐标集;步骤三、对2.5维中的各三角面进行合并,得到建筑物在2.5维地图中的轮廓;所述建立3维地图到2.5维地图坐标映射公式按以下步骤进行:确立坐标转换公式Fc:Fc为<maths num="0001" id="cmaths0001"><math><![CDATA[<mrow><mfenced open = "{" close = ""><mtable><mtr><mtd><mrow><mi>X</mi><mo>=</mo><mi>x</mi><mo>-</mo><mfrac><mo>&part;</mo><mi>&gamma;</mi></mfrac><mi>z</mi></mrow></mtd></mtr><mtr><mtd><mrow><mi>Y</mi><mo>=</mo><mi>y</mi><mo>-</mo><mfrac><mi>&rho;</mi><mi>&gamma;</mi></mfrac><mi>z</mi></mrow></mtd></mtr></mtable></mfenced><mo>;</mo></mrow>]]></math><img file="FDA0000851028310000011.GIF" wi="343" he="221" /></maths>所述x、y、z为三维模型中任意一个顶点的三维坐标值,所述x、y、z均为任意实数;所述<img file="FDA0000851028310000012.GIF" wi="63" he="55" />ρ、γ为平行投影的投影方向单位向量的分量,所述<img file="FDA0000851028310000013.GIF" wi="63" he="55" />ρ、γ均为大于0小于1的实数;所述X、Y为三维点(x、y、z)投影到二维地图上的二维点坐标值,所述X、Y为任意实数;获取建筑模型各三角面顶点坐标集按以下步骤进行:A1、构建一个数组V1,用于存储三维建筑模型所有三角面的顶点坐标;A2、对每个三维建筑模型,依次取出模型中的每个三角面,将三角面各顶点的坐标x、y、z写入数组V1中;所述步骤二按以下步骤进行;B1、建立数组V2,用于存储建筑模型所有三角面顶点在2.5维地图中对应的顶点坐标;B2、依次取出数组V1中的三个元素;B3、使用公式Fc,计算每一组x、y、z坐标值对应的二维坐标X、Y,并依次存储数组V2中;所述对2.5维中的各三角面进行合并,得到建筑物在2.5维地图中的轮廓按以下步骤进行:C1、建立数组V3,每个元素为一个三角面,用T表示;C2、依次取出数组V2中的三个元素,组成一个三角面T<sub>m</sub>;m为正整数;C3、建立一个多边形面P,并将数组V3中第一个元素的各个顶点保存到P中,P为:{X<sub>1</sub>,Y<sub>1</sub>,X<sub>2</sub>,Y<sub>2</sub>,X<sub>3</sub>,Y<sub>3</sub>};并删除数组V3的第一个元素;C4、取出数组V3中的第一个元素T<sub>1</sub>;C5、判断T<sub>1</sub>与P是否相交或相邻,当T<sub>1</sub>与P相交或相邻时,计算T<sub>1</sub>与P的并集,得到新的多边形P',并将P中的所有元素替换为P'的所有元素,然后从V3中删除元素T<sub>1</sub>;当V3已经没有元素时结束,否则选取T<sub>1</sub>后的一个元素执行步骤C5;当T<sub>1</sub>与P不相交或不相邻时,执行步骤C6;C6、如果当前元素不是数组V3最后一个元素,则取出数组V3中T<sub>1</sub>的下一个元素,然后执行步骤C5;否则结束。
地址 400020 重庆市江北区电测村231号