?

基于開源框架的農業地理信息系統設計與開發

2020-07-10 01:17田明璐李琳一葉有燦
上海農業學報 2020年3期
關鍵詞:電子地圖空間數據開源

袁 濤,田明璐,馬 超,李琳一*,王 笑,葉有燦

(1上海市農業科學院農業科技信息研究所,上海 201403;2上海市浦東新區農村改革發展服務中心,上海 201202;3上海市農業農村委員會信息中心,上海 200335)

進入21 世紀,農業信息化對于發展現代農業產業和實現現代化農業管理的重要作用日益彰顯,且已成為國際上農業發展的熱點之一[1]。農業生產以農業用地為載體,表現為農作物在地理空間上的覆蓋與蔓延。地理信息系統(Geographic information system,GIS)是20世紀60年代開始迅速發展起來的集地理空間數據處理與計算機技術于一體的一門交叉技術學科,它是在計算機軟、硬件支持下,對空間對象的地理分布以及與之相關的屬性實現采集、存儲、管理、處理、檢索、分析和顯示等功能,為用戶解決各種應用問題的技術系統[2]。農業生產的空間占有性天然地具有與地理信息系統這種地理空間數據管理技術相結合的內在需求,因此,利用農業地理信息系統對農業生產進行管理就成為一種必然。

我國的農業學者和技術人員在研究和實踐過程中開發了很多農業地理信息系統。如王培等[3]開發的昌吉農業基礎地理信息系統,提出了基于鄉鎮一級農業地理信息系統的設計與開發思路,為實現鄉鎮的無紙化辦公和為鄉鎮基層領導提供相關決策提供了新的解決辦法;范幸龍等[4]提出了基于3S技術并應用于現代煙草種植管理的農業地理信息系統設計方案,為煙草行業更好地利用3S技術,加快推進行業數字化、信息化提供了參考;張會波[5]探討了一種應用于黑龍江墾區的農業地理信息系統架構解決方案,并利用ArcGIS平臺進行了實現。此外,將農業地理信息系統應用于耕地質量管理、土壤重金屬污染評價和預警、土地資源管理方面等也都比較常見[6-8]。由于不同區域的農業特征和需求不同,這些農業地理信息系統的特點也不盡相同,但也有一些相同的特征:如這些農業地理信息系統的主要用戶是政府的農業管理部門;大都基于成熟的商業地理信息平臺進行二次開發而成,應用比較廣泛的如美國ESRI公司的ArcGIS系列、美國MapInfo公司的MapInfo系列、北京超圖軟件股份有限公司的SuperMap等[9]。這些商業軟件平臺功能強大,提供了豐富的二次開發接口,開發簡便快捷,但價格昂貴,市場價格一般在30萬—50萬元人民幣,財政能力相對比較薄弱的區縣和中等規模的農場無法承受。

為了解決這種需求和價格之間的矛盾,本研究擬基于多個開源框架設計開發農業地理信息系統。其中,空間數據的管理通過PostgreSQL數據庫管理系統進行,利用GeoServer地圖管理與發布服務框架進行網絡地圖的發布以及地圖數據的編輯與管理,地圖前端的顯示和渲染通過OpenLayers開源框架實現。

1 開源框架簡介

為了最大程度地減輕用戶的經濟負擔,整個農業地理信息系統基于多個開源框架進行開發,不會涉及版權問題,并通過二次開發將多個開源框架進行整合。具體來說,屬性數據和空間數據的存儲采用PostgreSQL數據庫管理系統,地圖數據的網絡發布與編輯管理采用GeoServer框架,前端采用OpenLayers框架進行地圖的可視化顯示。

1.1 PostgreSQL數據庫管理系統

PostgreSQL是加州大學伯克利分校計算機系開發的對象關系型數據庫管理系統,具有強大的跨平臺性,是目前支持平臺最多的數據庫管理系統之一[10]。它支持大部分SQL標準并且提供了許多其他特性,包括復雜查詢、外鍵、觸發器、視圖、事務完整性等。更重要的是,它支持空間數據管理,可以用來管理電子地圖數據,以及各個地圖圖層和圖斑之間的空間關系。

1.2 GeoServer地圖管理與發布服務框架

GeoServer是遵循OpenGIS Web服務器規范的J2EE 實現,利用GeoServer可以方便地發布網絡地圖數據,允許用戶對空間數據進行更新、刪除、插入等操作,通過GeoServer可以比較容易地在用戶之間迅速共享空間地理信息。GeoServer兼容Web地圖服務(Web Map Service,WMS)和Web要素服務(Web Feature Service,WFS),支持PostgreSQL、Oracle、VPF、 MySQL、ArcSDE、Shapefile、MapInfo等多種數據庫管理系統和多種空間數據格式,并支持上百種地圖投影,能夠將網絡地圖輸出為jpeg、gif、png、SVG、KML等多種格式,并能夠運行在任何基于J2EE/Servlet的容器之上[11]。除此之外,GeoServer還具有包含、相交、距離小于、相同、重疊、穿過等多種空間分析功能。

1.3 OpenLayers前端地圖顯示框架

OpenLayers是一個用于開發WebGIS客戶端的JavaScript包。OpenLayers支持的地圖來源包括Google Maps、Yahoo Map、微軟Virtual Earth、百度地圖、天地圖等,用戶還可以上傳自己制作的地圖,與其他的圖層在OpenLayers中進行疊加。除此之外,OpenLayers實現訪問地理空間數據的方法都符合行業標準,它支持Open GIS協會制定的WMS和WFS網絡服務規范,可以通過遠程服務的方式,將以開放地理空間信息聯盟(Open Geospatial Consortium,OGC)服務形式發布的地圖數據加載到基于瀏覽器的OpenLayers 客戶端中進行顯示[12]。在操作方面,OpenLayers除了可以在瀏覽器中幫助開發者實現地圖瀏覽的基本效果,比如放大、縮小、平移等常用操作之外,還可以進行選取面、選取線、要素選擇、圖層疊加等不同的操作,甚至可以對已有的OpenLayers操作和數據支持類型進行擴展,為其賦予更多的功能。同時,在OpenLayers提供的類庫當中,它還使用了類庫Prototype.js和Rico中的部分組件,為地圖瀏覽操作客戶端增加Ajax 效果。

2 系統總體設計

與開源框架相對應,系統整體架構為3層設計,分別為數據層、服務層和應用層(圖1)。其中數據層主要利用PostgreSQL數據庫管理系統存儲各種類型的空間數據以及空間數據之間的關系,具體包括數據格式轉換、統一的空間參考、數據空間關系以及開放的API訪問接口等;服務層主要通過GeoServer來實現空間數據管理、空間分析、WMS/WFS/KML服務、Web服務、網絡地圖發布等多種功能,并分別實現向下與數據層、向上與應用層之間的通信;應用層主要通過OpenLayers框架來實現地圖顯示、地圖操控、查詢統計、地圖導出等與用戶交互相關的功能。

3 關鍵技術

3.1 頁面緩存技術

即使現在網速已經快了很多,但網頁顯示速度和流暢度仍然是影響用戶體驗的一個重要因素,尤其是電子地圖的放大、縮小以及漫游操作中的用戶體驗。通常情況下電子地圖一般存儲在數據庫或者是硬盤的文件管理系統中,當用戶需要查看某部分地圖時,通過系統向服務器發送請求,服務器根據用戶的請求將該部分地圖讀取出來,然后推送給用戶。此種方式在地圖數據量較大或者有網速瓶頸時極易產生卡頓現象。為了最大程度地優化用戶體驗,提高地圖操作流暢度,本設計采用了頁面緩存技術。具體做法為:在地圖初始化的時候,不但把用戶請求區域范圍內的電子地圖(圖2中區域O)調到系統內存中推送給用戶,而且把用戶請求區域范圍以外一定面積內的地圖也從數據庫或文件夾調到系統內存中。這樣在用戶移動或者縮小地圖的時候,系統就會把周邊需要顯示范圍內的那部分地圖直接從內存中調取出來,推送給用戶,而不用再到數據庫中讀取,這就大大加快了電子地圖顯示的速度,優化了用戶體驗。例如當用戶鼠標拉動地圖向左移動的時候,就會直接顯示地圖右側的B區域;相應的,當用戶鼠標拉動地圖向右移動的時候,就會直接顯示地圖左側的D區域;而當用戶縮小地圖的時候,就會直接將周邊的A、B、C、D和E區域全部顯示出來。

3.2 WFS與WMS

WFS和WMS是地圖顯示的兩種常用技術,各有優劣,一般結合應用。WFS指的是Web要素服務,電子地圖在系統后臺以地圖要素(Feature)的形式存在,當用戶發出請求時,系統按照用戶的請求將相應的矢量地圖要素推送到網頁前端,矢量地圖要素在網頁前端實時完成地圖渲染。這種技術一般在兩種情況下應用:一種是地圖數據量不大,矢量地圖要素在推送到網頁前端以后可以在前端實時快速渲染,不會影響用戶體驗;另一種是用戶需要在鼠標滑過地圖某一區域范圍如標注點、地塊等要素時實時顯示該要素的屬性信息,而無需鼠標點擊,這時候就需要應用該技術。WMS指的是Web地圖服務,此時電子地圖在后臺已經完成渲染,當用戶向系統發送請求時,系統將渲染好的地圖以圖片格式推送到網頁前端。此種技術一般在需要傳輸的地圖數據量較大時采用,因為大數據量的矢量地圖要素直接推送到網頁前端進行實時渲染,會占用大量時間,使網頁顯示時產生卡頓,而WMS技術可以很好地解決這個問題。

3.3 數據與顯示分離

傳統的shp格式的電子地圖,數據和顯示通常是一體化的。當用ArcGIS打開一幅電子地圖,想要對地圖進行專題渲染時,一般是通過一些相關的屬性操作,將該地圖的樣式保存為一個mxd文檔。當下次再打開該mxd文檔時,此shp格式電子地圖的樣式可以原樣顯示,如果換作另外一個mxd文檔打開此電子地圖,則樣式丟失。為了解決這個問題,利用QGIS來設置地圖樣式,該地圖樣式設置完成后會生成一個.sld格式的皮膚文件,保存該.sld皮膚文件,當下次打開此shp格式電子地圖時,無論加載此地圖的文檔是否改變,只要加載相應的.sld皮膚文件,則該地圖的樣式就可以保留。

3.4 功能模塊封裝技術

構建服務主要利用Web服務(WebService)來完成。Web服務顧名思義就是一個運行在Web上的服務,它通過網絡為應用程序提供服務方法,類似一個遠程的服務提供者,主要是基于可擴展標記語言(eXtensible Markup Language,XML)并利用簡單對象訪問協議(Simple Object Access Protocol,SOAP)實現跨平臺信息傳遞的一種技術。在整合開源框架的過程中,共實現了2種粒度的封裝,第一種是接口級封裝,粒度較小,將各個功能以函數組的形式封裝成接口,系統需要二次開發的時候直接根據接口說明調用接口即可,無需關心底層的實現方式,將多個接口組合起來即可輕松實現自己所需的功能;第二種是模塊級封裝,粒度較大,例如將放大、縮小、漫游、識別、全圖等地圖常規操作功能封裝到一起,封裝成一個工具條,在系統需要二次開發時,開發人員可直接將整個工具條拉過來調用,即可實現地圖的常規操作功能,無需關心這些功能的實現方法。

4 系統應用

基于上述3個開源框架和系統架構,開發的農業地理信息系統主要具有以下幾個方面的功能:①系統以“天地圖”基礎地理數據和遙感影像為基礎底圖,能夠實現電子地圖和遙感影像之間的自由切換;②系統具有放大、縮小、漫游、識別、全圖等地圖基本操作功能;③系統能夠實現測量功能,包括測量圖斑面積大小和線段長度,在面積較小和距離較短時計量單位分別為平方米和米,在面積較大和距離較長時計量單位自動變為平方千米和千米;④能夠以多種方式進行查詢,包括模糊查詢、鼠標點擊地圖查詢、鼠標拉框查詢以及通過地圖查詢數據庫和通過數據庫查詢地圖等;⑤能夠實現矢量格式和柵格格式電子地圖的上傳和存儲。針對矢量格式的電子地圖,可以方便地生成專題地圖,根據用戶選擇進行屬性數據統計,并可將統計結果導出到用戶電腦上。

本系統被應用在擁有3 300余hm2的長江農場。在長江農場的應用主要分為3個方面:①種植結構調查。長江農場整體上對于下屬各個分部有總體要求,每個分部需要種植某個品種多大面積。在前期調查的基礎上,制作成專題地圖呈現于農場負責人面前,負責人可以直觀查看各品種水稻分布位置和面積大小。②水稻長勢監測。通過無人機監測的影像,對長江農場躍進分部的600余hm2水稻長勢進行分析,將水稻長勢分析結果按照優、中、差3個等級進行分類,并將分類結果以專題地圖的形式顯示在系統中。農場負責人根據水稻長勢進行決策,確定水稻下一階段水肥管理措施(圖3)。③災害監測。在臺風過后,對長江農場部分區域的水稻利用無人機獲取影像數據,并對影像進行提取,得到水稻倒伏范圍與面積數據。農場負責人根據水稻倒伏情況,做出相應管理決策。

5 結論

通過對多個開源框架的整合,所開發的農業地理信息系統架構靈活、輕便快捷,可以實現商業地理信息平臺的絕大部分功能,能夠滿足農業信息化建設中對農業資源管理、農業規劃、農業專題地圖制作的需要。通過將開源框架封裝成一個個Web服務的形式,極大減少了系統開發人員的重復工作,提高了系統開發的效率,降低了系統開發的難度,能夠根據用戶的個性化需求快速地搭建出用戶所需的系統。同時,整個系統無需利用商業軟件,繞開了軟件版權費用問題,系統開發和對外服務成本大幅降低,解決了區縣級管理部門和中型農場信息化管理中預算不足的難題。

猜你喜歡
電子地圖空間數據開源
校園武術“學、練、賽”一體化實踐探索
基于百度地圖開放平臺的導航電子地圖課程實踐教學研究
傳播開源精神 共迎美好未來
電子地圖在地理課堂教學中的運用
10項空間數據與信息傳輸領域國家標準正式發布
淺談電子地圖在高中地理教學中的應用
GIS空間數據與地圖制圖融合技術
五毛錢能買多少頭牛
2019開源杰出貢獻獎
城市交通旅游電子地圖的研究與應用分析
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合