牛艷霞,馬秉斌
青海省基礎地理信息中心,青海西寧 810000
基于Node.js和MongoDB實現地理國情樣本庫系統
牛艷霞,馬秉斌
青海省基礎地理信息中心,青海西寧 810000
本文主要論述了如何基于Node.js與MongoDB數據庫建立地理國情樣本庫系統,完成對地理國情普查成果中樣本點數據的統一存儲、查詢和管理,并介紹了系統功能架構及實現。
地理國情樣本庫系統;Node.js;MongoDB
地理國情普查是從地理空間位置分布的角度出發來描述和研究我國國情國力信息的重要手段,是掌握自然資源、生態環境以及人類活動基本情況的綜合性、基礎性工作。其目的是全面獲取各類地理國情信息,并進行綜合統計分析,揭示經濟社會發展和自然資源環境的空間分布及內在關系,實現地理國情信息對政府、企業和公眾的服務[1]。
地理國情樣本數據包括遙感影像解譯樣本數據、地面照片、遙感影像實例等幾類數據,這些成果數據一般以獨立文件形式存在,由于其數量巨大,且相互之間存在依賴對照關系,通過人工加文件系統的方式很難對其進行有效管理,選擇建立一個地理國情樣本庫管理系統可以更好的管理和存儲此類數據,便于后期工作。
1.1 Node.js
Node.js是一個基于ChromeV8引擎建立的服務器端JavaScript運行環境,可以用來快速搭建具有高響應速度和易于擴展的網絡應用。
Node.js具有異步I/O,事件驅動、單線程等特性[2],其基于事件輪詢的異步響應方式,使得Node.js在響應文件資源讀取、數據庫查詢等請求時,無需等待硬盤I/ O完成,在數據準備好后會通過事件機制通知Node.js進行響應,這種編程模型在處理WMTS服務的海量圖片小文件并發請求時可同時滿足高并發和高響應的要求,因此,基于Node.js構建的WMTS服務相比傳統GIS服務器軟件提供的WMTS服務具有先天上的優勢。
1.2 MongoDB
MongoDB是目前非常流行的一種非關系型數據庫(NoSql),它具有強大、靈活、可擴展的數據存儲方式,其功能非常豐富,甚至包括對MapReduce式聚合的支持,以及對地理空間索引的支持。MongoDB是面向文檔的數據庫,基本思路是將原來“行”(row)的概念換成更加靈活的“文檔”(document)模型[3],這種方式可以將文檔或數組進行內嵌,用一條記錄就可以表示非常復雜的層次關系,非常切合面向對象的編程模型。
MongoDB的GridFS機制可以使得MogoDB可以脫離獨立文件存儲架構進行大二進制文件的存儲,其利用復制或分片機制可以避免用于存儲用戶上傳內容的文件系統出現故障,而且由于GridFS在存儲大量文件時不產生磁盤碎片,非常適合本系統中照片和樣本影像等海量小文件數據的存儲和管理。
地理國情樣本庫系統需完成地理國情樣本數據的定義、存儲和管理,以及感影像解譯樣本數據、地面照片、遙感影像實例等二進制圖片文件在MongoDB數據庫中的入庫、出庫操作和管理,并完成用戶驗證和授權等安全管理機制的機那里,其具體可劃分為樣本定義、樣本查詢、樣本管理、用戶管理四個功能模塊,其系統架構如圖1所示。

圖1 系統架構圖
3.1 樣本管理
樣本管理模塊主要用于完成地理國情要素中12個一級類、58個二級類、135個三級類的管理,其功能包括新增樣本分類、修改樣本分類和刪除樣本分類。在具體實現時,為了保證三個級別分類的歸屬關系一致,設計為三級聯動更新的模式,通過調用Node.js實現的rest服務接口來實現json格式數據的異步傳輸。
3.2 樣本定義
樣本定義模塊主要用于完成所有地理國情要素分類的地類名稱、定義描述、采集要求等屬性要素的管理、修改和更新,以及完成地類實景照片、樣本照片、解譯樣本等圖片和影像的上傳、更新和屬性管理。其具體實現為界面UI采用Bootstrap框架進行搭建,前端交互采用jQuery框架和相關插件實現文件的異步上傳,服務端利用“jquery-file-upload-middleware”中間件實現文件的上傳管理。
3.3 樣本查詢
樣本查詢模塊主要用于完成地理國情普查工作中所有采集到的樣本點數據的查詢和展示,其查詢方式分為分類編碼查詢、影像分類查詢、影像分辨率查詢、照片拍攝時間查詢、影像獲取時間查詢幾種,并可以綜合幾種查詢方式以進行組合查詢,查詢到的結果展示包括樣本點詳細信息描述,樣本照片和樣本影像。在具體實現時考慮到入庫效率問題,對已經采集到的樣本數據通過編寫批處理工具的方式實現了集中入庫,其最終實現效果如圖2所示。
地理國情普查樣本庫系統存儲和管理的具有連續時間特征且具有對照關系的地面照片和遙感影像數據可作為遙感影像解譯工作的依據,可以為遙感影像解譯者建立對相關地域的正確認識提供重要支持,并可在解譯結果的質量控制方面發揮重要作用。同時,地理國情普查樣本庫系統的建立以一種高效的方式完成了地理國情查成果中樣本點及相關數據的統一管理,有利于后續地理國情普查工作的開展。

圖2 地理國情普查樣本庫系統
[1]國家測繪地理信息局.地理國情普查試點方案,2012.
[2]樸靈.深入淺出Node.js[M].北京:人民郵電出版社,2013.
[3]程顯峰.MongoDB權威指南[M].北京:人民郵電出版社,2011.
[4]謝小惠.福建省地理國情普查試點成果建庫實踐測繪與空間地理信息.2014-06-25.
TP3
A
1674-6708(2015)137-0131-01