WebGIS中等值面展示的相關方案簡析


文章版權由作者李曉暉和博客園共有,若轉載請於明顯處標明出處:http://www.cnblogs.com/naaoveGIS/

1.背景

等值面是氣象、環保等相關項目上常用到的效果展示。在傳統的CS項目中,可以利用一些二次開發工具進行開發,具有科研性質的項目上還會利用一些工具進行復雜建模出圖然后流程化。這里,我們撇去復雜的建模各因子,談談通用的等值面如何在WebGIS中進行展示。

首先,我介紹下幾種可以在前端進行等值面渲染的方案:

a.利用arcgis的model進行建模,設置好輸入項,插值工具,輸出項等,然后發布成GP服務,前端需要使用時通過rest方式調用GP服務將最后的插值結果進行展示。

b.直接在前端進行等值面算法的實現。在開源庫turfjs中提供了等值面的調用函數。

c.利用GDAL或者AE或者其他氣象方面的開發包,開發專門的工具程序進行等值面生成,然后將結果以服務或者圖片的方式供前端調用。

d.直接在后台寫程序進行生成,比如使用wcontour.jar等進行后台開發服務。

2.等值面生成方案選擇

項目首先想純前端進行開發,但是觀察了turfjs生成的等值面,效果不是很理想,出現很多沒有被覆蓋的空隙。例如:

 

GP服務的方案上,因為不想總是前端傳入所有插值的點,而是讓輸入數據源直接關聯上SDE中的表,SDE中該表的數據每天會變化,那么每次生成時,前端只需調用連接而不用傳入任何數據即可生成新的等值面。目前還沒解決直接讓下圖所示的input關聯上SDE表的方法,有相關經驗的同行如果知道請不吝賜教。

 

所以最后選擇了熟悉的AE來生成等值面。

3.服務自動發布方案選擇

AE生成的數據為Grid格式:

 

自動發布方案目前有以下三種:

a.編寫代碼讓arcgisserver自動發布。此種方案涉及到代碼編寫,並且還將出現對舊服務刪除、新服務增加等操作,如果頻率過多,對arcgisserver是個負擔。

b.先用arcgisserver發布一個mapserver服務,然后每次更新替換掉該服務對應的路徑文件夾中的文件。此種方法經過測試,每次替換了文件后,必須重啟一次該服務才行,同樣通過代碼控制對arcgisserver存在壓力。

c.直接編寫代碼對生成的等值面圖進行切圖,前端直接調用本地切圖文件。因為自動切圖工具已經有積累,所以采用此種方案。

4.項目最終采用的方案總結

a.將插值數據做成SHP通過SDE入庫,利用MXD將入庫數據進行添加,並且將掩膜數據也添入MXD。每次MIS上對接數據時動態修改SDE中該圖層的插值屬性的值即可。

b.通過MXD獲取到數據要素,利用AE中集成好的插值算法進行插值。插值時選擇好各插值參數,以及插值的掩膜圖層。

c.對差值出來的柵格等值面數據進行分類渲染。

d.根據切圖參數對最后柵格渲染圖進行自動切圖。

f.將切完的瓦片轉移保存至瓦片服務文件夾下。

e.前端加載等值面切圖瓦片。

5.效果展示

等值面demo工具效果如下:

 

自動切圖后的結果如下:

 

系統中使用如下,支持多個等值面之間的切換,比如今、明、后三天的PM2.5等值面切換(由於重慶的數據缺少部分為0,所以灰色部分很多)。

配置文件中,可以配置等值面各插值參數、等值字段、分類閾值、渲染色帶、觸發時間、切圖參數、文件地址等:

 

 

                           -----歡迎轉載,但保留版權,請於明顯處標明出處:http://www.cnblogs.com/naaoveGIS/

                                                                           如果您覺得本文確實幫助了您,可以微信掃一掃,進行小額的打賞和鼓勵,謝謝 ^_^

                                        


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM