鄧澄
(江西省地礦測繪院 江西南昌 330000)
地理信息系統是在近十幾年當中所發展起來的一種具有綜合性的應用系統,將各種信息數據和地理位置以及相關視圖實現了有機的結合,并將多媒體技術、虛擬技術等相融合,通過計算機實現了數據的采集、存儲、編輯、轉換以及輸出等。伴隨著社會的不斷發展,傳統的地理信息系統已經無法滿足人們日益變化的實際需求,為了盡可能的實現信息傳輸和共享,避免出現“信息孤島”的問題,應該利用互聯網技術還對其進行完善,實際上就是構建網絡地理信息系統,一方面可以保證地理信息的實時更新,另一方面還可以為用戶的使用和管理提供方便。
WinsockAPI在Windows系統中針對于網絡開發提供了一個協議無關的接口,其中主要包括了一組網絡I/O和獲取信息的庫函數,應用程序通過對這部分函數的調取可以實現不同的功能,而且還為服務器程序的編寫提供了不同的平臺渠道。網絡地理信息系統實際上是由互聯網所連接的多個獨立的GIS系統所組成的,在數據信息傳輸和響應的過程中,與Winsock的編程模型具有較大的相似點,因此基于Winsock技術的網絡地理信息系統的研發是現階段的設計熱點。
Winsock控件為編程人員提供了更加便捷的訪問TCP和UDP的途徑,程序員只需要通過設置其控件的屬性就能夠和遠程計算機實現雙向的數據傳輸。采用Winsock的編程模型來構建C/S結構的網絡地理信息系統,通常情況下,服務器只是對數據進行管理,而其他的任務則被分配到客戶機上面,使得服務器和客戶機之間通過網絡協議來實現通信,這種模式不僅使得客戶機的性能實現了較大程度的提高,而且服務器和客戶機在物理層面上是比較容易實現擴充的。
網絡地理信息系統的服務主要包括了功能性服務和數據服務這兩種。其中,功能性服務實際上就是實現地理信息系統的網絡服務功能,只需要開發出與用戶進行交流的界面,就可以實現網絡服務功能的調用,對本地數據信息進行上傳和下載,但是一般情況下要在特定的條件下才能使用;另一方面,數據服務,就是使得用戶能夠直接進行數據的瀏覽和下載,開發人員可以直接調用數據等;且對于只能瀏覽,不能下載的保密性數據信息而言,則不能夠對其進行地理信息的分析和處理。

圖1 基于Winsock的網絡地理信息系統結構模型示意圖
2.1.1 地圖管理模塊
地圖管理模塊,為用戶提供地圖操作的界面以及與服務器端實現通信的接口們主要包括了地圖的管理和視圖的管理;其中地圖的管理則是對其各部分的組成要素圖層進行繪制、保存、添加等具體的操作;而視圖的管理則是實現圖像的放大與縮小等操作;通信接口方面則負責連接和關閉相互之間的連接與數據的傳輸等。
2.1.2 操作命令響應模塊
這一功能模塊是按照自定義的命令協議格式來生成不同的操作命令,并將其傳輸到數據的通信模塊當中,再由其傳送到服務器端。對于請求端而言,其協議是較為簡單的,首先是將請求類型按照相應的格式傳送到服務器端,在對所需要的數據進行讀取之后,客戶端將其進行有效的組合,且校驗位還對數據的正確性進行了較大程度的保證。
2.1.3 數據通信模塊
用戶端數據通信和Server端數據通信是數據通信功能模塊中的重要組成部分,通過服務器和客戶端的接口來實現二者之間的數據傳輸,從根本上來說,其實現了數據發送隊列和接受隊列的維護。同時,在對系統進行設計的過程當中,為了防止主程序出現阻塞的問題,需要在連接套接字上單獨設置一個子線程,從而保證程序的運行效率;需要注意的是,在對流式套接字進行使用的時候,在用戶進行發送和接受數據的操作之前應先建立連接。
2.1.4 數據解析模塊
數據解析模塊,對通信雙方的通信規則進行解析,也就是對協議的分析,對于通信系統的運行和維護具有十分重要的作用,將數據打包的格式作為依據,對命令請求的類別進行判斷,之后再由服務器對其進行處理,將結果重新傳送到用戶端。
2.2.1 地圖瀏覽器界面的設計
瀏覽器是客戶端的一種的應用軟件,主要是為用戶提供一個可以和網絡進行連接的信息檢索平臺。在本研究中的客戶端瀏覽器主要包括了遠程請求和本地部分的功能,按照用戶對地圖使用的習慣,同時與桌面的GIS功能界面框架相結合,地圖瀏覽器界面主要包括了工具欄、標題、狀態欄、菜單以及顯示區等五個部分,如圖2所示。

圖2 地圖瀏覽器主界面示意圖
2.2.2 文件的更新機制
在本次對網絡地理信息系統的設計當中,對文件數據進行更新,主要采用的是向后追加的方法,一般情況下主要利用圖形元素的類別和識別ID就可以實現,但是需要注意的是,由于在文件中已經存在了同樣的對象,因此要將原有的對象按照現在的屬性進行重新繪制,而且由于文件的數據量大小具有較大的差別,因此更新的過程可能不會一次性完成。
2.3.1 并發服務器的多線程機制
并發服務器的線程主要包括了主線程和子線程兩種類別,其中的主線程與客戶端之間不會直接進行通信連接,而是由子線程完成,且每個子線程只與一個客戶進行通信;當通信請求到達的時候,需要對其監理一個子線程來對請求進行及時的處理,待當完成響應之后,這一子線程就會自動退出,并重新為客戶創建新的通信線程;另外,為了避免出現大量線程同時開啟的問題,在本次研究中采用了套接字數組的方法對其進行了限制。

圖3 服務器主線程和子線程結構示意圖
2.3.2 圖幅的維護與共享
圖幅的維護是地圖管理人員的工作內容,在基于Winsock的網絡地理信息系統當中,地圖的管理人員可以使用遠程終端對服務器當中的地圖庫內的文件進行實時的動態管理。當管理人員取得使用權限之后,用戶可以在自己的操作權限之內對圖幅進行本地下載,將編輯好的圖幅重新進行上傳,這種圖幅的維護和共享極大程度的保證了數據的實時性。
綜上所述,基于Winsock技術的網絡地理信息系統的研發,具有簡單實用、投入成本低、可擴展性強的優勢,且在系統的研發過程中,還實現了以下幾方面的功能:①采用了C/S結構來對網絡地理信息系統中的數據和文件類型進行了統一的制定;②在客戶端和服務器端之間建立了通信協議,用戶可以遠程實現對信息的處理;③對于服務器的設計,則進一步實現了對其的維護管理和實時更新等;④在網絡通信層面上還保證了客戶端和服務器端的相互協調性。當然,網絡地理信息系統的研發還需要實現進一步的完善,工作人員應該加大研究力度,逐漸實現系統功能的完善。
[1]薛晨曦,陳犖,李軍.基于高性能計算平臺的地理信息系統算法調度引擎的研究[J].現代電子技術,2015,22:44~47.
[2]謝斌.計算機網絡安全中虛擬網絡技術的應用分析[J].電子技術與軟件工程,2015,22:211.
[3]孔德川.基于WebGIS的庫站地理信息系統設計與實現[J].河南科技學院學報(自然科學版),2014,01:62~66.
[4]高晗,官云蘭.基于云計算的移動地理信息系統的研發[J].測繪與空間地理信息,2014,04:145~147+150.
[5]何磊,陳圣波.網絡地理信息系統的應用和開發——以長春市地圖查詢信息系統為例[J].國土資源遙感,2004,02:72~76.