劉超,何鏡文,楊玉婷
(佛山市氣象局,廣東佛山 528000)
微信作為一款即時通訊服務(wù)的免費(fèi)應(yīng)用程序,截止至2019年全國活躍用戶達(dá)到11億,覆蓋96%以上的智能手機(jī)[1],其中微信公眾號的推出,更是為政企部門優(yōu)質(zhì)服務(wù)提供了優(yōu)質(zhì)的服務(wù)平臺。佛山市總面積為3 797.72 km2,2019年末佛山市常住人口超過800萬人,其中禪城區(qū)面積154.68 km2,常住人口超過130萬人。針對禪城區(qū)100多萬用戶,將微信平臺和氣象數(shù)據(jù)的優(yōu)勢最大化利用,打造個性化、定制化,讓用戶切實(shí)享用到高質(zhì)量氣象公共服務(wù)產(chǎn)品[2-5]。
微信公眾平臺共分為4層,包括數(shù)據(jù)層、接口層、處理層和展示層(圖1)[6]。
圖1 技術(shù)架構(gòu)示意圖
1)數(shù)據(jù)層。
數(shù)據(jù)層包含氣象網(wǎng)站和高德地圖數(shù)據(jù)。氣象網(wǎng)站(www.fs121.com)主要提供天氣預(yù)警、天氣實(shí)況、雷達(dá)圖等氣象數(shù)據(jù),利用爬蟲工具提取。而高德地圖數(shù)據(jù)主要提供道路實(shí)況數(shù)據(jù),通過高德地圖API提取。
2)接口層。
接口層由爬蟲工具和高德地圖API組成。通過爬蟲工具直接定位到佛山氣象官網(wǎng)(https:\www.fs121.com),根據(jù)不同的數(shù)據(jù)類型,寫入URL,再由標(biāo)簽分析工具提取指定標(biāo)簽的內(nèi)容,形成對應(yīng)的氣象數(shù)據(jù)。而高德地圖API是一套能為開發(fā)者提供地圖應(yīng)用程序的接口,包括JavaScript、iOS、Andriod、Windows和Web服務(wù)等多種版本。提供了定位、地圖、導(dǎo)航(公交\駕車\步行)、位置搜索、周邊檢索、地理編碼及逆地理編碼、實(shí)時路況等豐富功能。高德地圖JS API是一套JavaScript語言開發(fā)的的地圖應(yīng)用編程接口,可兼容移動端、PC端等眾多系統(tǒng)平臺,目前JSAPI免費(fèi)開放使用。JSAPI提供了2D、3D地圖模式,可滿足絕大多數(shù)地圖展示、地圖自定義、圖層加載、點(diǎn)標(biāo)記添加、矢量圖形繪制等開發(fā)需求,同時也提供POI搜索、路線規(guī)劃、地理編碼、行政區(qū)查詢、定位等眾多開放服務(wù)接口。同時,JSAPI免費(fèi)提供完善的開發(fā)文檔,可供開發(fā)者系統(tǒng)學(xué)習(xí)接口調(diào)用,鑒于該次項目由于使用Web技術(shù)開發(fā),因此比較適合JS API。
3)處理層。
處理層包含氣象數(shù)據(jù)處理模塊及道路數(shù)據(jù)處理模塊。氣象數(shù)據(jù)處理模塊,主要通過獲取來的數(shù)據(jù),根據(jù)定義信息導(dǎo)入到頁面當(dāng)中。而道路數(shù)據(jù)處理模塊,對于道路實(shí)況數(shù)據(jù),在提取直接生成數(shù)據(jù)層,疊加到高德地圖上;對于水浸黑點(diǎn)數(shù)據(jù),則根據(jù)坐標(biāo),通過描點(diǎn)添加到高德地圖上。
4)展示層。
展示層主要調(diào)用微信公眾平臺功能,通過菜單欄的方式跳轉(zhuǎn)到指定的頁面。而暫時的頁面,主要用JS生成。
1)網(wǎng)絡(luò)爬蟲實(shí)現(xiàn)氣象數(shù)據(jù)同步。
佛山 市 氣 象 局 官 網(wǎng)(http://www.fs121.com/),每日有大量的數(shù)據(jù)出入,加上對此網(wǎng)站開發(fā)技術(shù)、系統(tǒng)架構(gòu)、目錄結(jié)構(gòu)不熟悉,為避免造成網(wǎng)站的不穩(wěn)定,影響業(yè)務(wù)運(yùn)行。因此選擇使用網(wǎng)絡(luò)數(shù)據(jù)同步技術(shù)進(jìn)行數(shù)據(jù)調(diào)用(圖2)。建立獨(dú)立運(yùn)行的系統(tǒng)通過數(shù)據(jù)同步技術(shù)獲取所需數(shù)據(jù),不影響原有網(wǎng)站的技術(shù)、系統(tǒng)架構(gòu)和代碼結(jié)構(gòu),可根據(jù)所需數(shù)據(jù)的類型、數(shù)量進(jìn)行自動抓取并進(jìn)行引用[7]。
圖2 數(shù)據(jù)同步工作流程示意圖
2)實(shí)時路況。
直接調(diào)用高德地圖開源API進(jìn)行多個圖層操作(圖3)。首先定位到佛山,根據(jù)系統(tǒng)要求,調(diào)整各個參數(shù),初始化地圖圖層。然后通過Tile-Layer.Traffic在地圖上添加實(shí)時交通圖層。
3)浸水黑點(diǎn)描繪。
在初始圖層上新建一個浸水黑點(diǎn)圖層(圖4)。先將所有浸水黑點(diǎn)的經(jīng)緯度數(shù)據(jù)封裝到List里面,然后通過遍歷List,使用AMap.Polyline和AMap.PolyEditor根據(jù)經(jīng)緯度繪制點(diǎn)和折線。同步顯示所有浸水點(diǎn)的地理位置。
4)Web頁面調(diào)用JS實(shí)現(xiàn)一鍵撥號。
先收集固定應(yīng)急服務(wù)號碼,并將所有號碼逐個填入A標(biāo)簽href當(dāng)中,如<a href=”tel:12121”>。用戶點(diǎn)擊后,頁面提取電話號碼,并調(diào)用收集本地的通話功能,實(shí)現(xiàn)一鍵撥號。
圖3 實(shí)時路況代碼界面
圖4 點(diǎn)線繪制代碼界面
5)微信公眾號接入。
微信公眾號因其集成社交和支付功能已經(jīng)成為目前電子政務(wù)服務(wù)的首選服務(wù)。接入微信公眾號需要滿足以下條件[8]:由于公眾號不面向個人,因此需要以氣象局的名義在微信公眾號注冊并實(shí)名認(rèn)證,目前經(jīng)過相關(guān)手續(xù)已經(jīng)開通并運(yùn)營;公眾號要去接入必須是已實(shí)名的域名并只支持80或443,由于氣象目前使用www.fs121.com,因此需要在域名管理服務(wù)上配置二級域名,同時由于氣象內(nèi)Web服務(wù)使用NGINX反向代理服務(wù)器跳轉(zhuǎn)二級域名,因此同樣需要在NGINX上配置域名管理服務(wù)上的二級域名并指向到部署的服務(wù)器上(圖5)。
圖5 微信后臺對接界面
目前禪城交通氣象公眾號利用微信平臺初步實(shí)現(xiàn)了氣象數(shù)據(jù)、交通數(shù)據(jù)、水浸黑點(diǎn)數(shù)據(jù)和應(yīng)急咨詢救援功能的整合。平臺設(shè)有天氣查詢、交通查詢和應(yīng)急咨詢?nèi)蟀鍓K,提供此時天氣、實(shí)時預(yù)警、短臨預(yù)報、雷達(dá)圖、實(shí)時路況和水浸黑點(diǎn)等查詢服務(wù),當(dāng)遇到重大天氣時,為方便用戶根據(jù)需求快速訪問,合理安排出行,減少事故發(fā)生率。
不足的是,由于目前未與交通、國土和水務(wù)等部門建立實(shí)時穩(wěn)定的信息共享平臺,無法將數(shù)據(jù)有效利用。未來將繼續(xù)推動各部門數(shù)據(jù)信息常態(tài)化共享交換,建立健全的信息共享機(jī)制,將GIS地理信息、天氣監(jiān)測、預(yù)報預(yù)警、實(shí)時路況、水浸高風(fēng)險區(qū)等數(shù)據(jù)融合“一張圖”,在遇到重大天氣過程時,利用人工智能技術(shù)計算出安全出行的解決方案,通過微信平臺快速發(fā)布,提供更安全、更暢通、更便捷的道路安全出行信息。