等值面是氣象、環保等相關專案上常用到的效果展示。在傳統的cs專案中,可以利用一些二次開發工具進行開發,具有科研性質的專案上還會利用一些工具進行複雜建模出圖然後流程化。這裡,我們撇去複雜的建模各因子,談談通用的等值面如何在webgis中進行展示。
首先,我介紹下幾種可以在前端進行等值面渲染的方案:
a.利用arcgis的model進行建模,設定好輸入項,插值工具,輸出項等,然後發布成gp服務,前端需要使用時通過rest方式呼叫gp服務將最後的插值結果進行展示。
b.直接在前端進行等值面演算法的實現。在開源庫turfjs中提供了等值面的呼叫函式。
c.利用gdal或者ae或者其他氣象方面的開發包,開發專門的工具程式進行等值面生成,然後將結果以服務或者的方式供前端呼叫。
d.直接在後台寫程式進行生成,比如使用wcontour.jar等進行後台開發服務。
專案首先想純前端進行開發,但是觀察了turfjs生成的等值面,效果不是很理想,出現很多沒有被覆蓋的空隙。例如:
gp服務的方案上,因為不想總是前端傳入所有插值的點,而是讓輸入資料來源直接關聯上sde中的表,sde中該表的資料每天會變化,那麼每次生成時,前端只需呼叫連線而不用傳入任何資料即可生成新的等值面。目前還沒解決直接讓下圖所示的input關聯上sde表的方法,有相關經驗的同行如果知道請不吝賜教。
所以最後選擇了熟悉的ae來生成等值面。
ae生成的資料為grid格式:
自動發布方案目前有以下三種:
a.編寫**讓arcgisserver自動發布。此種方案涉及到**編寫,並且還將出現對舊服務刪除、新服務增加等操作,如果頻率過多,對arcgisserver是個負擔。
b.先用arcgisserver發布乙個mapserver服務,然後每次更新替換掉該服務對應的路徑資料夾中的檔案。此種方法經過測試,每次替換了檔案後,必須重啟一次該服務才行,同樣通過**控制對arcgisserver存在壓力。
c.直接編寫**對生成的等值面圖進行切圖,前端直接呼叫本地切**件。因為自動切圖工具已經有積累,所以採用此種方案。
a.將插值資料做成shp通過sde入庫,利用mxd將入庫資料進行新增,並且將掩膜資料也添入mxd。每次mis上對接資料時動態修改sde中該圖層的插值屬性的值即可。
b.通過mxd獲取到資料要素,利用ae中整合好的插值演算法進行插值。插值時選擇好各插值引數,以及插值的掩膜圖層。
c.對差值出來的柵格等值面資料進行分類渲染。
d.根據切圖引數對最後柵格渲染圖進行自動切圖。
f.將切完的瓦片轉移儲存至瓦片服務資料夾下。
e.前端載入等值面切圖瓦片。
等值面demo工具效果如下:
自動切圖後的結果如下:
系統中使用如下,支援多個等值面之間的切換,比如今、明、後三天的pm2.5等值面切換(由於重慶的資料缺少部分為0,所以灰色部分很多)。
WebGIS中等值面展示的相關方案簡析
等值面是氣象 環保等相關專案上常用到的效果展示。在傳統的cs專案中,可以利用一些二次開發工具進行開發,具有科研性質的專案上還會利用一些工具進行複雜建模出圖然後流程化。這裡,我們撇去複雜的建模各因子,談談通用的等值面如何在webgis中進行展示。首先,我介紹下幾種可以在前端進行等值面渲染的方案 a.利...
WebGIS中等值面展示的相關方案簡析
等值面是氣象 環保等相關專案上常用到的效果展示。在傳統的cs專案中,可以利用一些二次開發工具進行開發,具有科研性質的專案上還會利用一些工具進行複雜建模出圖然後流程化。這裡,我們撇去複雜的建模各因子,談談通用的等值面如何在webgis中進行展示。首先,我介紹下幾種可以在前端進行等值面渲染的方案 a.利...
WebGIS中等值線前端生成繪製簡析
等值線是gis製圖中常見的功能,一般有兩種思路 一種是先進行插值生成等值面柵格圖,然後將等值面提取成等值線 另一種是進行插值後,直接再根據演算法進行插值點連線生成一條盡量閉合以及平滑的曲線。在進行插值中,有很多演算法可以選擇,各種演算法中也會有不同的引數需要除錯,並且更具實際情況,比如地理環境因素等...