本發(fā)明屬于地理信息的,涉及地下管線的三維建模以及局部動(dòng)態(tài)更新,具體涉及一種基于cesium的海量管網(wǎng)數(shù)據(jù)三維模型動(dòng)態(tài)更新方法。
背景技術(shù):
1、postgresql數(shù)據(jù)庫(kù)為功能強(qiáng)大的開源關(guān)系型數(shù)據(jù)庫(kù)。postgis作為postgresql數(shù)據(jù)庫(kù)的一個(gè)插件,其中提供了開源的gis空間數(shù)據(jù)處理與算法模塊?;趐ostgis插件結(jié)合postgresql數(shù)據(jù)庫(kù)過程函數(shù)來(lái)定義空間數(shù)據(jù)處理過程函數(shù),地下管網(wǎng)屬于網(wǎng)絡(luò)矢量數(shù)據(jù)集,非常適合postgis存儲(chǔ),結(jié)合postgis空間分析算法,能夠快速便捷的獲取局部范圍內(nèi)的管網(wǎng)數(shù)據(jù),為管網(wǎng)局部增量更新提供了可能。
2、目前,二維管網(wǎng)的局部增量更新的技術(shù)已經(jīng)成熟,但是與之對(duì)應(yīng)的管網(wǎng)三維模型的局部更新幾乎沒有,一般的處理辦法,就是二維更新后,然后使用管網(wǎng)建模工具對(duì)所有的二維管網(wǎng)數(shù)據(jù)重新建模一遍,數(shù)據(jù)量小的話,這樣操作基本沒啥問題,當(dāng)遇到城市級(jí)的海量管網(wǎng)數(shù)據(jù)的話,這種做法,耗時(shí)長(zhǎng),工作量大;海量管網(wǎng)數(shù)據(jù)三維模型動(dòng)態(tài)更新技術(shù)是根據(jù)給定的矢量范圍面,對(duì)二維管網(wǎng)進(jìn)行三維建模局部增量更新。
技術(shù)實(shí)現(xiàn)思路
1、為了克服上述現(xiàn)有技術(shù)的不足,本發(fā)明的目的是提供一種基于cesium的海量管網(wǎng)數(shù)據(jù)三維模型動(dòng)態(tài)更新方法,應(yīng)用本技術(shù)實(shí)現(xiàn)了二維管網(wǎng)數(shù)據(jù)更新后,對(duì)應(yīng)的三維管網(wǎng)模型數(shù)據(jù)也能得到實(shí)時(shí)更新,保證二維數(shù)據(jù)與三維模型的一致性,局部增量更新,又避免了重復(fù)整體發(fā)布海量管網(wǎng)數(shù)據(jù)的費(fèi)時(shí)費(fèi)力問題,所以該技術(shù)具有實(shí)時(shí)性,輕量化,避免重復(fù)建模的特點(diǎn)。
2、為了實(shí)現(xiàn)上述目的,本發(fā)明采用的技術(shù)方案是:
3、一種基于cesium的海量管網(wǎng)數(shù)據(jù)三維模型動(dòng)態(tài)更新方法,包括以下步驟:
4、步驟1、
5、數(shù)據(jù)配置:管線入庫(kù),將要更新的管線數(shù)據(jù)的點(diǎn)文件、線文件導(dǎo)入到postgresql數(shù)據(jù)庫(kù);
6、管線圖層配置:在每個(gè)管線圖層下配置相應(yīng)的導(dǎo)入數(shù)據(jù)庫(kù)的點(diǎn)表名和線表名;
7、更新范圍面設(shè)置:將要更新的管線范圍面文件,shape矢量面文件導(dǎo)入到postgresql數(shù)據(jù)庫(kù);
8、步驟2、
9、服務(wù)配置:
10、設(shè)置服務(wù)配置文件,主要包括數(shù)據(jù)庫(kù)配置、圖層文件配置以及更新狀態(tài),在httpd.conf中設(shè)置管網(wǎng)更新服務(wù)文件rj_pipeline_publish.so,通過命令啟動(dòng)httpd,開啟管網(wǎng)更新服務(wù);
11、步驟3、讀取服務(wù)配置文件,獲取更新狀態(tài)相關(guān)配置參數(shù),如果需要更新,則進(jìn)入步驟4,否則返回;
12、步驟4、讀取步驟2圖層文件配置后圖層配置文件,獲取要更新的管線圖層列表,遍歷管線圖層列表,每個(gè)圖層列表,通過執(zhí)行步驟4后面的步驟,對(duì)該管線圖層的數(shù)據(jù)進(jìn)行局部增量更新;
13、步驟5、讀取管線圖層的數(shù)據(jù),連接數(shù)據(jù)庫(kù),讀取數(shù)據(jù)庫(kù)內(nèi)的更新范圍面以及相應(yīng)的點(diǎn)表、線表;
14、步驟6、使用postgis函數(shù)接口對(duì)更新范圍與點(diǎn)表、線表進(jìn)行求交,獲得該范圍內(nèi)的所有管點(diǎn)與管線;
15、步驟7、獲取該管線圖層數(shù)據(jù)里的參數(shù)配置文件,對(duì)獲得的管點(diǎn)與管線進(jìn)行參數(shù)化建模,按照塊號(hào)范圍,生成相應(yīng)的三維模型3dtiles,并將屬于同一塊號(hào)的3dtiles文件放到同一塊號(hào)文件夾下;
16、步驟8、根據(jù)塊號(hào),對(duì)原有管線圖層的發(fā)布數(shù)據(jù)進(jìn)行更新,并更新索引文件tileset.json。
17、所述的步驟1中的數(shù)據(jù)配置,管線入庫(kù)的數(shù)據(jù)來(lái)源可以是shp文件也可以是gdb文件,更新的范圍面文件來(lái)源是shp面文件。
18、所述的步驟1中的數(shù)據(jù)配置,管線圖層配置的點(diǎn)文件名與線文件面的來(lái)源是導(dǎo)入到postgresql數(shù)據(jù)庫(kù)里面的點(diǎn)表名與線表名。
19、所述的步驟2中的服務(wù)配置,為服務(wù)配置文件server.xml和httpd配置文件httpd.conf,服務(wù)配置文件server.xml其內(nèi)容主要包括:數(shù)據(jù)庫(kù)的ip、端口、用戶名、密碼、管網(wǎng)建模需要的臨時(shí)文件夾路徑以及圖層配置文件,httpd配置文件httpd.conf主要是對(duì)管網(wǎng)更新服務(wù)rj_pipeline_publish.so的配置。
20、所述的更新范圍與點(diǎn)表、線表求交中,更新范圍的來(lái)源是在步驟5的讀取矢量面獲得,計(jì)算出該范圍所占用的塊號(hào),然后通過這些塊號(hào),重新計(jì)算出包含所占用塊號(hào)的新范圍:west、east、south、north。
21、所述的參數(shù)配置文件,來(lái)自于管線圖層數(shù)據(jù)所在resource文件,主要包括字段映射文件、值域映射文件、材質(zhì)映射文件、空間參考文件以及紋理圖片和模型文件。
22、所述的參數(shù)化建模主要包括管塊的建模以及附屬物模型的建模,管塊的建模是b3dm格式,直接生成后按照步驟8進(jìn)行;附屬物模型的建模為配置文件中已存在的模型生成,由于附屬物模型的建模是i3dm格式,所以這里按塊號(hào)生成點(diǎn)位列表。
23、所述的參數(shù)化建模主要包括管塊的更新與附屬物模型的更新:管塊的更新,直接按照塊號(hào)對(duì)該管線圖層下的發(fā)布數(shù)據(jù)進(jìn)行文件夾替換;附屬物模型的更新:需先遍歷該管線圖層下的所有附屬物模型數(shù)據(jù)i3dm,解析出所有的點(diǎn)數(shù)據(jù),按塊號(hào)分類,然后根據(jù)塊號(hào),用生成的塊號(hào)替換解析出來(lái)的塊號(hào),并重新生成附屬物模型i3dm,完成更新。
24、本發(fā)明的有益效果是:
25、1、管網(wǎng)的動(dòng)態(tài)更新保證了三維管網(wǎng)模型的實(shí)時(shí)性,使得入庫(kù)的二維管網(wǎng)數(shù)據(jù)與展示的管網(wǎng)三維模型是一致的,最新的。
26、2、管網(wǎng)的動(dòng)態(tài)更新解決了重復(fù)整體發(fā)布海量數(shù)據(jù)的費(fèi)時(shí)費(fèi)力問題,因?yàn)槎S管網(wǎng)數(shù)據(jù)更新后,要保證三維數(shù)據(jù)也是最新的,就需要對(duì)整個(gè)數(shù)據(jù)進(jìn)行重新發(fā)布,工作量大,耗時(shí)長(zhǎng)。
27、3、管網(wǎng)的動(dòng)態(tài)更新采用的局部增量更新,只對(duì)劃定范圍內(nèi)的數(shù)據(jù)進(jìn)行重新建模發(fā)布,更新快,輕量化。
1.一種基于cesium的海量管網(wǎng)數(shù)據(jù)三維模型動(dòng)態(tài)更新方法,其特征在于,包括以下步驟:
2.根據(jù)權(quán)利要求1所述的一種基于cesium的海量管網(wǎng)數(shù)據(jù)三維模型動(dòng)態(tài)更新方法,其特征在于,所述的步驟1中的數(shù)據(jù)配置,管線入庫(kù)的數(shù)據(jù)來(lái)源可以是shp文件也可以是gdb文件,更新的范圍面文件來(lái)源是shp面文件。
3.根據(jù)權(quán)利要求1所述的一種基于cesium的海量管網(wǎng)數(shù)據(jù)三維模型動(dòng)態(tài)更新方法,其特征在于,所述的步驟1中的數(shù)據(jù)配置,管線圖層配置的點(diǎn)文件名與線文件面的來(lái)源是導(dǎo)入到postgresql數(shù)據(jù)庫(kù)里面的點(diǎn)表名與線表名。
4.根據(jù)權(quán)利要求1所述的一種基于cesium的海量管網(wǎng)數(shù)據(jù)三維模型動(dòng)態(tài)更新方法,其特征在于,所述的步驟2中的服務(wù)配置,為服務(wù)配置文件server.xml和httpd配置文件httpd.conf,服務(wù)配置文件server.xml其內(nèi)容主要包括:數(shù)據(jù)庫(kù)的ip、端口、用戶名、密碼、管網(wǎng)建模需要的臨時(shí)文件夾路徑以及圖層配置文件,httpd配置文件httpd.conf主要是對(duì)管網(wǎng)更新服務(wù)rj_pipeline_publish.so的配置。
5.根據(jù)權(quán)利要求1所述的一種基于cesium的海量管網(wǎng)數(shù)據(jù)三維模型動(dòng)態(tài)更新方法,其特征在于,所述的更新范圍面與點(diǎn)表、線表求交中,更新范圍的來(lái)源是在步驟5的讀取矢量面獲得,計(jì)算出該范圍所占用的塊號(hào),然后通過這些塊號(hào),重新計(jì)算出包含所占用塊號(hào)的新范圍:west、east、south、north。
6.根據(jù)權(quán)利要求1所述的一種基于cesium的海量管網(wǎng)數(shù)據(jù)三維模型動(dòng)態(tài)更新方法,其特征在于,所述的參數(shù)配置文件,來(lái)自于管線圖層數(shù)據(jù)所在resource文件,主要包括字段映射文件、值域映射文件、材質(zhì)映射文件、空間參考文件以及紋理圖片和模型文件。
7.根據(jù)權(quán)利要求1所述的一種基于cesium的海量管網(wǎng)數(shù)據(jù)三維模型動(dòng)態(tài)更新方法,其特征在于,所述的參數(shù)化建模主要包括管塊的建模以及附屬物模型的建模,管塊的建模是b3dm格式,直接生成后按照步驟8進(jìn)行;附屬物模型的建模為配置文件中已存在的模型生成,由于附屬物模型的建模是i3dm格式,所以這里按塊號(hào)生成點(diǎn)位列表。
8.根據(jù)權(quán)利要求1所述的一種基于cesium的海量管網(wǎng)數(shù)據(jù)三維模型動(dòng)態(tài)更新方法,其特征在于,所述的參數(shù)化建模主要包括管塊的更新與附屬物模型的更新:管塊的更新,直接按照塊號(hào)對(duì)該管線圖層下的發(fā)布數(shù)據(jù)進(jìn)行文件夾替換;附屬物模型的更新:需先遍歷該管線圖層下的所有附屬物模型數(shù)據(jù)i3dm,解析出所有的點(diǎn)數(shù)據(jù),按塊號(hào)分類,然后根據(jù)塊號(hào),用生成的塊號(hào)替換解析出來(lái)的塊號(hào),并重新生成附屬物模型i3dm,完成更新。