邱正紅
上海江南建筑設(shè)計(jì)院有限公司 上海 201899
目前,隨著計(jì)算機(jī)技術(shù)的飛躍發(fā)展,各個(gè)行業(yè)均采用數(shù)據(jù)庫技術(shù)對(duì)單位的項(xiàng)目和數(shù)據(jù)進(jìn)行管理,巖土工程勘察行業(yè)也不例外,針對(duì)巖土工程勘察項(xiàng)目可視化管理,傳統(tǒng)的方法是構(gòu)建GIS地理數(shù)據(jù)庫,在GIS平臺(tái)上進(jìn)行巖土工程勘察數(shù)據(jù)的可視化,但是傳統(tǒng)GIS平臺(tái)建設(shè)過程復(fù)雜和維護(hù)成本高,且需要具有GIS專業(yè)背景的技術(shù)人員進(jìn)行管理[1]。針對(duì)以上缺陷,本文闡述利用百度地圖API技術(shù)建立巖土工程勘察管理系統(tǒng)[2-4],詳細(xì)介紹了管理系統(tǒng)的體系結(jié)構(gòu)和使用百度API開發(fā)系統(tǒng)的步驟,為研究巖土工程勘察管理系統(tǒng)研發(fā)提供技術(shù)支持。
百度地圖API(Application Programming Interface)是一套由JavaScript語言編寫的應(yīng)用程序接口,它提供了網(wǎng)絡(luò)地圖服務(wù)的全部功能,包括地圖數(shù)據(jù)、地圖顯示、地圖操作、地圖標(biāo)注、地圖編輯、地圖查詢等。百度API通過地圖服務(wù)應(yīng)用接口將應(yīng)用開發(fā)平臺(tái)和地理信息數(shù)據(jù)捆綁,將復(fù)雜的地理信息系統(tǒng)底層進(jìn)行封裝,用戶可不必了解它的技術(shù)細(xì)節(jié)就能在應(yīng)用中快速構(gòu)建基礎(chǔ)地理底圖[5],進(jìn)行各種專題要素及地圖查詢等網(wǎng)絡(luò)地圖服務(wù),從而快速地在網(wǎng)站中構(gòu)建功能豐富、交互性強(qiáng)的地圖應(yīng)用程序。
要使用百度地圖進(jìn)行開發(fā),首先要申請(qǐng)百度地圖API key。開發(fā)人員需要在百度網(wǎng)站上注冊(cè)百度賬戶,然后根據(jù)需要?jiǎng)?chuàng)建密鑰,再配置API key。創(chuàng)建一個(gè)WinForm項(xiàng)目,在該項(xiàng)目中調(diào)用百度地圖API,由于百度地圖API是基于javascript的,所以它更適合于web環(huán)境。當(dāng)我們使用它來做WinForm程序的時(shí)候,我們需要用到webBrowser控件,然后加載一個(gè)包含了百度地圖API的本地網(wǎng)頁文件。
利用百度地圖API的可視化功能,采用數(shù)據(jù)庫管理技術(shù),將巖土工程勘察項(xiàng)目數(shù)據(jù)信息統(tǒng)一存儲(chǔ)在數(shù)據(jù)庫中,合理、高效地管理巖土工程勘察項(xiàng)目數(shù)據(jù),以統(tǒng)一的方式輸入、分析、輸出這些數(shù)據(jù),實(shí)現(xiàn)對(duì)巖土工程數(shù)據(jù)的科學(xué)管理和及時(shí)更新[6]。
本系統(tǒng)主要是對(duì)巖土工程勘察項(xiàng)目數(shù)據(jù)進(jìn)行管理,以實(shí)現(xiàn)巖土工程勘察項(xiàng)目數(shù)據(jù)的快速查詢和高效利用。本系統(tǒng)在Visual studio 2013集成開發(fā)平臺(tái)上采用C#語言進(jìn)行開發(fā),調(diào)用百度地圖API接口,數(shù)據(jù)庫采用Microsoft SQL Server 2016數(shù)據(jù)庫,系統(tǒng)框架如圖1所示。
圖1 系統(tǒng)框架圖Fig.1 The framework of system
數(shù)據(jù)庫管理模塊主要包括工程項(xiàng)目數(shù)據(jù)信息表、參建單位信息表、合同備案信息表和地圖信息表等。工程項(xiàng)目數(shù)據(jù)信息表如表1所示,參建單位信息表如表2所示,合同備案信息表如表3所示,地圖信息表如表4所示。
表1 工程項(xiàng)目數(shù)據(jù)信息表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
該系統(tǒng)主要實(shí)現(xiàn)的功能有:工程項(xiàng)目數(shù)據(jù)的錄入、工程項(xiàng)目數(shù)據(jù)的查詢、工程項(xiàng)目數(shù)據(jù)的統(tǒng)計(jì)和工程項(xiàng)目百度地圖位置顯示等功能。系統(tǒng)功能如圖2所示。
圖2 系統(tǒng)功能圖Fig.2 The function of system
工程項(xiàng)目數(shù)據(jù)的錄入包括:工程項(xiàng)目數(shù)據(jù)信息、參建單位信息、合同備案信息、地圖信息等。工程項(xiàng)目數(shù)據(jù)的錄入界面見圖3所示。
工程項(xiàng)目數(shù)據(jù)信息錄入包括:工程編號(hào)、工程名稱、工程地址、勘察階段、報(bào)告編寫人、施工日期、參建單位信息、文件路徑等信息。
合同備案數(shù)據(jù)錄入包括:工程名稱、合同日期、合同金額、付款狀態(tài)、付款聯(lián)系人、已付款金額、付款日期和合同文件路徑等信息。
參建單位信息錄入包括:參建單位名稱、參建單位地址、聯(lián)系人/電話等信息。
地圖信息主要通過調(diào)用工程名稱和工程地址字段和其他信息表進(jìn)行關(guān)聯(lián)。
圖3 工程數(shù)據(jù)的錄入界面Fig.3 The entry interface of engineering data
輸入“工程編號(hào)”、“工程名稱”、“工程地址”或者“報(bào)告編寫人”的一項(xiàng)或者多項(xiàng)然后點(diǎn)擊“查找”可以對(duì)項(xiàng)目進(jìn)行模糊查詢。工程信息查詢界面見圖4所示。
圖4 工程信息查詢界面Fig.4 The query interface of engineering information
在百度地圖圖5界面左側(cè)搜索欄中輸入地址,可以顯示該地址范圍內(nèi)已錄入的工程,圖中綠色為已錄入的工程,點(diǎn)擊該圖標(biāo),可以打開項(xiàng)目信息對(duì)話框,如下圖6。
圖5 百度地圖查詢界面Fig.5 The query interface of baidu map
調(diào)用百度地圖前臺(tái)API偽碼如下所示:
function search() {
var keyword = document.getElementById(‘searchBox’).getElementsByTagName(‘input’)[0].value; //從HTML文檔“input”標(biāo)簽中獲取輸入的值
var localSearch = new BMap.LocalSearch(map, {renderOptions: { map: map, panel: “r-result”} }); //根據(jù)提供的檢索區(qū)域,實(shí)例化本地檢索功能
localSearch.setInfoHtmlSetCallback(function (poi, html) { //調(diào)用回調(diào)函數(shù)
if (poi && poi.point) {
map.centerAndZoom(poi.point, 17); // 初始化地圖,設(shè)置中心點(diǎn)坐標(biāo)和地圖級(jí)別
window.external.Search(poi.point.lng, poi.point.lat); // 根據(jù)坐標(biāo)進(jìn)行搜索
}
})
localSearch.search(keyword); //根據(jù)keyword參數(shù)進(jìn)行本地搜索
}
可以對(duì)該項(xiàng)目進(jìn)行“修改”和“刪除”操作。
在圖中任何位置“單擊”,可以打開添加項(xiàng)目對(duì)話框,以增加項(xiàng)目,如下圖7。
圖6 項(xiàng)目信息對(duì)話框Fig.6 The dialog of Project information
圖7 添加項(xiàng)目對(duì)話框 Fig.7 The dialog of adding information
輸入完成后,點(diǎn)擊“保存”按鈕,可以錄入項(xiàng)目進(jìn)入數(shù)據(jù)庫。
區(qū)域項(xiàng)目查詢是以地圖某個(gè)中心為原點(diǎn),收搜一定半徑區(qū)域內(nèi)的工程項(xiàng)目,并在地圖上顯示出來,區(qū)域項(xiàng)目查詢界面如圖8所示。(嘉定區(qū)區(qū)政府附近項(xiàng)目)
圖8 區(qū)域項(xiàng)目查詢界面Fig.8 The query interface of regional project
通過區(qū)域項(xiàng)目查詢功能,可以查找該區(qū)域項(xiàng)目信息,通過對(duì)這些項(xiàng)目信息的對(duì)比,可以發(fā)現(xiàn)該區(qū)域地質(zhì)情況所具有的共性,以方便對(duì)該區(qū)域其他工程的參考利用。
項(xiàng)目報(bào)告查詢是查找某個(gè)具體的工程項(xiàng)目,并以文件路徑的方式顯示該工程項(xiàng)目的電子報(bào)告,方便工程技術(shù)人員快熟查找工程項(xiàng)目的電子資料。項(xiàng)目報(bào)告查詢界面如9所示。
圖9 項(xiàng)目報(bào)告查詢界面Fig.9 The query interface of project report
(1)百度地圖API由于其特有的優(yōu)點(diǎn)而被廣大編程愛好者及APP制作者所青睞,本文利用百度地圖API來開發(fā)巖土工程管理系統(tǒng),多技術(shù)和多學(xué)科的結(jié)合也是目前巖土工程的一個(gè)發(fā)展方向。
(2)本管理系統(tǒng)具有操作簡便,無須對(duì)用戶進(jìn)行系統(tǒng)培訓(xùn),平臺(tái)可操作性好,具有先進(jìn)性、實(shí)用性。將工程項(xiàng)目在百度地圖上進(jìn)行顯示,方便用戶更直觀地獲取巖土工程信息。
(3)由于本管理系統(tǒng)是針對(duì)PC機(jī)的,如何開發(fā)移動(dòng)APP版方便用戶直接在手機(jī)上進(jìn)行查詢;同時(shí)地圖模塊中增加輸入項(xiàng)目的坐標(biāo)自動(dòng)標(biāo)記在地圖上;在地圖中增加查詢鉆孔地層功能,方便用戶隨時(shí)查看周邊項(xiàng)目地層情況將是本系統(tǒng)重點(diǎn)改進(jìn)方向。
參考文獻(xiàn)
[1] 杜傳明.百度地圖API在小型地理信息系統(tǒng)中的應(yīng)用[J].測(cè)繪與空間地理信息,2011,34(2):152-153.
[2] 周浩.基于百度地圖API地震應(yīng)急避難場(chǎng)所信息地圖化動(dòng)態(tài)顯示的實(shí)現(xiàn)[J].地震工程學(xué)報(bào),2015,37(b07):114-118.
[3] 劉艷中,伍光勝,李建勇.基于百度地圖的自動(dòng)氣象站監(jiān)控系統(tǒng)實(shí)現(xiàn)[J].氣象科學(xué),2016,44(1):167-170.
[4] 張得天,王佳傲,陳飛.國內(nèi)網(wǎng)絡(luò)地圖服務(wù)比較分析研究[J].華東師范大學(xué)學(xué)報(bào)(自然科學(xué)版),2017,(6):85-95.
[5] 李艷.基于地圖API的Web地圖服務(wù)及應(yīng)用研究[J].地理信息世界,2010,8(2):54-57.
[6] 王萬麗.百度地圖API應(yīng)用綜述[J].電腦編程技巧與維護(hù),2017,(5):35-36.