发明内容
本发明所要解决的技术问题在于针对上述现有技术中的不足,提供一种基于Microstation v8i的城市快速建模方法,其设计合理、硬件设备简单且使用操作简便、建模快速、所建立城市模型准确,能有效现有城市三维几何模型建模方法所存在的采集数据量大、劳动强度大、效率低、周期长等多种缺陷和不足。
为解决上述技术问题,本发明采用的技术方案是:一种基于Microstation v8i的城市快速建模方法,其特征在于该方法包括以下步骤:
步骤一、采用航空摄影测量系统且按照常规航空摄影测量方法对被测区域进行航空测量,并通过数据线将所摄取的航摄像片同步传送至处理器;
步骤二、所述处理器在Microstation v 8i软件环境下对航摄像片进行分析处理,并相应建立被测区域的三维几何模型,所述处理器的分析处理过程如下:
201、建立航空摄影测量立体模型:所述处理器调用与其相接的立体测图仪对所述航摄像片进行处理,并相应建立被测区域的航空摄影测量立体模型;所述立体测图仪将所建立的被测区域的航空摄影测量立体模型,同步传送至处理器;
202、地物分类及标记:通过处理器将被测区域的航空摄影测量立体模型中的所有地物对应分为房屋、散树和其它三大类,并采用不同标记符号对三类地物分别进行标记;其中,房屋类地物中包括布设在被测区域内的所有房屋,散树类地物中包括独立分散布设在被测区域内的所有树木,其它类地物中包括除房屋和草木之外的其它所有地物;
203、所述处理器结合地面控制点的实测坐标数据对所述航空摄影测量立体模型中的三类地物分别进行处理:其中,对房屋类地物进行处理时,所有房屋的处理过程均相同;对于房屋类地物中的任一个房屋来说,其处理过程包括以下步骤:
20311、矢量数据采集:处理器调用数据采集模块且按照常规像片量测方法并结合地面控制点的实测坐标数据,在航空摄影测量立体模型上对被处理房屋房顶上的屋顶顶点和/或关键线的矢量数据分别进行采集,并将所采集数据同步存储至与处理器相接的存储单元内;所述关键线为檐边线、房边线和房脊线,所述屋顶顶点为所述檐边线、房边线和房脊线的顶点且其数量为N;
20312、屋面构建:处理器调用空间解析几何处理模块,且按照空间解析几何处理方法对步骤20311中所采集被处理房屋房顶上的屋顶顶点和关键线的矢量数据进行分析处理,并相应构建出组成被处理房屋房顶的所有屋面,同时将所构建出的屋面同步存储至存储单元内;所述屋面的数量为一个或多个;
20313、房顶模型建立:处理器调用三维图形组拼模块对步骤20312中所构建的所有屋面进行组拼,并相应获得被处理房屋的房顶模型,同时将所构建出的房顶模型同步存储至存储单元内;
20314、房体模型建立:首先,处理器结合地面控制点的实测坐标数据,计算得出被处理房屋所在位置的地面点高程值;再结合步骤20311中所采集并记录的被处理房屋房顶上N个屋顶顶点的矢量数据,确定被处理房屋房底所有房底顶点的三维坐标数据,所述房底顶点为被处理房屋中多条房底边的顶点,所述房底顶点的数量与屋顶顶点的数量相同且均为N,N个房底顶点分别与N个房底顶点一一对应且N个房底顶点对应分别布设在N个房底顶点的正下方,每一个房底顶点与位于该房底顶点正上方的房顶顶点之间所连直线为一条房体边线且所述房体边线的数量为N条;之后,处理器调用空间解析几何处理模块,且按照空间解析几何处理方法,对被处理房屋所有房底顶点的三维坐标数据和所有屋顶顶点的矢量数据进行分析处理,并结合N条房体边线相应构建出组成被处理房屋房体的所有房体面;随后,处理器调用三维图形组拼模块对步骤2032中所构建的所有房体面进行组拼,并相应获得被处理房屋的房体模型,同时将所构建出的房体模型同步存储至存储单元内;
20315、房屋模型建立:处理器对步骤20313中所建立的房顶模型和步骤20314中所建立的房体模型进行合成,并获得被处理房屋的三维几何模型;
对散树类地物进行处理之前,处理器先调用绘图模块制作一个高度为h0且用于表示散树模型的树状符号,并将所制作的树状符号存入存储单元内所建立的树状符号库中;且对散树类地物进行处理时,所有树木的处理过程均相同;对于散树类地物中的任一颗树木来说,其处理过程如下:
20321、矢量数据采集:处理器调用数据采集模块且按照常规像片量测方法并结合地面控制点的实测坐标数据,在航空摄影测量立体模型上对被处理树木的树顶顶点、树根顶点以及树顶顶点和树根顶点之间的连接线的矢量数据分别进行采集,并将所数据同步存入存储单元内;所述树顶顶点和树根顶点之间的连接线为树体线;
20322、参数计算:处理器调用数值计算模块,先求解得出所述树顶顶点和树根顶点之间的高程差值h
i,再求解得出高程差值h
i与树状符号高度h
0之间的比值
20323、树状符号缩放调整:处理器自所述树状符号库中调出预先制作的树状符号,并根据步骤20312中计算得出的比值
对调出的树状符号进行缩放处理,且缩放的比例为比值
20324、散树模型建立:将步骤20323中缩放调整后的树状符号移位至步骤20321中所采集的树体线上,并使得缩放调整后的树状符号的顶部与底部分别与步骤20323中所采集树顶顶点和树根顶点相重合,则完成散树模型的建立过程;
对其它类地物进行处理时,其它类地物中所有地物的处理过程均相同,对其它类地物中任一个地物来说,其处理过程如下:
20331、矢量数据采集:处理器调用数据采集模块且按照常规像片量测方法并结合地面控制点的实测坐标数据,在航空摄影测量立体模型上对被处理地物的外围边线以及分散分布于所述外围边线内的散点和线段的矢量数据分别进行采集,并将所采集数据同步存储至存储单元内;
20332、模型构建:处理器调用空间解析几何处理模块,且按照空间解析几何处理方法对步骤20331中所采集外围边线、散点和线段的矢量数据分析处理,并相应构建出组成被处理地物的所有组成面,同时将所构建出的所有组成面同步存储至存储单元内;所述组成面的数量为一个或多个;之后,处理器调用三维图形组拼模块对步骤20312中所构建的所有组成面进行组拼,并相应获得被处理地物的模型,同时将所构建出的模型同步存储至存储单元内;
按照步骤203中所述对航空摄影测量立体模型中的三类地物分别进行处理的方法,对被测区域内的所有地物分别进行处理,并获得被测区域内所有地物的三维几何模型。
上述一种基于Microstation v8i的城市快速建模方法,其特征是:步骤20311中所述的屋顶顶点和关键线、步骤20321中所述的树顶顶点、树根顶点与树顶顶点和树根顶点之间的连接线以及步骤20331中所述的外围边线、散点和线段均为需进行采集的几何元素;且步骤20311、步骤20321和步骤20331中对所述几何元素进行采集时,按照各几何元素的高程值进行分层采集,且采用不同符号将高程值相同且位于同一层上的所有几何元素分别进行标记。
上述一种基于Microstation v8i的城市快速建模方法,其特征是:步骤202中所述的其它类地物分为道路、河流、植被和空置地面四个具体分类,所述房屋类地物按照房顶的具体结构分为平顶房、双斜面房、尖顶房、平头老虎檐、带斜面的老虎檐、回字房、L形房、U形房、Z形房、球形房、异型结构房和组合式复杂房十二个具体分类,所述异型结构房的房顶结构为不规则的异型结构,所述组合式复杂房的房顶为由平顶房、双斜面房、尖顶房、平头老虎檐、带斜面的老虎檐、回字房、L形房、U形房、Z形房、球形房和异型结构房中任意多个房屋的房顶组合而成的复杂房型;步骤202中所述的进行地物分类及标记时,处理器还需根据对房屋类地物中的所有房屋和其它类地物中的所有地物分别进行具体分类,并采用不同的标记符号分别进行标记。
上述一种基于Microstation v8i的城市快速建模方法,其特征是:步骤202中所述的处理器对其它类地物和房屋类地物进行具体分类后,还需建立一个地物类型层色对应表;所述地物类型层色对应表中包含多个地物类型的地物类型层色信息,多个所述地物类型分别为道路、河流、植被、空置地面、平顶房、双斜面房、尖顶房、平头老虎檐、带斜面的老虎檐、回字房、L形房、U形房、Z形房、球形房、异型结构房、组合式复杂房和散树,各地物类型的地物类型层色信息包括各地物类型的类型ID、几何元素的属性标识以及所在层的层数和颜色。
上述一种基于Microstation v 8i的城市快速建模方法,其特征是:步骤20311中所述的被处理房屋为平顶房、双斜面房、尖顶房、平头老虎檐、带斜面的老虎檐、回字房、L形房、U形房、Z形房、球形房、异型结构房或组合式复杂房;
且当被处理房屋为平顶房时,对平顶房房顶上的房边线的矢量数据分别进行采集;
当被处理房屋为双斜面房时,对双斜面房房顶上的房边线和房脊线的矢量数据分别进行采集;
当被处理房屋为尖顶房时,对尖顶房房顶上的房边线和尖顶部顶点的矢量数据分别进行采集;
当被处理房屋为带斜面的老虎檐且所带斜面数量为多个时,对带斜面的老虎檐房顶上的檐边线和老虎檐顶部顶点的矢量数据分别进行采集;
当被处理房屋为平头老虎檐时,对平头老虎檐的老虎檐边线和老虎檐顶部脊线的矢量数据分别进行采集;
当被处理房屋为回字房时,对回字房房顶上的房边线和房脊线分别进行采集;
当被处理房屋为L形房、U形房或Z形房时,对L形房、U形房或Z形房房顶上的房边线和房脊线分别进行采集;
当被处理房屋为球形房时,所述球形房球形房顶的球心为球心0,对所述球形房顶在球心0所处平面上的圆形边线进行采集,所述球心0所处平面与所述球形房所处的地面相平行;
当被处理房屋为异型结构房时,对所述异型结构房房顶的房边线以及所述异型结构房房顶上所存在的线段和顶点分别进行采集;
当被处理房屋为组合式复杂房时,先将所述组合式复杂房的房顶拆分为平顶房、双斜面房、尖顶房、平头老虎檐、带斜面的老虎檐、回字房、L形房、U形房、Z形房、球形房和异型结构房中的任意多个房屋的房顶,再按照平顶房、双斜面房、尖顶房、平头老虎檐、带斜面的老虎檐、回字房、L形房、U形房、Z形房、球形房或异型结构房的矢量数据采集方法,分别对拆分后多个房屋的房顶进行矢量数据采集,之后再对所采集的多个房屋房顶的矢量数据进行组合。
本发明与现有技术相比具有以下优点:
1、减少手工作业量,不需将房屋的所有节点都进行采集。
2、要实现房屋的快速批量几何建模,尤其是非平顶房屋的建模,不需逐个房屋单独建模。
3、功能全面,结合实际,实现城市中房屋、树木、地面、道路、河流以及其他地面特殊类型设施的快速几何三维建模。
4、设计合理,智能化程度高,本发明提出将房顶分为多种类型,根据不同房屋类型的特点,在航空摄影测量立体模型下进行矢量数据采集,且进行数据采集时,只需采集房顶关键点线,如房边线和房脊线,之后再利用解析几何的理论,计算得到各种房屋的所有面,结合Microstationv8i系统的MDL函数,通过计算机编程的方法实现多种类型房屋的快速几何三维建模;对于树木的三维建模,将树木的三维模型做成符号置于符号库,只需采集树顶到树底的一条线,根据线的长度计算放置树木模型符号的比例即可;对于其它类地物,如地面、道路等设施,采用点与面的拓扑关系判断等方法来实现三维建模,因而本发明能简单、快速、精确地完成城市主要地物的几何三维建模工作。
5、使用效果好,所获得的城市三维模型的精度较高,能准确反映被测城市的实际地理状况,且建模时间非常短,在5秒左右时间内便可完成整个城市的建模过程。
综上所述,本发明设计合理、硬件设备简单且使用操作简便、建模快速、所建立城市模型准确,能有效现有城市三维几何模型建模方法所存在的采集数据量大、劳动强度大、效率低、周期长等多种缺陷和不足。
下面通过附图和实施例,对本发明的技术方案做进一步的详细描述。
具体实施方式
如图1、图2所示,本发明所述的基于Microstation v 8i的城市快速建模方法,包括以下步骤:
步骤一、采用航空摄影测量系统1且按照常规航空摄影测量方法对被测区域进行航空测量,并通过数据线将所摄取的航摄像片同步传送至处理器2。
步骤二、所述处理器2在Microstation v8i软件环境下对航摄像片进行分析处理,并相应建立被测区域的三维几何模型,所述处理器2的分析处理过程如下:
201、建立航空摄影测量立体模型:所述处理器2调用与其相接的立体测图仪3对所述航摄像片进行处理,并相应建立被测区域的航空摄影测量立体模型;所述立体测图仪3将所建立的被测区域的航空摄影测量立体模型,同步传送至处理器2。
202、地物分类及标记:通过处理器2将被测区域的航空摄影测量立体模型中的所有地物对应分为房屋、散树和其它三大类,并采用不同标记符号对三类地物分别进行标记;其中,房屋类地物中包括布设在被测区域内的所有房屋,散树类地物中包括独立分散布设在被测区域内的所有树木,其它类地物中包括除房屋和草木之外的其它所有地物。
具体进行地物分类及标记时,所述其它类地物分为道路、河流、植被和空置地面四个具体分类,所述房屋类地物按照房顶的具体结构分为平顶房、双斜面房、尖顶房、平头老虎檐、带斜面的老虎檐、回字房、L形房、U形房、Z形房、球形房、异型结构房和组合式复杂房十二个具体分类,所述异型结构房的房顶结构为不规则的异型结构,所述组合式复杂房的房顶为由平顶房、双斜面房、尖顶房、平头老虎檐、带斜面的老虎檐、回字房、L形房、U形房、Z形房、球形房和异型结构房中任意多个房屋的房顶组合而成的复杂房型;步骤202中所述的进行地物分类及标记时,处理器2还需根据对房屋类地物中的所有房屋和其它类地物中的所有地物分别进行具体分类,并采用不同的标记符号分别进行标记。
本实施例中,所述处理器2对其它类地物和房屋类地物进行具体分类后,还需建立一个地物类型层色对应表,具体详见表1。所述地物类型层色对应表中包含多个地物类型的地物类型层色信息,多个所述地物类型分别为道路、河流、植被、空置地面、平顶房、双斜面房、尖顶房、平头老虎檐、带斜面的老虎檐、回字房、L形房、U形房、Z形房、球形房、异型结构房、组合式复杂房和散树,各地物类型的地物类型层色信息包括各地物类型的类型I D、几何元素的属性标识以及所在层的层数和颜色。
表1地物类型层色对应表
从表1可以看出,本实施例中,对于每一个具体类型而言,从第一列开始分别为:类型的ID,用来标识一种类型;类型的几何属性标识,其中-1代表封闭的元素(一般为房边线),-2代表不封闭的元素(一般为房脊线),-4代表封闭的且带有空洞的面;类型元素的层;类型元素的色;类型代表的地物的名称。
203、所述处理器2结合地面控制点的实测坐标数据对所述航空摄影测量立体模型中的三类地物分别进行处理:其中,对房屋类地物进行处理时,所有房屋的处理过程均相同;对于房屋类地物中的任一个房屋来说,其处理过程包括以下步骤:
20311、矢量数据采集:处理器2调用数据采集模块且按照常规像片量测方法并结合地面控制点的实测坐标数据,在航空摄影测量立体模型上对被处理房屋房顶上的屋顶顶点和/或关键线的矢量数据分别进行采集,并将所采集数据同步存储至与处理器2相接的存储单元4内;所述关键线为檐边线、房边线和房脊线,所述屋顶顶点为所述檐边线、房边线和房脊线的顶点且其数量为N;
20312、屋面构建:处理器2调用空间解析几何处理模块,且按照空间解析几何处理方法对步骤20311中所采集被处理房屋房顶上的屋顶顶点和关键线的矢量数据进行分析处理,并相应构建出组成被处理房屋房顶的所有屋面,同时将所构建出的屋面同步存储至存储单元4内;所述屋面的数量为一个或多个;
20313、房顶模型建立:处理器2调用三维图形组拼模块对步骤20312中所构建的所有屋面进行组拼,并相应获得被处理房屋的房顶模型,同时将所构建出的房顶模型同步存储至存储单元4内;
20314、房体模型建立:首先,处理器2结合地面控制点的实测坐标数据,计算得出被处理房屋所在位置的地面点高程值;再结合步骤20311中所采集并记录的被处理房屋房顶上N个屋顶顶点的矢量数据,确定被处理房屋房底所有房底顶点的三维坐标数据,所述房底顶点为被处理房屋中多条房底边的顶点,所述房底顶点的数量与屋顶顶点的数量相同且均为N,N个房底顶点分别与N个房底顶点一一对应且N个房底顶点对应分别布设在N个房底顶点的正下方,每一个房底顶点与位于该房底顶点正上方的房顶顶点之间所连直线为一条房体边线且所述房体边线的数量为N条;之后,处理器2调用空间解析几何处理模块,且按照空间解析几何处理方法,对被处理房屋所有房底顶点的三维坐标数据和所有屋顶顶点的矢量数据进行分析处理,并结合N条房体边线相应构建出组成被处理房屋房体的所有房体面;随后,处理器2调用三维图形组拼模块对步骤2032中所构建的所有房体面进行组拼,并相应获得被处理房屋的房体模型,同时将所构建出的房体模型同步存储至存储单元4内;
20315、房屋模型建立:处理器2对步骤20313中所建立的房顶模型和步骤20314中所建立的房体模型进行合成,并获得被处理房屋的三维几何模型。
实际操作时,步骤20311中所述的屋顶顶点和关键线、步骤20321中所述的树顶顶点、树根顶点与树顶顶点和树根顶点之间的连接线以及步骤20331中所述的外围边线、散点和线段均为需进行采集的几何元素;且步骤20311、步骤20321和步骤20331中对所述几何元素进行采集时,按照各几何元素的高程值进行分层采集,且采用不同符号将高程值相同且位于同一层上的所有几何元素分别进行标记。
步骤20311中所述的被处理房屋为平顶房、双斜面房、尖顶房、平头老虎檐、带斜面的老虎檐、回字房、L形房、U形房、Z形房、球形房、异型结构房或组合式复杂房。
且当被处理房屋为平顶房时,对平顶房房顶上的房边线的矢量数据分别进行采集。实际进行矢量数据采集时,采集平顶房房顶上的外围多边形,同时对平顶房房屋上面所建的平顶房也要按照层数与颜色进行采集且数据采集方法相同,也就是说进行矢量数据采集时,根据地物类型层色对应表用不同的层色区分。
当被处理房屋为双斜面房时,对双斜面房房顶上的房边线和房脊线的矢量数据分别进行采集。实践中,双斜面房因房脊线长度的不同,建模的具体计算方式也不同,又分为:房脊线和房长相等、房脊线两头都比房长短、房脊线一头比房长短、房脊线一头比房长长、房脊线两头都比房长长和尖顶房六种类型,根据地物类型层色对应表用不同的层色区分。
当被处理房屋为尖顶房时,对尖顶房房顶上的房边线和尖顶部顶点的矢量数据分别进行采集。
当被处理房屋为带斜面的老虎檐且所带斜面数量为多个(即多斜面的老虎檐)时,对带斜面的老虎檐房顶上的檐边线和老虎檐顶部顶点的矢量数据分别进行采集。
实际进行矢量数据采集时,尖顶房和多斜面的老虎檐的建模计算方法相同,除了采集房边线和老虎檐边线为封闭的元素以外,在房子的尖顶部和老虎檐顶部采集一个零长度的线(即尖顶部顶点或老虎檐顶部顶点)。
当被处理房屋为平头老虎檐时,对平头老虎檐的老虎檐边线和老虎檐顶部脊线的矢量数据分别进行采集。因而平头老虎檐进行矢量数据采集时,分别采集平头老虎檐的檐边线和老虎檐顶部脊线。
当被处理房屋为回字房时,对回字房房顶上的房边线和房脊线分别进行采集。因而,对于回字房来说,以各自的层色采集房边线和房脊线分别为封闭元素。
当被处理房屋为L形房、U形房或Z形房时,对L形房、U形房或Z形房房顶上的房边线和房脊线分别进行采集。因而,对L形房、U形房或Z形房进行数据采集时,以各自的层色分别采集封闭的房边线和房脊线。
当被处理房屋为球形房时,所述球形房球形房顶的球心为球心0,对所述球形房顶在球心0所处平面上的圆形边线进行采集,所述球心0所处平面与所述球形房所处的地面相平行。因而,对球形房的球形房顶进行数据采集时,按对应层色采集自顶部俯视情况下,过球形房顶的球心且平行于地面的圆(即顶部下视过球心的平行于地面的圆)即可。
当被处理房屋为异型结构房时,对所述异型结构房房顶的房边线以及所述异型结构房房顶上所存在的线段和顶点分别进行采集。实践中,对异型结构房进行数据采集时,先对组成房顶的多个面分别进行采集,具体是分别采集封闭的房边线和房顶的各个面;而当房顶无法用面表示的,分别采集封闭的房边线与房顶的线和顶点。
当被处理房屋为组合式复杂房时,先将所述组合式复杂房的房顶拆分为平顶房、双斜面房、尖顶房、平头老虎檐、带斜面的老虎檐、回字房、L形房、U形房、Z形房、球形房和异型结构房中的任意多个房屋的房顶,再按照平顶房、双斜面房、尖顶房、平头老虎檐、带斜面的老虎檐、回字房、L形房、U形房、Z形房、球形房或异型结构房的矢量数据采集方法,分别对拆分后多个房屋的房顶进行矢量数据采集,之后再对所采集的多个房屋房顶的矢量数据进行组合。
对散树类地物进行处理之前,处理器2先调用绘图模块制作一个高度为h0且用于表示散树模型的树状符号,并将所制作的树状符号存入存储单元4内所建立的树状符号库中;且对散树类地物进行处理时,所有树木的处理过程均相同;对于散树类地物中的任一颗树木来说,其处理过程如下:
20321、矢量数据采集:处理器2调用数据采集模块且按照常规像片量测方法并结合地面控制点的实测坐标数据,在航空摄影测量立体模型上对被处理树木的树顶顶点、树根顶点以及树顶顶点和树根顶点之间的连接线的矢量数据分别进行采集,并将所数据同步存入存储单元4内;所述树顶顶点和树根顶点之间的连接线为树体线;
具体来说,对于被处理树木进行数据采集时,只采集树顶到树底的一条两点的线。
20322、参数计算:处理器2调用数值计算模块,先求解得出所述树顶顶点和树根顶点之间的高程差值h
i,再求解得出高程差值h
i与树状符号高度h
0之间的比值
20323、树状符号缩放调整:处理器2自所述树状符号库中调出预先制作的树状符号,并根据步骤20312中计算得出的比值
对调出的树状符号进行缩放处理,且缩放的比例为比值
20324、散树模型建立:将步骤20323中缩放调整后的树状符号移位至步骤20321中所采集的树体线上,并使得缩放调整后的树状符号的顶部与底部分别与步骤20323中所采集树顶顶点和树根顶点相重合,则完成散树模型的建立过程。
对其它类地物进行处理时,其它类地物中所有地物的处理过程均相同,对其它类地物中任一个地物来说,其处理过程如下:
20331、矢量数据采集:处理器2调用数据采集模块且按照常规像片量测方法并结合地面控制点的实测坐标数据,在航空摄影测量立体模型上对被处理地物的外围边线以及分散分布于所述外围边线内的散点和线段的矢量数据分别进行采集,并将所采集数据同步存储至存储单元4内;
20332、模型构建:处理器2调用空间解析几何处理模块,且按照空间解析几何处理方法对步骤20331中所采集外围边线、散点和线段的矢量数据分析处理,并相应构建出组成被处理地物的所有组成面,同时将所构建出的所有组成面同步存储至存储单元4内;所述组成面的数量为一个或多个;之后,处理器2调用三维图形组拼模块对步骤20312中所构建的所有组成面进行组拼,并相应获得被处理地物的模型,同时将所构建出的模型同步存储至存储单元4内;
按照步骤203中所述对航空摄影测量立体模型中的三类地物分别进行处理的方法,对被测区域内的所有地物分别进行处理,并获得被测区域内所有地物的三维几何模型。
实践中,对于道路、河流、植被等需要建模的类型(属于其它类地物),以各自层色采集范围线以及范围线内部的散点和线段。
综上所述,按照上述要求采集好矢量数据后,通过计算机编程的方法批量计算,通过矢量数据建立城市地物的三维模型,由于在Microstation中三维模型的元素类型为mesh,由多个面组成一个mesh。具体计算方法是在采集好的矢量文件中搜索元素,根据层色等属性和地物类型层色对应表赋予地物不同的类型ID,按照地物类型不同分别处理。对于不同类型的地物处理方法如下:
第一、平顶房、单斜面房:
首先建立房顶模型,该种类型房顶较简单,仅将矢量数据的房边线构成一个面,建立一个单面的mesh元素即可;接着,建立房体的模型:在房边线的平面范围内,搜索地面上的坐标散点,得到房屋所在位置的地面点高程值,从而得到房底边线的各个点坐标。假设房顶边线有N个顶点,则房体的总顶点数则为2N,将房顶的顶点编号为1、2、3...N,则房底的顶点号为N+1、N+2、N+3、、、2N。房底顶点的平面坐标与对应房顶点平面坐标相等,对应关系为:N+1=1、N+2=2、N+3=3...2N=N,而房底点的Z值为地面点的Z值,从而确立构成房体各个面的顶点号,假设房顶边线有N个顶点,则房体有N个面,从第一个面开始,构成第i个面的顶点号为i、i+N、i+N+1和i+1。若i=N,则顶点号为i、i+N、N+1和1。由此确定了每个面组成的点,即确定了整个房体的结构,组成Mesh元素即为房体的三维模型。所有类型的房子的房体模型建立方法都是和平顶房的房体模型建立方法相同的,所以以下其他类型房屋不再重复说明房体的建模,只说明房顶模型的建立方法。
第二、双斜面房且房脊线比房子短的类型:
建立该类房屋的房顶模型时,首先在房边线内搜索房脊线元素,排除首尾点高程值差超过阈值的房脊线元素,之后逐个比较每段房边线矢量和房脊线矢量的角度差,找到与房脊线矢量角度基本一致的房边线段。将房脊线的线段纠正为垂直与方向与其不一致的房边线的方向,Z值纠正为房脊线两点的Z值平均值。将房顶点编号,起始编号点为与房脊线垂直的房边线段的起点。房边线为四个点,距起点平面位置较近的房脊线端点为第五个点,另一个端点为第六个点。组建房顶模型的四个面,组成面的房顶点编号为:1、2、5;2、3、6、5;3,4,6;4、1、5、6。确定了组成房顶模型的四个面,建成一个Mesh元素即建立了房脊线比房子短的双斜面房的房顶模型。
第三、尖顶房和多斜面的老虎檐(即尖顶老虎檐):
尖顶房和多斜面尖顶老虎檐的房顶建模方法相同,只是尖顶房房顶是用房边线和房顶点来建模,而多斜面老虎檐是用老虎檐边线和老虎檐顶点来建模。首先搜索到尖顶房边线或者老虎檐边线。在房边线或老虎檐边线内搜索顶点元素;之后组建房顶的面,假设房边或者老虎檐边线有N个顶点,则设房顶点的点号为N+1。房顶则可组建N个面,组成第i个面的顶点号则为i,i+1以及N+1,若i=N,即最后一个顶点,则第N个面的组成为i,1,N+1。由此组成尖顶房房顶或尖顶老虎檐顶的N个面后,即可确定房顶mesh元素的建立,完成此种类型房顶模型的建立。
第四、双斜面房且房脊线比房子长的类型:
首先搜索到此种类型房屋的房脊线,其次在房脊线元素范围内搜索被房脊线压盖的房边线元素,之后判断房脊线的中点在不在搜索到的房边线范围内,排除房脊线的中点不在其范围内的房边线元素。开始利用房边线和房脊线组建房顶模型:由于房脊线比房子长的情况不会单独存在,都是和别的房子相邻组合在一起的,所以将房子纠正延长至房脊线长度而伸进其他房子中,这样可以达到较好的视觉效果。计算得到和房脊线大致垂直的房边线长度的一半值,设为a。纠正得到与房脊线平行且与房脊线距离为a的两条边上的四个点为新的房边线。将纠正后的房边线的四个点的点号纪录为1,2,3,4,其中1,2号点组成的线和3,4号点组成的线垂直于房脊线,靠近1号点的房脊线的一个顶点编号为5,另一个房脊线顶点为6。组建房顶模型的四个面,组成面的房顶点编号为:1、2、5;2、3、6、5;3,4,6;4、1、5、6。确定了组成房顶模型的四个面,建成一个Mesh元素即建立了房脊线比房子长的双斜面房的房顶模型。
第五、回字房:
搜索得到回字房的房边线,在房边线范围内搜索房脊线元素。排除房脊线顶点数和房边线顶点数不同的房脊线,以保证房脊线和房边线点数相同的条件才能构建回字房的房顶模型。假设房边线共有N个顶点(N条边),分别找到距离每条房边线最近的房脊线边的中点,并分别纪录最短距离mindis[i]以及相应的垂足点,分别得到每条房边线沿垂足点和房脊线中点组成的矢量方向平移mindis[i]距离的平行线,求得平移后的平行线的N个交点即为纠正后分别与房边线平行的房脊线,纪录纠正后的房脊线的点号顺序和房边线顺序一致,即设原来房边线点号为1、2、...N,则对应与1、2号点组成的线平行的房脊线顶点则编号为N+1、N+2。以此类推,房脊线顶点编号直到2N。进而组建房顶模型所构成的N个面:从第一个面开始,构成第i个面的顶点号为i、i+N、i+N+1、i+1。若i=N,则顶点号为i、i+N、N+1、1。确定了每个面组成的点,即确定了整个房顶的结构,组成Mesh元素即为回字房房顶的三维模型。
第六、L形房、U形房和Z形房类型:
在房边线范围内搜索房脊线元素,首先纠正房边线的顶点使得房边线与房脊线平行才能符合构面条件,结合图3,以U形房为例,具体纠正方法如下:分别计算房脊线的第一段和最后一段与所有房边线线段的交点(交点在房边线线段延长线上视为无交点),找到交点距房脊线的第一个点最近的点如图3中的A、B两点(相当于将房脊线延长至房边线),并记录此交点距离该段房边线两端的距离,平行拷贝延长后的房脊线至原来的房边线线段的端点,如图3中的C、D两点。得到如图3中的虚线为纠正后的房边线,无论房型是L型、U型或者Z型,纠正方法都相同,只是房脊线首尾两段之间的线段数不同而已。将房边线编号,假设房脊线有N个顶点,将第一条平行线的N个点编号为1、2、...N,将第二条平行线的顶点反向排序后编号为N+1、N+2、...2N,将原始的房脊线顶点(未延伸)编号为2N+1、2N+2、...3N。第二步构建组成房顶模型的2N个面。首尾两个三角面的组成为1、2N+1、2N以及N、N+1、3N。设i从0至N-2,由点号i+1、i+2、2N+i+2、2N+i+1以及2N-i-1、2N-i、2N+1+i、2N+2+i组成其余的2(N-1)个面,至此,完成了组成房顶模型的所有面,构建成Me sh元素即完成了此种类型房顶模型的建立。
第七:平头老虎檐和带斜面的老虎檐(包括带斜面的配房)类型:
搜索得到老虎檐边线,在老虎檐边线范围内搜索房脊线。结合图4,纠正房边线上的点使得应该构面的点共面,符合构面条件。纠正方法为:计算房脊线靠近AB房边线的顶点到AB线段的垂足C,若为平头老虎檐(F点在线段AB上),则由房脊线两端FG计算与房脊线垂直且距离分别为AC和BC的垂线段;若为带斜面的老虎檐,则由GC计算与GC垂直且距离分别为AC和BC的垂线段,得到纠正后的房边线A’、B’、E’和D’四个点。将点对应编号为A’为1,B’为2,E’为3,D’为4,F为5,G为6。则组成房顶模型的四个面的构成为:1,2,5;2,3,6,5;3,4,6;4,1,5,6。由此完成了平头老虎檐以及带斜面老虎檐房顶模型的建立。
第八、球形房顶:
搜索到顶部下视过球心的平行于地面的圆,计算得到圆心的点坐标以及圆心到圆上点的距离即半径R,经两个循环嵌套,计算上半球上的点坐标,以球心为坐标原点,球上点到圆心的直线在XY平面内与X轴的夹角设为a,在XZ平面内与Z轴的夹角设为b,则a从0到2π以10度为间隔递增,b从0到π/2以10度为间隔递增,则球上的点坐标公式为:
由此顺序计算出球体的顶部上半个球体上的N个点,由这些点构建三角网Mesh元素即可完成球形房房顶模型的建立。
第九、异型结构房(用房顶内的散点、线串及外围多边形建立):
在房边线范围内搜索其他点线元素,将外围多边形的点以及内部所有元素上的点都参与计算构建三角网mesh,再将三角网mesh中的各个面转换成shape面,判断每个shape面的所有边,将任意一个边的中点不在外围多边形内的shape面排除,剩余的所有边的中点都在外围多边形内的面共同组建为特殊类型房的房顶模型。
第十、道路、河流、植被等地面需要建模的类型:
对于这些地面模型的建立与上述特殊类型的房子的房顶模型建立方法相同,但区别在于特殊类型的房子在建立房顶模型后,还需要用外围多边形建立房体模型,而地面的道路、河流、植被等地面模型不需要再搜索地面点高程建立房体模型。
第十一、散树模型:
首先根据需要创建一个表示散树模型的符号mesh放置于树状符号库中,符号的定位点放置于树顶部。搜索到矢量文件中采集到的树底到树顶的直线,比较直线两点的Z值,得到Z值高的点为符号的定位点,计算直线的长度与符号长度的比值,得到要放置的符号的比例。得到符号放置的位置和比例之后,即完成了散树模型的建立。
综上,采用本发明进行城市三维几何建模时,主要分为以下三个步骤:
第一步、根据地物类别需要编写地物类别层色表,规定各种地物采集的类型及层色;
第二步、在摄影测量立体模型中,按照要求采集地物的关键部位的矢量数据;
第三步、通过计算机编程方法,对不同类型的房屋及地物采取相应的建模计算方法,实现各种类型房屋及地物的三维建模。计算机处理方法步骤为:首先搜索当前设计文件中的元素,根据层色及元素类型判断该元素的地物类别,再根据相应类别的地物的特征,用不同的处理方法计算构成模型的面的组成,最终构成地物的几何三维模型。另外,建立地面高程模型时,在地面以固定格网间隔采集地面坐标散点,以便得到任意地方的地面高程值以及建立地面高程模型。
以上所述,仅是本发明的较佳实施例,并非对本发明作任何限制,凡是根据本发明技术实质对以上实施例所作的任何简单修改、变更以及等效结构变化,均仍属于本发明技术方案的保护范围内。