文章版權由作者李曉暉和博客園共有,若轉載請於明顯處標明出處:http://www.cnblogs.com/naaoveGIS/。
1.前言
這一周,我對GIS開源解決方案中涉及到的開源軟件以及相關技術和流程做了一些初步的探索,也了解了一下其他公司利用開源方案做的比較成熟的案例。這里我將一些技術關鍵點的預研做一下總結,同時對其他公司開源成功案例做一個分析,並提出個人認為目前最符合公司實際的GIS開源解決方案。
2.技術關鍵點預研
2.1空間數據入庫(postgreSQL+postGIS)
利用postGIS將shp數據導入到postgreSQL中:
2.2空間數據編輯(uDig)
導入postgreSQL中的空間數據,可以進行展示以及編輯等操作。

2.3SLD樣式文件的制作
可以直接利用uDig進行圖層配圖以及生產對應的SLD文件,並且可以導出:


2.4利用geoserver發布postGIS中的空間數據
在Geoserver中添加stores選擇postgis即可:


2.5利用Geoserver發布圖層組
將多個單獨發布的圖層服務組合為一個圖層組,在一次請求中可以顯示所有圖層組下的圖層:

包含了單元網格和社區的圖層組:

2.6利用GeoWebCache切圖緩存
研究了GeoWebCache的兩種切圖策略:一種是類AGS切圖策略,即預先切圖;一種是類AGS動態切圖策略,即第一次請求時切圖。
切圖的相關配置和結果:


2.7對利用postGIS中的ST_Geometry函數進行空間數據管理和空間分析的預研
PostGIS中的ST_Geometry函數與SDE中的基本相同,不過它包含了自身的一些擴展函數。大致有如下功能:

在postgresql中測試了基本的空間要素增刪查改以及空間要素的面積和長度獲取:

3.其他公司成熟案例的研究
某公司的平安XX(安防項目)為這次研究的案例對象,通過與他們研發人員的交流,我大致得出以下幾點信息:
3.1采用框架
Geoserver(地圖服務器)+geoWebCache(瓦片緩存服務)+JBOSS(中間件)+postgreSQL(空間數據庫)+Oracle(業務數據庫)+uDig(空間數據編輯工具)。
3.2 該項目的一些分析點總結
a.該項目中Geoserver發布了近六十個圖層,無明顯不穩定問題。
b.該項目中的空間數據查詢、編輯以及涉及到的空間分析功能,均用ST_Geometry函數實現,效率不錯。
c.項目中地圖瓦片緩存采用的geoWebCache的動態出圖策略。近六十個圖層作為底圖,第一次請求出圖的時間大約為20多秒(算上網絡耗費)。
d.業務數據和空間數據分開存放,業務數據存放到Oracle中,空間數據存放到postgresql中。
e.項目的部署,為他們研發事先將數據均處理好后,再將已包含了數據的Geoserver和空間庫發給現場工程人員。
3.3 個人對該項目的評價
3.3.1優點
a.出圖和空間分析等功能是基本齊全的,效率和穩定性也不錯。平安XX本身是一個比較大的項目,經歷了比較好的實踐考驗。
b.將空間分析均用ST_Geometry+SQL來實現,而不通過Geoserver本身提供的WFS服務,可以有更多的定制需求,並且如果出錯也方便排查。如果編寫的合理的話,是可以加速數據的獲取。同時,非GIS專業的開發人員也更容易理解。
c.將空間數據和業務數據分開,這樣可以保證原有的其他項目使用的業務數據改動不大,保證系統的穩定性。
3.3.2缺點
a.項目的實施均需要研發人員參與,將數據入庫以及發布。然后還要配合現場將環境布置好。
3.4 有待證實的地方
a.當用geoWebCache進行切圖時,如果底圖配圖很復雜,是否可以保證切圖的不失真。
b.當用GeoWebCache進行切圖時,如果底圖是很大的影像圖(GB以上),是否可以保證切圖的不失真,以及第一次出圖時的出圖效率。
c.當用Geoserver發布超過100個圖層服務時,Geoserver本身的穩定性問題。
4.符合公司的開源解決方案
通過以上的技術關鍵點預研和其他公司成功案例的分析,結合公司目前的整體架構,我個人提出一個自認為比較符合公司的開源解決方案:
GeoServer(地圖服務)+本地瓦片服務(ArcGIS等切圖)+Tomcat(中間件)+Postgresql(空間數據庫)+Oracle(業務數據庫)+uDig(空間數據編輯工具)。
4.1系統詳細構架解說
4.1.1底圖緩存服務
公司可以依然采用ArcGIS來進行切圖(公司有正版),這樣有三個好處:
a.項目實施人員易操作。
b.配圖容易。
c.可以保證切圖質量和效率。
切完的圖,我們采用我們已有的的離線瓦片策略即可,繞過GeoWebCache的采用和配置。當然,如果不想用ArcGIS切圖,想進行全開源化,我們也可以研究使用MapTiler這個開源切圖工具,切圖的效率和效果都比較好。
4.1.2 部件動態出圖(WMS)
采用公司已有的基於GeoServer的功能。
4.1.3 矢量查詢(WFS)
采用公司已有的基於GeoServer的功能。
4.1.4 空間分析功能(WFS)
對於已通過GeoServer開發的空間分析功能,可基於采用。對於未開發的部分,建議采用ST_Geometry函數來進行。
4.1.5 空間數據庫
采用postgresql+postGIS。PostGIS支持批量入庫,也支持中文數據,穩定性和性能均很不錯,操作也很容易。同時,開發方面的教程和社區論壇也很多。
4.1.6 數據編輯器
采用uDig來進行空間數據編輯。uDig可以直接導入shp數據或者postgis中的數據,也可以將shp數據導入到postgresql中。還支持數據的樣式編輯以及SLD文件的生成。
4.2項目的實施
a.切圖環節工程可自行完成。
b.空間數據的入庫環節工程也可以通過postGIS自行完成,操作跟catalog操作一樣很簡單。
c.空間數據的發布和部件基本樣式的關聯,以及業務數據的生成,可以通過修改目前已有的小工具來實現。
d.復雜樣式的配置和發布,可以由研發來協助完成。
-----歡迎轉載,但保留版權,請於明顯處標明出處:http://www.cnblogs.com/naaoveGIS/
如果您覺得本文確實幫助了您,可以微信掃一掃,進行小額的打賞和鼓勵,謝謝 ^_^

