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