王 青,王忠芳
(江蘇省基礎(chǔ)地理信息中心,江蘇 南京 210013)
第一次全國自然災(zāi)害綜合風(fēng)險普查是一項民心工程、基礎(chǔ)工程,旨在進一步提升全社會抵御自然災(zāi)害的綜合防范能力。房屋建筑調(diào)查成果對于住建部門掌握房屋建筑存量底數(shù)和房屋抗震設(shè)防整體狀況至關(guān)重要,直接關(guān)系到政府部門在自然災(zāi)害防治方面宏觀決策的正確性[1]。江蘇省基礎(chǔ)地理信息中心深度參與南通市海門區(qū)房屋建筑普查工作,經(jīng)過前期對房屋建筑的基本信息、安全信息、抗震設(shè)防信息等開展全面調(diào)查,積累了大量的房屋建筑承災(zāi)體數(shù)據(jù)。筆者基于試點工作成果研發(fā)了房屋建筑調(diào)查成果管理與應(yīng)用系統(tǒng),本文介紹了系統(tǒng)的體系架構(gòu)、主要功能、關(guān)鍵技術(shù)等方面。
房屋建筑調(diào)查成果管理系統(tǒng)總體框架分為4層,自上至下分別是應(yīng)用層、服務(wù)層、數(shù)據(jù)層和運行支撐層,如圖1所示。應(yīng)用層即調(diào)查成果管理與應(yīng)用系統(tǒng),負責(zé)界面展示與事件處理;服務(wù)層提供應(yīng)用服務(wù)、接口服務(wù)等各類支撐系統(tǒng)運行的服務(wù);數(shù)據(jù)層用于向服務(wù)層提供數(shù)據(jù)支撐,包括房屋基本信息、建筑信息、使用情況、房屋照片等[2];運行支撐層包括數(shù)據(jù)庫服務(wù)器、應(yīng)用服務(wù)器、ArcGIS服務(wù)器。
圖1 系統(tǒng)架構(gòu)
系統(tǒng)后端采用JavaEE體系的微服務(wù)主流技術(shù)SpringCloud進行開發(fā),Web前端頁面采用前沿的漸進式框架Vue進行搭建。系統(tǒng)的技術(shù)路線由軟硬件支撐層、數(shù)據(jù)層、消息處理層、服務(wù)層和表示層構(gòu)成。
(1)軟硬件支撐層由PostgreSQL服務(wù)器、Tomcat應(yīng)用服務(wù)器、ArcGIS服務(wù)器組成。
(2)數(shù)據(jù)層基于PostgreSQL數(shù)據(jù)庫服務(wù)器及ArcGIS服務(wù)器提供數(shù)據(jù)服務(wù),包括房屋空間數(shù)據(jù)、房屋基本信息、建筑信息、使用情況、房屋照片、抗震措施照片等數(shù)據(jù)。
(3)消息處理層基于RabbitMQ消息隊列框架進行開發(fā),以支撐高并發(fā)的數(shù)據(jù)交互請求,實現(xiàn)請求削峰、提升系統(tǒng)的可靠性、健壯性。
(4)服務(wù)層基于JavaEE微服務(wù)架構(gòu)SpringCloud進行搭建,包括房屋基本信息查詢服務(wù)、調(diào)查補充數(shù)據(jù)查詢服務(wù)、房屋數(shù)據(jù)分類統(tǒng)計服務(wù)、專題圖層管理服務(wù)等。
(5)表示層即調(diào)查成果管理與應(yīng)用平臺,Web端應(yīng)用由Vue配合ElementUI進行開發(fā),調(diào)用ArcGIS API for JavaScript訪問ArcGIS地圖服務(wù)。
本系統(tǒng)運行在互聯(lián)網(wǎng)環(huán)境中,硬件配置主要包括數(shù)據(jù)庫服務(wù)器、應(yīng)用服務(wù)器以及文件服務(wù)器;軟件配置主要包括GIS平臺軟件以及數(shù)據(jù)庫平臺。其中,軟硬件具體配置情況如表1—2所示。
表1 系統(tǒng)硬件配置
表2 系統(tǒng)軟件配置
系統(tǒng)綜合統(tǒng)計模塊以數(shù)據(jù)看板的形式分別展示城鎮(zhèn)與農(nóng)村房屋的概況,通過數(shù)據(jù)多維化、圖表可視化,全面詳細地展示了各類房屋普查成果。用戶不僅通過點擊可查詢各類專題圖表,主要包括房屋類型、結(jié)構(gòu)類型、建造年代、是否專業(yè)設(shè)計、是否抗震加固、建造方式等,還可以通過房屋數(shù)量和房屋面積按區(qū)對房屋進行統(tǒng)計,從而豐富數(shù)據(jù)成果展示形式。
數(shù)據(jù)中心模塊展示了區(qū)域內(nèi)房屋專題數(shù)據(jù)和地下管線專題數(shù)據(jù),用戶可直接點擊圖斑查看該房屋的基本信息、建筑信息、使用情況和房屋照片以及管線的基本信息。查詢中心模塊可通過輸入查詢條件對城鎮(zhèn)房屋、農(nóng)村住宅房屋和農(nóng)村非住宅房屋圖層進行篩選查詢,點擊查詢結(jié)果定位至對應(yīng)位置查看房屋詳細信息。
Spring Boot和Spring框架緊密結(jié)合用于提升Spring開發(fā)效率的工具,具有簡化配置、快速啟動、零代碼創(chuàng)建程序、可擴展性、靈活性等優(yōu)勢。Spring Cloud是一套完整的微服務(wù)解決方案,它基于Spring Boot的開發(fā)便利性巧妙地簡化了分布式系統(tǒng)基礎(chǔ)設(shè)施的開發(fā),為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)工具,如配置管理、服務(wù)網(wǎng)關(guān)、服務(wù)路由、分布式會話、事件總線等[3]。平臺采用基于Spring Boot和Spring Cloud的微服務(wù)架構(gòu)搭建,將巨大單體式應(yīng)用拆分成多個小型、獨立的服務(wù),每個服務(wù)可以獨立部署、擴展和維護,降低系統(tǒng)的耦合度,從而提高系統(tǒng)開發(fā)的可靠性、可伸縮性和靈活性[4]。
Vue是用于構(gòu)建交互式的Web界面的庫,是一個構(gòu)建數(shù)據(jù)驅(qū)動的Web界面漸進式框架,其核心庫只關(guān)注視圖層,能通過盡可能簡單的API實現(xiàn)相應(yīng)的數(shù)據(jù)綁定和組合的視圖組件[5]。本項目采用Vue框架搭建前端頁面,利用Vue數(shù)據(jù)雙向綁定的特性,采用MVVM(Model-View-ViewModel)模式進行設(shè)計,綜合運用Webpack、Vuex、VueRouter、Vuetify、Axios等技術(shù),不僅簡化了開發(fā)流程,而且具有較好的適用性與擴展性,提高了渲染性能以及加載速度。
ECharts是一款基于JavaScript的開源可視化圖表庫,底層依賴輕量級Canvas類庫ZRender,通過豐富的API接口可以將后臺傳送的json數(shù)據(jù),以多種方式進行展示,兼容絕大多數(shù)瀏覽器和設(shè)備,可以提供形象直觀、交互個性化的數(shù)據(jù)展示[6]。平臺基于ECharts可視化技術(shù)將海量數(shù)據(jù)按房屋數(shù)量、房屋面積、房屋類型、結(jié)構(gòu)類型、建造年代、建造方式等類別進行歸納統(tǒng)計,通過圖形、圖標(biāo)等方式實現(xiàn)統(tǒng)一數(shù)據(jù)的多維度分析與展示。
PostgreSQL是一個功能非常強大、源代碼開放的客戶/服務(wù)器關(guān)系型數(shù)據(jù)庫管理系統(tǒng)(RDBMS),支持絕大部分SQL標(biāo)準(zhǔn),并提供了許多新特性,如復(fù)雜查詢、多版本并發(fā)控制等。PostGIS是PostgreSQL的空間數(shù)據(jù)庫擴展器,可以提供空間對象、空間索引、空間操作函數(shù)和空間操作符等空間信息服務(wù)功能,不能獨立于PostgreSQL運行。PostgreSQL/PostGIS數(shù)據(jù)庫的易用性和可擴展性為房屋建筑調(diào)查成果管理系統(tǒng)的構(gòu)建提供了良好的底層支撐。平臺基于PostgreSQL數(shù)據(jù)庫開發(fā),提供了一個開放式架構(gòu),方便后期集成其他專題數(shù)據(jù),從而擴大應(yīng)用的范圍與深度。
本文從系統(tǒng)體系架構(gòu)、主要功能、關(guān)鍵技術(shù)3方面介紹了房屋建筑調(diào)查成果管理與應(yīng)用系統(tǒng)。本系統(tǒng)被成功運用到南通市海門區(qū)房屋建筑普查試點工作中,通過地圖瀏覽、數(shù)據(jù)查詢、圖表統(tǒng)計等直觀形象地將房屋建筑信息展示出來,實現(xiàn)房屋建筑調(diào)查成果的有序組織和高效管理,支撐房屋建筑調(diào)查成果數(shù)據(jù)統(tǒng)一管理和數(shù)據(jù)更新,為有效開展自然災(zāi)害防治和應(yīng)急管理工作提供權(quán)威的災(zāi)害風(fēng)險信息和科學(xué)決策依據(jù)。