邱正紅
上海江南建筑設計院有限公司 上海 201899
目前,隨著計算機技術的飛躍發展,各個行業均采用數據庫技術對單位的項目和數據進行管理,巖土工程勘察行業也不例外,針對巖土工程勘察項目可視化管理,傳統的方法是構建GIS地理數據庫,在GIS平臺上進行巖土工程勘察數據的可視化,但是傳統GIS平臺建設過程復雜和維護成本高,且需要具有GIS專業背景的技術人員進行管理[1]。針對以上缺陷,本文闡述利用百度地圖API技術建立巖土工程勘察管理系統[2-4],詳細介紹了管理系統的體系結構和使用百度API開發系統的步驟,為研究巖土工程勘察管理系統研發提供技術支持。
百度地圖API(Application Programming Interface)是一套由JavaScript語言編寫的應用程序接口,它提供了網絡地圖服務的全部功能,包括地圖數據、地圖顯示、地圖操作、地圖標注、地圖編輯、地圖查詢等。百度API通過地圖服務應用接口將應用開發平臺和地理信息數據捆綁,將復雜的地理信息系統底層進行封裝,用戶可不必了解它的技術細節就能在應用中快速構建基礎地理底圖[5],進行各種專題要素及地圖查詢等網絡地圖服務,從而快速地在網站中構建功能豐富、交互性強的地圖應用程序。
要使用百度地圖進行開發,首先要申請百度地圖API key。開發人員需要在百度網站上注冊百度賬戶,然后根據需要創建密鑰,再配置API key。創建一個WinForm項目,在該項目中調用百度地圖API,由于百度地圖API是基于javascript的,所以它更適合于web環境。當我們使用它來做WinForm程序的時候,我們需要用到webBrowser控件,然后加載一個包含了百度地圖API的本地網頁文件。
利用百度地圖API的可視化功能,采用數據庫管理技術,將巖土工程勘察項目數據信息統一存儲在數據庫中,合理、高效地管理巖土工程勘察項目數據,以統一的方式輸入、分析、輸出這些數據,實現對巖土工程數據的科學管理和及時更新[6]。
本系統主要是對巖土工程勘察項目數據進行管理,以實現巖土工程勘察項目數據的快速查詢和高效利用。本系統在Visual studio 2013集成開發平臺上采用C#語言進行開發,調用百度地圖API接口,數據庫采用Microsoft SQL Server 2016數據庫,系統框架如圖1所示。

圖1 系統框架圖Fig.1 The framework of system
數據庫管理模塊主要包括工程項目數據信息表、參建單位信息表、合同備案信息表和地圖信息表等。工程項目數據信息表如表1所示,參建單位信息表如表2所示,合同備案信息表如表3所示,地圖信息表如表4所示。

表1 工程項目數據信息表Tab.1 the table of project data information

表2 參建單位信息表Tab.2 The table of construction information

表3 合同備案信息表Tab.3 The table of contract information

表4 地圖信息表Tab.4 the table of map information
該系統主要實現的功能有:工程項目數據的錄入、工程項目數據的查詢、工程項目數據的統計和工程項目百度地圖位置顯示等功能。系統功能如圖2所示。

圖2 系統功能圖Fig.2 The function of system
工程項目數據的錄入包括:工程項目數據信息、參建單位信息、合同備案信息、地圖信息等。工程項目數據的錄入界面見圖3所示。
工程項目數據信息錄入包括:工程編號、工程名稱、工程地址、勘察階段、報告編寫人、施工日期、參建單位信息、文件路徑等信息。
合同備案數據錄入包括:工程名稱、合同日期、合同金額、付款狀態、付款聯系人、已付款金額、付款日期和合同文件路徑等信息。
參建單位信息錄入包括:參建單位名稱、參建單位地址、聯系人/電話等信息。
地圖信息主要通過調用工程名稱和工程地址字段和其他信息表進行關聯。

圖3 工程數據的錄入界面Fig.3 The entry interface of engineering data
輸入“工程編號”、“工程名稱”、“工程地址”或者“報告編寫人”的一項或者多項然后點擊“查找”可以對項目進行模糊查詢。工程信息查詢界面見圖4所示。

圖4 工程信息查詢界面Fig.4 The query interface of engineering information
在百度地圖圖5界面左側搜索欄中輸入地址,可以顯示該地址范圍內已錄入的工程,圖中綠色為已錄入的工程,點擊該圖標,可以打開項目信息對話框,如下圖6。

圖5 百度地圖查詢界面Fig.5 The query interface of baidu map
調用百度地圖前臺API偽碼如下所示:
function search() {
var keyword = document.getElementById(‘searchBox’).getElementsByTagName(‘input’)[0].value; //從HTML文檔“input”標簽中獲取輸入的值
var localSearch = new BMap.LocalSearch(map, {renderOptions: { map: map, panel: “r-result”} }); //根據提供的檢索區域,實例化本地檢索功能
localSearch.setInfoHtmlSetCallback(function (poi, html) { //調用回調函數
if (poi && poi.point) {
map.centerAndZoom(poi.point, 17); // 初始化地圖,設置中心點坐標和地圖級別
window.external.Search(poi.point.lng, poi.point.lat); // 根據坐標進行搜索
}
})
localSearch.search(keyword); //根據keyword參數進行本地搜索
}
可以對該項目進行“修改”和“刪除”操作。
在圖中任何位置“單擊”,可以打開添加項目對話框,以增加項目,如下圖7。

圖6 項目信息對話框Fig.6 The dialog of Project information

圖7 添加項目對話框 Fig.7 The dialog of adding information
輸入完成后,點擊“保存”按鈕,可以錄入項目進入數據庫。
區域項目查詢是以地圖某個中心為原點,收搜一定半徑區域內的工程項目,并在地圖上顯示出來,區域項目查詢界面如圖8所示。(嘉定區區政府附近項目)

圖8 區域項目查詢界面Fig.8 The query interface of regional project
通過區域項目查詢功能,可以查找該區域項目信息,通過對這些項目信息的對比,可以發現該區域地質情況所具有的共性,以方便對該區域其他工程的參考利用。
項目報告查詢是查找某個具體的工程項目,并以文件路徑的方式顯示該工程項目的電子報告,方便工程技術人員快熟查找工程項目的電子資料。項目報告查詢界面如9所示。

圖9 項目報告查詢界面Fig.9 The query interface of project report
(1)百度地圖API由于其特有的優點而被廣大編程愛好者及APP制作者所青睞,本文利用百度地圖API來開發巖土工程管理系統,多技術和多學科的結合也是目前巖土工程的一個發展方向。
(2)本管理系統具有操作簡便,無須對用戶進行系統培訓,平臺可操作性好,具有先進性、實用性。將工程項目在百度地圖上進行顯示,方便用戶更直觀地獲取巖土工程信息。
(3)由于本管理系統是針對PC機的,如何開發移動APP版方便用戶直接在手機上進行查詢;同時地圖模塊中增加輸入項目的坐標自動標記在地圖上;在地圖中增加查詢鉆孔地層功能,方便用戶隨時查看周邊項目地層情況將是本系統重點改進方向。
參考文獻
[1] 杜傳明.百度地圖API在小型地理信息系統中的應用[J].測繪與空間地理信息,2011,34(2):152-153.
[2] 周浩.基于百度地圖API地震應急避難場所信息地圖化動態顯示的實現[J].地震工程學報,2015,37(b07):114-118.
[3] 劉艷中,伍光勝,李建勇.基于百度地圖的自動氣象站監控系統實現[J].氣象科學,2016,44(1):167-170.
[4] 張得天,王佳傲,陳飛.國內網絡地圖服務比較分析研究[J].華東師范大學學報(自然科學版),2017,(6):85-95.
[5] 李艷.基于地圖API的Web地圖服務及應用研究[J].地理信息世界,2010,8(2):54-57.
[6] 王萬麗.百度地圖API應用綜述[J].電腦編程技巧與維護,2017,(5):35-36.