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