楊 乃, 李 洋
(中國地質大學(武漢) 信息工程學院, 湖北 武漢 430074)
地球科學是7大基礎學科之一,是以地球系統(包括大氣圈、水圈、巖石圈、生物圈和日地空間)的過程與變化及其相互作用為研究對象的基礎學科[1],主要包括地質學、地理學,以及其他衍生學科。地球科學是一門實踐性極強的學科[2],野外實習教學是地球科學相關專業不可或缺的重要環節,是理論教學的延續、補充,也是培養學生養成創新意識和地質思維的有效手段[3]。
當前野外實習的教學模式,主要包括三個部分:講解、觀測和記錄,教學方法和手段相對單一,學生缺乏學習的主動性與積極性,且易受到天氣、地形、噪聲等環境因素的影響,教學效果并不理想[4]。為激發學生野外實習興趣,提升野外實習教學效果,保證野外實習教學質量,在微信被學生廣泛使用的背景下,本文結合野外實習教學實際需求,基于微信公眾號和微信小程序研發了一款野外地質實習輔助教學系統,為參加野外實習教學的師生提供便利,并為移動環境下類似野外實習教學系統的研發提供新的思路。
相對室內教學,野外實習教學具有以下特征:
(1) 教學環境差異:室內教學一般場地固定,而野外實習教學往往由不同的實習教學點組成,具有較強的流動性;相對室內教學,野外實習教學場地更加空曠,更加嘈雜,不如室內講臺與座位之間有明顯的層次感;野外實習更容易受到天氣因素影響,一旦遭遇到雷雨天氣以及滑坡泥石流等地質災害,野外出行和近距離觀測采樣都將受到影響,野外實習活動往往被迫延期、改為室內教學或取消。
(2) 教學手段差異:室內教學可以借助板書、多媒體等多種方式完成,而野外實習教學條件相對簡陋,教學往往只能通過口述和實地采樣觀測完成,少量借助小型移動黑板,但板書內容有限,相對室內教學,野外實習教學手段較為單一。
(3) 教學方法差異:野外實習教學是對室內教學的有效補充,前期室內教學側重地球科學相關知識點理論方法的講授,學生借助教材、多媒體資料進行學習,野外實習教學則側重動手實踐、近距離樣本觀測方法與技巧的傳授,是對室內教學知識點的鞏固,學生更多是通過教師手把手的教授方式來學習,難以通過其他渠道溫習相關知識點。
當前智能手機和微信已被廣泛使用,研發移動環境下野外地質實習輔助教學系統,將有效改善野外實習教學過程中存在的上述一系列問題。
2012年微信公眾平臺正式上線,標志著微信已經從一款聊天工具開始轉變為一個生態系統。微信公眾平臺主要面向企業、政府、媒體、個人和組織。公眾平臺賬號(即“公眾號”)分為服務號、訂閱號和企業號。其中,服務號側重于提供服務和互動,訂閱號側重于提供簡單的資訊,企業號則用于公司內部通信[5]。根據實際用戶需求,本文選擇訂閱號向師生推送野外實習日常教學活動安排和相關地學知識(以下“公眾號”均特指訂閱號)。
2017年1月9日,微信小程序正式發布。其最初起名為“應用號”,即運行在微信之上的應用。按照微信之父張小龍的定義,小程序是一種不需要下載安裝即可使用的應用,它是訂閱號和服務號的延展,微信團隊希望通過它接棒服務號,以連接更多的服務和場景。它是一種全新的連接用戶與服務的方式,是由微信公眾平臺提供的一種新的開放能力,這種類似于React Native的應用,提供了比HTML5更出色的使用體驗,開發成本卻與HTML5相差無幾[6]。
近年來,有不少團隊針對當前野外實習過程中存在的問題,研發出了野外地質實習輔助教學系統軟件。例如,劉曉等(2015)設計開發了基于安卓系統的野外地質實習輔助教學系統[7],祝德顯(2013)、謝磊(2016)分別開發出了基于Web和ArcGIS Engine的虛擬野外地質實習系統[8-9]。但這些系統大都采用C/S(Client/Server)結構和B/S(Browser/Server)結構。基于C/S結構開發的應用程序需要針對不同的操作系統編寫對應的軟件,嚴重限制了系統的功能擴展和軟件升級,維護相對困難。而基于B/S結構開發的系統軟件雖然可以在不同平臺上通用,但無法實現應用的個性化要求,且對于不同的瀏覽器系統界面展現出來的效果也不一定完全一致[10]。
相比于以上兩種結構的軟件,微信小程序與公眾號具有以下優點:
(1) 使用方便:無需下載,打開即用,用完即走,無須卸載,移動性更強。
(2) 開發簡單:小程序開發過程本質是在MVVM風格的JavaScript框架下開發,有前端經驗的程序員可以無縫銜接,快速入門。
(3) 系統兼容:運行于微信平臺之上,兼容iOS和安卓操作系統。
(4) 快速分發迭代:只需將代碼上傳至微信公眾平臺,審核通過后進行發布,即可實現分發與版本升級。
微信小程序與公眾號的以上優點很好地彌補了傳統結構的缺陷,同時,當前微信已被學生廣泛使用,基于微信公眾號與小程序的野外實習輔助教學系統也更容易被用戶接受和使用。
中國地質大學(武漢)在秭歸縣建有產學研基地,近年來,每年有師生1 800余人次在該基地進行基地地質、地球化學、環境地質、工程地質、測量、土地管理等多學科的野外教學實習和科研工作。此外,廣州中山大學、武漢大學、武警黃金部隊、臺灣大學、香港大學等院校或研究機構也借助該基地開展各項教學或科研活動,每年亦達2 000余人次[11]。針對野外實習教學的特征及秭歸野外實習的用戶需求,本文設計實現了首個秭歸野外地質實習輔助教學系統“秭歸實習助手”,由微信公眾號和小程序兩大模塊組成。其中,微信公眾號主要負責日常推送教學活動安排和普及相關地學知識,同時提供小程序入口。微信小程序則主要提供地圖顯示、信息查詢、定位導航等基礎功能;實習點及實習路線查詢、基于地理圍欄技術的信息推送等實習信息查詢功能;電子野簿、電子羅盤、經緯度轉換等實習工具功能;以及實時天氣、用戶管理等輔助功能,給予用戶與APP相當的用戶體驗。系統的整體架構如圖1所示。

圖1 野外地質實習輔助教學系統整體架構圖
微信公眾號可以每日向用戶推送一個包含一條或多條圖文消息的群發消息,每條圖文消息又可以包含文字、圖片、語音、視頻等多種形式,甚至還可以嵌入微信小程序的入口(如二維碼),形式的多樣性大大豐富了內容的多樣性。
利用微信公眾號的日常推送功能每天為用戶推送以下信息:
(1) 當天或第二天的實習安排,包括實習路線、出發時間、乘車地點、課程時長等;
(2) 注意事項(比如是否帶安全帽、雨傘、午飯等);
(3) 重要通知,如天氣狀況不佳時教學活動是否取消等。
“秭歸實習助手”公眾號的菜單功能設計效果如圖2所示,包含以下三個版塊的內容:

圖2 “秭歸實習助手”公眾號會話界面
(1) “關于基地”:包括“基地簡介”和“基地服務”兩個子菜單,其中,“基地簡介”主要概述基地的基本概況、教學資源、硬件條件、交通狀況、合作院校以及所在地區的人文環境。“基地服務”則詳細介紹實習基地為師生提供的各種生活服務,涵蓋衣食住行、銀行、郵政、醫療等諸多領域。
(2) “教學實習”:包括“教師團隊”和“實習路線”兩個子菜單,其中,“教師團隊”主要介紹參與野外地質實習的教師隊伍。“實習路線”則詳細介紹實習基地目前已經開發出的針對不同專業的野外地質實習路線,包括路線的教學內容,路線中包含的重要地質地貌觀測點等內容。
(3) “更多內容”:包括“知識儲備”和“關聯小程序”兩個子菜單,其中,“知識儲備”主要介紹野外實習常用知識點,包括“地質隊員三寶”(羅盤、地質錘、放大鏡)的使用、野簿記錄方法、簡單礦物的肉眼鑒定等。“關聯小程序”則提供了與該公眾號相關聯的小程序入口,點擊即可打開進入微信小程序。
本文所設計開發的野外地質實習輔助教學系統的小程序部分,采用MINA(Apache MINA)開發框架。其框架主要分為視圖層和邏輯層兩大部分。
視圖層用來渲染頁面,由WXML與WXSS編寫,由組件來進行展示。WXML用于描述頁面的結構,WXSS用于描述頁面的樣式,組件是視圖層的基本組成單元。
邏輯層用來處理事務,由JavaScript編寫,它是MINA框架的服務中心,由微信客戶端啟用異步線程單獨加載運行。
視圖層和邏輯層通過系統層的JSBridage進行通信,視圖層把觸發的事件通知到邏輯層進行業務處理; 邏輯層把數據變化通知到視圖層,觸發視圖層頁面更新[12]。
本文通過微信公眾平臺注冊申請的小程序名為“秭歸實習助手”,該小程序的MINA框架圖如圖3所示。

圖3 “秭歸實習助手”微信小程序MINA框架圖
如圖1所示,本系統目前已實現了基礎功能、實習信息查詢、實習工具、輔助功能共四個功能模塊。
5.2.1 基礎功能
(1) 地圖顯示。本文利用小程序框架提供的地圖組件map實現地圖顯示,并且將地圖作為小程序的首頁,如圖4所示,底圖采用騰訊地圖。為了便于師生查看,本文將中國地質大學(武漢)秭歸產學研基地作為地圖的中心,所有的實習教學點根據經緯度顯示在地圖上,零散地分布在基地周圍。通過不同手勢或點擊地圖右下角的“+”號和“-”號按鈕可以實現對于地圖的基本操作(放大、縮小、移動等)。

圖4 “秭歸實習助手”微信小程序首頁
(2) 定位導航。出于對師生實習安全考慮,同時也為了方便學生日常出行,小程序為用戶提供了定位導航功能。
首先,定位功能通過調用微信小程序提供的API wx.getLocation來獲取用戶當前位置的經緯度信息,另外,通過引入高德地圖微信小程序SDK提供的逆地址解析功能,還可以獲取到當前位置的地址描述信息。其次,利用該小程序SDK,還可以獲取到當前位置周圍的POI點,用戶只需輸入起點與終點,就可以實現駕車、步行、騎行、公交四種不同出行方式的路徑導航。圖5為“秭歸實習助手”小程序的導航頁面。

圖5 小程序導航界面
5.2.2 實習信息查詢功能
(1) 實習點及實習路線查詢。“秭歸實習助手”小程序為用戶提供了多種關于所有實習點及實習路線相關信息的查詢方式,便于學生日常了解。通過模糊搜索或點擊地圖上的標記點,學生可以獲取到關于實習點的點號、點位、經緯度、點義、相關描述等詳細信息。同樣,通過直接查詢或查看實習路線列表,也可以獲取到關于實習路線的相關信息。
(2) 實習點信息推送。地理圍欄(geo-fencing)技術是基于位置服務(location based service, LBS)的一種新應用,就是用一個虛擬的柵欄圍出一個虛擬地理邊界。當手機進入、離開某個特定地理區域,或在該區域內活動時,可以接收自動通知和警告。
基于地理圍欄的概念,本文在每個實習點的周圍設置一個矩形虛擬地理邊界,長寬邊界距實習點經緯度差均為0.001°,當用戶進入該區域時,(經估算,此時用戶位置與實習點位置在東西方向和南北方向上距離均小于150 m),小程序自動彈出一個對話框,顯示該實習點相關信息,如圖6所示。這樣,即使教學活動因遭遇陰雨雷電天氣而無法近距離觀測,或者在經過某個當日教學內容之外的實習點時,學生也可以通過小程序自動推送的消息,了解這些實習點的詳細信息。

圖6 小程序地理圍欄服務
5.2.3 實習工具
(1) 電子野簿。為了方便學生記錄,小程序根據野簿記錄規范設計出了“電子野簿”功能,內容同樣包括點號、點義、點位、GPS經緯度、相關描述等信息,完美契合野外實習記錄要求。記錄完成后,學生可以通過“一鍵生成圖片”功能保存到手機本地相冊,便于學生日后整理至紙質野簿。
(2) 電子羅盤。作為“地質隊員三寶”之一,羅盤是野外實習過程中必不可少的實習工具,地質羅盤的使用是野外實習過程中學生的必備要求。但使用地質羅盤觀測往往讀數過程較慢,且精度較低。而如今所使用的智能手機基本都內置有基于霍爾效應原理的磁傳感器,可以說是手邊現成的高精度“電子羅盤”。“秭歸實習助手”小程序通過監聽手機的羅盤數據獲取到當前手機的指向,讀數簡單快捷,為野外實習過程中學習使用地質羅盤讀數提供參考,可大大提高觀測效率以及觀測結果的精確度。
(3) 經緯度轉換。在野外實習過程中,學生記錄在野簿中的經緯度數據一般要求為度分秒格式,而在“秭歸實習助手”小程序中,無論是通過API wx.getLocation獲取到的經緯度數據,還是存儲在數據庫中實習點的經緯度信息,均采用十進制格式。因此,在學生整理野簿或者教師上傳更新實習點數據時,就需要將經緯度數據的格式進行轉換,此時利用小程序中的“經緯度轉換”工具就可以輕松實現,為用戶提供切實的便利。“經緯度轉換”工具頁面如圖7所示。

圖7 “經緯度轉換”工具
5.2.4 輔助功能
(1) 實時天氣。實時天氣對野外實習安排至關重要,通過引入高德地圖微信小程序SDK,可以獲取當前所在城市的實時天氣信息,包括天氣、溫度、濕度、風力、風向等。幫助師生合理安排出行,如圖8所示。

圖8 小程序實時天氣功能
(2) 用戶權限。小程序在加載時會獲取微信用戶信息,通過比對網名昵稱的方式,區分學生用戶和教師用戶。在學生用戶權限的基礎上,教師用戶還可以實現對實習點及實習路線數據的上傳更新。圖9為“秭歸實習助手”小程序的數據編輯界面,該界面僅對教師用戶可見,對學生用戶默認為隱藏狀態。除此之外,管理員即系統開發人員負責系統的更新維護工作。

圖9 小程序管理員界面
(3) 聯系客服與反饋功能。除上述功能外,小程序還為用戶提供了聯系客服功能,接受用戶咨詢與反饋,用戶可以一鍵跳轉至撥號頁面。同時,用戶也可以通過用戶反饋功能將輸入的反饋內容直接提交給后臺。
當前微信公眾號與微信小程序已經構建成一個較為完善的微信生態體系,其運行于微信平臺之上,“打開即用、用完即走、無需下載”的特點,以及微信8億用戶的天然優勢,使其具有無限發展潛力與應用空間。本文基于公眾號與小程序所搭建的野外地質實習輔助教學系統,充分發揮微信平臺優勢,功能設計完全從師生的實際需求出發,為師生提供切實的便利。該系統已于2018年暑假投入使用,在實用過程中將不斷完善相關功能,具有較強的推廣應用前景。