張 浡 陶申澳 周述鵬 高演辰
(西北農(nóng)林科技大學(xué),陜西咸陽(yáng) 712100)
地理信息系統(tǒng)(GIS)是一個(gè)以計(jì)算機(jī)為基礎(chǔ)的管理和研究空間數(shù)據(jù)的技術(shù)系統(tǒng)。Web GIS指基于Internet平臺(tái)進(jìn)行地理信息發(fā)布、數(shù)據(jù)共享、交流協(xié)作,是運(yùn)行于Internet的地理信息系統(tǒng)。
經(jīng)濟(jì)人口的增長(zhǎng)和城市化進(jìn)程的加快,使得垃圾產(chǎn)量快速增長(zhǎng),也使我國(guó)面臨著“垃圾圍城”的問(wèn)題。當(dāng)前推行的垃圾分類(lèi)制度,關(guān)系到我國(guó)的生活垃圾是否能夠?qū)崿F(xiàn)減量化、資源化和無(wú)害化。我國(guó)的北京市、上海市、西安市等城市已經(jīng)分別進(jìn)行了垃圾分類(lèi)工作的推廣,但就目前來(lái)看,各大城市的社區(qū)垃圾分類(lèi)卻普遍存在垃圾投放點(diǎn)數(shù)量設(shè)置不合理、定時(shí)投放時(shí)長(zhǎng)設(shè)置不科學(xué)、志愿者招募信息傳播性不強(qiáng)等投放監(jiān)督未實(shí)現(xiàn)常態(tài)化的問(wèn)題。應(yīng)用于垃圾分類(lèi)的Web系統(tǒng)較多,但多數(shù)輔助系統(tǒng)更多著眼于如何輔助將生活垃圾分成相應(yīng)類(lèi)別的具體環(huán)節(jié),少有關(guān)注社區(qū)管理人員與志愿者在生活垃圾分類(lèi)中起到的重要作用。
本文針對(duì)西安市社區(qū)垃圾分類(lèi)過(guò)程中有待提升的問(wèn)題,通過(guò)借鑒上海垃圾分類(lèi)實(shí)施方案中“生活垃圾定時(shí)定點(diǎn)分類(lèi)投放”和志愿者于投放點(diǎn)指導(dǎo)分類(lèi)的方法,嘗試構(gòu)建基于Web GIS平臺(tái)的西安市社區(qū)垃圾分類(lèi)輔助系統(tǒng),一方面,利用已有的數(shù)據(jù)構(gòu)建合適的垃圾預(yù)測(cè)模型,智能化輔助決策社區(qū)垃圾投放點(diǎn)數(shù)量;另一方面,基于Web GIS的平臺(tái)簡(jiǎn)化社區(qū)招募垃圾分類(lèi)志愿者的相關(guān)流程,提高社區(qū)垃圾分類(lèi)的監(jiān)督效率。
基于Web GIS平臺(tái)的西安市社區(qū)垃圾分類(lèi)輔助系統(tǒng)采用客戶機(jī)/服務(wù)器端(C/S)結(jié)構(gòu)。
該系統(tǒng)的客戶端采用HTML(超文本標(biāo)記語(yǔ)言)、CSS(層疊樣式表)和JavaScript(網(wǎng)絡(luò)腳本語(yǔ)言)分別編寫(xiě)網(wǎng)頁(yè)的內(nèi)容、樣式和動(dòng)作行為,逐次實(shí)現(xiàn)從系統(tǒng)的UI設(shè)計(jì),到框架搭建、功能模塊制作,最后到界面的合成美化。
本系統(tǒng)的地圖服務(wù)開(kāi)發(fā)使用ArcGIS API for JavaScript技術(shù),通過(guò)JavaScript將ArcGIS Server提供的地圖資源和其他資源(如ArcGIS Online)嵌入Web應(yīng)用[1]。根據(jù)系統(tǒng)需要在底圖上實(shí)現(xiàn)定位、平移、放縮、查詢等基本功能。還可以使用ArcGIS API for JavaScript技術(shù)調(diào)用ArcGIS Server提供的地理處理服務(wù)(Geoprocessing Service),將ArcGIS提供的豐富的工具和數(shù)據(jù)按照一定順序串聯(lián)[2],結(jié)合系統(tǒng)的志愿者匹配相關(guān)的技術(shù)路線,為社區(qū)的管理員和志愿者提供最優(yōu)的匹配方案。
系統(tǒng)總體設(shè)計(jì)如圖1所示。
圖1 系統(tǒng)總體設(shè)計(jì)
Web服務(wù)器端是溝通用戶與數(shù)據(jù)庫(kù)之間的橋梁。本系統(tǒng)后端采用的主要技術(shù)有JSP、Servlet、Ajax等?;诜?wù)器端的網(wǎng)絡(luò)GIS體系結(jié)構(gòu),也稱為胖服務(wù)器/瘦客戶機(jī)的網(wǎng)絡(luò)GIS,其主要功能在服務(wù)器端實(shí)現(xiàn),客戶機(jī)的瀏覽器主要是發(fā)送請(qǐng)求和顯示結(jié)果。
執(zhí)行過(guò)程可分為四步:
(1)用戶通過(guò)本機(jī)的瀏覽器發(fā)出請(qǐng)求從Internet發(fā)送給服務(wù)器端。
(2)服務(wù)器端收到請(qǐng)求,對(duì)接受的參數(shù)進(jìn)行分析再通過(guò)讀取數(shù)據(jù)庫(kù)獲得相應(yīng)的數(shù)據(jù)并處理請(qǐng)求。
(3)分析處理包含地圖的網(wǎng)頁(yè)頁(yè)面,并發(fā)送給客戶端生成結(jié)果。
(4)客戶端的瀏覽器顯示最終分析處理后的網(wǎng)頁(yè)頁(yè)面,將結(jié)果展示給客戶[3]。
基于Web GIS平臺(tái)的西安市社區(qū)垃圾分類(lèi)輔助系統(tǒng)按照功能可分為注冊(cè)登錄、數(shù)據(jù)預(yù)測(cè)、志愿者匹配、地圖顯示、互動(dòng)交流五大模塊。針對(duì)不同的功能模塊進(jìn)行設(shè)計(jì),確保各個(gè)塊完成各自功能,也能夠互相調(diào)用,形成一個(gè)功能完整協(xié)調(diào)的信息系統(tǒng)。
前臺(tái)Web頁(yè)面采用JSP技術(shù)實(shí)現(xiàn)。JSP是基于Java Servlet及整個(gè)Java體系的Web開(kāi)發(fā)技術(shù),可以構(gòu)建安全的、跨平臺(tái)的動(dòng)態(tài)Web站點(diǎn),同時(shí)JSP具有Java語(yǔ)言的優(yōu)勢(shì)“一次編寫(xiě),各處運(yùn)行”,能夠滿足系統(tǒng)的需求[4]。用戶注冊(cè)時(shí),通過(guò)瀏覽器調(diào)用部署于服務(wù)器的JSP腳本,服務(wù)器獲取請(qǐng)求信息之后解析相應(yīng)的注冊(cè)信息,并通過(guò)JDBC技術(shù)調(diào)用SQL語(yǔ)言對(duì)數(shù)據(jù)庫(kù)進(jìn)行相應(yīng)的存儲(chǔ)操作,將用戶的注冊(cè)信息存儲(chǔ)到相應(yīng)的表格中。用戶登錄時(shí),通過(guò)JSP技術(shù)可以分別針對(duì)不同類(lèi)別的用戶顯示不同的頁(yè)面。
系統(tǒng)功能設(shè)計(jì)如圖2所示。
圖2 系統(tǒng)功能設(shè)計(jì)
依照2010~2019年西安市統(tǒng)計(jì)年鑒提供的原型數(shù)據(jù)的主要特征,通過(guò)模型與原型數(shù)據(jù)的相似關(guān)系建立數(shù)學(xué)模型。選用了時(shí)間序列、回歸分析、灰色預(yù)測(cè)、馬爾科夫等不同的預(yù)測(cè)模型,對(duì)年鑒數(shù)據(jù)進(jìn)行數(shù)據(jù)處理,將通過(guò)模型運(yùn)算社區(qū)垃圾清理量的理論結(jié)果與在社區(qū)實(shí)地采集的數(shù)據(jù)進(jìn)行比較、檢驗(yàn)分析和精度測(cè)算,在每個(gè)基礎(chǔ)模型模塊中選取預(yù)測(cè)標(biāo)準(zhǔn)誤差最小的預(yù)測(cè)數(shù)據(jù)作為單元模塊數(shù)據(jù)。再選取權(quán)重歸一化的方式對(duì)模型進(jìn)行進(jìn)一步的優(yōu)化處理,選用4種模型的最佳權(quán)重配比進(jìn)行垃圾數(shù)量預(yù)測(cè)。在Web前端中,將數(shù)據(jù)預(yù)測(cè)模型的邏輯運(yùn)算通過(guò)JavaScript技術(shù)實(shí)現(xiàn),無(wú)須前后端的數(shù)據(jù)交互,在用戶界面可以快速高效地獲取結(jié)果。例如,社區(qū)管理人員在界面指定位置輸入本社區(qū)住戶數(shù)量等信息,通過(guò)計(jì)算模型,可以得出建議擺放的各類(lèi)垃圾桶數(shù)量、建議垃圾投放時(shí)長(zhǎng)、志愿者需求數(shù)量結(jié)果。
社區(qū)管理員更新志愿者實(shí)際需求量后,系統(tǒng)的Web服務(wù)器依托Servlet技術(shù)和JDBC技術(shù)將數(shù)據(jù)存儲(chǔ)到數(shù)據(jù)庫(kù)中。系統(tǒng)的空間分析功能依托ArcGIS API for JavaScript技術(shù),結(jié)合社區(qū)的空間位置、志愿者實(shí)際需求量,將志愿者需求量線性轉(zhuǎn)換為距離,作為點(diǎn)緩沖區(qū)的半徑。獲取志愿者的位置信息后,通過(guò)幾何分析調(diào)用Esri在sampleserver6.arcgisonline.com上提供的幾何服務(wù),獲取志愿者距離各個(gè)圓形緩沖區(qū)的直線距離,并以此參數(shù)為排序依據(jù),為志愿者推薦距離較近、需求量較大的社區(qū)志愿服務(wù)地點(diǎn),達(dá)到合理分配各個(gè)社區(qū)的志愿者數(shù)量的目的。
志愿者還可以通過(guò)系統(tǒng)查看志愿服務(wù)地點(diǎn)的推薦路線,系統(tǒng)后臺(tái)通過(guò)調(diào)用ArcGIS Server指定路由提供的Route Task方法即可實(shí)現(xiàn)相關(guān)功能。
地圖網(wǎng)絡(luò)服務(wù)是海量的地理空間數(shù)據(jù),以分布式存儲(chǔ)、服務(wù)集中管理的方式,通過(guò)服務(wù)器存儲(chǔ)、管理、發(fā)布以及更新?;诳蛻舳耍脩裟軌蛟诓皇芸臻g與時(shí)間的限制的情況下,實(shí)現(xiàn)對(duì)地理空間數(shù)據(jù)的在線游覽、搜索分析、處理、下載,并以動(dòng)態(tài)或緩存的方式顯示[5]?;赪eb GIS平臺(tái)的西安市社區(qū)垃圾分類(lèi)輔助系統(tǒng)的底圖通過(guò)ArcGIS Server整合了ArcGIS Online的公開(kāi)資源,在此底圖上添加社區(qū)圖層,對(duì)各社區(qū)垃圾分類(lèi)回收點(diǎn)進(jìn)行標(biāo)注。地圖顯示模塊還可以依托ArcGIS API for JavaScript技術(shù),將社區(qū)的志愿者需求量緩沖區(qū)、推薦路線等空間分析處理后的數(shù)據(jù)渲染地圖的圖層中,增強(qiáng)相關(guān)信息的可視化表達(dá)。
系統(tǒng)通過(guò)Servlet技術(shù)和Java EE技術(shù),為志愿者和社區(qū)管理員設(shè)計(jì)并制作了可以進(jìn)行留言交流的平臺(tái)。用戶的留言信息由SQL 數(shù)據(jù)庫(kù)存儲(chǔ)管理,并且與空間位置綁定,用戶通過(guò)創(chuàng)建空間信息標(biāo)識(shí)點(diǎn)來(lái)創(chuàng)建和提交評(píng)論,留言功能為用戶提供了信息反饋的窗口[6]。志愿者可以通過(guò)留言的方式向社區(qū)管理員就志愿服務(wù)細(xì)節(jié)問(wèn)題進(jìn)行詢問(wèn),并線上提交申請(qǐng);社區(qū)管理員回答志愿者的疑問(wèn),在線審核申請(qǐng)者信息,線上錄用。志愿服務(wù)完成后,社區(qū)管理員通過(guò)系統(tǒng)上傳志愿者的服務(wù)時(shí)長(zhǎng)等信息。
隨著城市的發(fā)展,我國(guó)各大中心城市的垃圾分類(lèi)問(wèn)題愈發(fā)突出,解決垃圾分類(lèi)過(guò)程中出現(xiàn)的問(wèn)題十分必要。Web GIS能夠?qū)⒖臻g分析與可視化表達(dá)集成到Web應(yīng)用中,對(duì)于解決城市的垃圾分類(lèi)問(wèn)題具有突出優(yōu)勢(shì)。目前諸多輔助系統(tǒng)缺乏對(duì)實(shí)際問(wèn)題的調(diào)查與分析,難以被城市管理機(jī)構(gòu)采納?;赪eb GIS平臺(tái)的西安市社區(qū)垃圾分類(lèi)輔助系統(tǒng)從實(shí)際問(wèn)題展開(kāi)功能設(shè)計(jì),將分散的數(shù)據(jù)結(jié)合到空間信息中,借助互聯(lián)網(wǎng)進(jìn)行數(shù)據(jù)交互,高效簡(jiǎn)潔地實(shí)現(xiàn)了一系列輔助功能。