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