摘要:針對(duì)人參食品可追溯鏈在物流運(yùn)輸環(huán)節(jié)中動(dòng)態(tài)地理定位信息可視化問(wèn)題,在深入研究Android地理定位和Google Maps API技術(shù)的基礎(chǔ)上,利用智能手機(jī)可移動(dòng)通訊特點(diǎn),以HTC Sensation手機(jī)為測(cè)試平臺(tái),提出了將人參食品追溯鏈地理位置及路徑信息進(jìn)行可視化顯示的方法。軟件測(cè)試結(jié)果表明,該方法通過(guò)用戶(hù)手機(jī)提取包裝條碼信息的同時(shí),可以動(dòng)態(tài)顯示食品的地理位置和歷史路徑可視化信息,有效輔助可追溯鏈的信息查詢(xún)和管理。
關(guān)鍵詞:人參食品可追溯;地理定位;Android系統(tǒng);Google Maps技術(shù)
中圖分類(lèi)號(hào):TP311.52 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):0439-8114(2013)23-5877-03
為了建立、健全和完善食品可追溯體系,有效應(yīng)對(duì)頻發(fā)性食品安全問(wèn)題,2007、2008、2009年三個(gè)中央一號(hào)文件都對(duì)建立農(nóng)產(chǎn)品質(zhì)量安全追溯制度提出了明確的要求[1]。同時(shí),自2000年初開(kāi)始,國(guó)內(nèi)一些地區(qū)開(kāi)展一系列食品可追溯示范研究[2,3],目前國(guó)內(nèi)可追溯技術(shù)主要在家畜繁養(yǎng)加工領(lǐng)域開(kāi)展,如昝林森等[4]開(kāi)發(fā)的牛肉質(zhì)量安全可追溯網(wǎng)絡(luò)化系統(tǒng),謝菊芳等[5]開(kāi)發(fā)的安全豬肉全程可追溯系統(tǒng),陳長(zhǎng)喜等[6]開(kāi)發(fā)的肉雞安全生產(chǎn)全程跟蹤與追溯平臺(tái)等。這些可追溯系統(tǒng)涵蓋條碼技術(shù)、激光蝕刻技術(shù)、RFID無(wú)線射頻技術(shù)和無(wú)線分頻技術(shù)等;同時(shí)追溯服務(wù)涵蓋短信查詢(xún)、電話查詢(xún)和網(wǎng)絡(luò)查詢(xún)等,較為完善,但是在農(nóng)產(chǎn)品其他領(lǐng)域的應(yīng)用較少。人參(Panax ginseng C. A. Mey.)屬五加科(Araliaceae)人參屬(Acanthopanax)多年生宿根草本植物,一直以來(lái)在中藥寶庫(kù)中具有至尊的地位,享有百草之王、百藥之首的美譽(yù)。但是人參市場(chǎng)長(zhǎng)期以來(lái)在生產(chǎn)、加工、物流、經(jīng)營(yíng)等諸多環(huán)節(jié)缺乏規(guī)范化管理,影響了其產(chǎn)品質(zhì)量和市場(chǎng)競(jìng)爭(zhēng)力。2007年以來(lái),以Google為首的30多家移動(dòng)技術(shù)無(wú)線通訊等應(yīng)用領(lǐng)域的企業(yè)組成開(kāi)放式手機(jī)聯(lián)盟,推出了一個(gè)專(zhuān)為移動(dòng)設(shè)備設(shè)計(jì)的Android智能手機(jī)平臺(tái)[7],該平臺(tái)將谷歌地圖技術(shù)融合到Android空間地理定位技術(shù)中,使該平臺(tái)支持地圖服務(wù)的應(yīng)用開(kāi)發(fā)[8,9]。
在上述應(yīng)用和研究背景下,借鑒家畜繁養(yǎng)加工領(lǐng)域的示范成果,將可追溯技術(shù)體系用于吉林人參生產(chǎn)、加工和流通環(huán)節(jié)的監(jiān)管。此文利用手機(jī)可移動(dòng)實(shí)時(shí)通訊的特點(diǎn),將Android系統(tǒng)地理定位與Google Maps技術(shù)相結(jié)合,用以可視化顯示和記錄人參食品追溯鏈物流運(yùn)輸環(huán)節(jié)的地理節(jié)點(diǎn)和歷史路徑信息,使消費(fèi)者能夠形象、具體地了解該食品的物流運(yùn)輸途徑信息,輔助提升追溯鏈中物流環(huán)節(jié)的有效監(jiān)控。
1 技術(shù)介紹
1.1 Android地理定位技術(shù)
Android是一種以Linux為基礎(chǔ)的開(kāi)放源碼操作系統(tǒng),主要用于便攜設(shè)備。Android系統(tǒng)采用分層架構(gòu),主要分為4層,從高層到底層順次為應(yīng)用程序?qū)?、?yīng)用程序框架層、系統(tǒng)運(yùn)行庫(kù)層和Linux核心層[10]。Android內(nèi)置支持地理定位服務(wù)的API,該地理定位服務(wù)可以用來(lái)獲取當(dāng)前設(shè)備的地理位置,應(yīng)用程序可以定時(shí)請(qǐng)求更新當(dāng)前的地理定位信息。該地理定位服務(wù)的API全部位于Andriod.Location包內(nèi),其中內(nèi)置幾個(gè)將要用到的重要功能類(lèi)(表1),通過(guò)Android內(nèi)置類(lèi)庫(kù)實(shí)現(xiàn)基于Android手機(jī)的精確地理定位。
1.2 Google Maps API技術(shù)
Web API是通過(guò)開(kāi)放的Internet傳輸協(xié)議,以標(biāo)準(zhǔn)方式定義并提供可被其他應(yīng)用調(diào)用的服務(wù)內(nèi)容,它通過(guò)API調(diào)用將內(nèi)容進(jìn)行整合,目前主要以架構(gòu)在Web平臺(tái)上,并且以HTTP為基礎(chǔ)的Web API形式較為普及。Google Maps API是Google為開(kāi)發(fā)者提供的Maps編程API。它允許開(kāi)發(fā)者在不必建立自己的地圖服務(wù)器的情況下,將Google Maps地圖數(shù)據(jù)嵌入到網(wǎng)站之中,從而實(shí)現(xiàn)嵌入Google Maps的地圖服務(wù)應(yīng)用,并借助Google Maps的地圖數(shù)據(jù)為用戶(hù)提供位置服務(wù)。Google Maps API除了幫助開(kāi)發(fā)者將地圖嵌入到Web應(yīng)用中之外,還允許開(kāi)發(fā)者利用Java Script腳本進(jìn)行應(yīng)用開(kāi)發(fā)拓展,給地圖添加標(biāo)注和折線及其他地圖圖層覆蓋物和地圖,或者響應(yīng)用戶(hù)的點(diǎn)擊動(dòng)作,并顯示包含內(nèi)容信息在內(nèi)的氣泡提示窗口。通過(guò)Google Maps為開(kāi)發(fā)者提供的地圖API,可以開(kāi)發(fā)出各種各樣有趣的地圖Mash-up應(yīng)用,還可以將不同地圖圖層加載到應(yīng)用中,如衛(wèi)星影像、根據(jù)海拔高度繪制的高山和植被地形圖、街道視圖等,從而幫助開(kāi)發(fā)者打造個(gè)性化的地圖應(yīng)用站點(diǎn)。
2 Android系統(tǒng)結(jié)合Google Maps API定位技術(shù)實(shí)現(xiàn)
2.1 在Android平臺(tái)上顯示Google地理信息
2.1.1 獲取Google Maps APIKey 開(kāi)發(fā)基于谷歌地圖的應(yīng)用與普通Android應(yīng)用類(lèi)庫(kù)開(kāi)發(fā)相似,所不同的是Google Maps的類(lèi)庫(kù)不是Android平臺(tái)的基本類(lèi)庫(kù),而是Google API的一部分,所以建立項(xiàng)目時(shí)SDK要選擇Google API;還有一點(diǎn),開(kāi)發(fā)基于地圖應(yīng)用的時(shí)候需要使用Google Maps的APIkey,必須先申請(qǐng)key,然后才能開(kāi)發(fā)基于地圖的應(yīng)用。申請(qǐng)Google Maps APIKey具體執(zhí)行步驟如下:
Step1:找到debug.keystore文件。在Eclipse工具下,選擇windows-->Preference-->Android-->Build,其中Default debug.keystore的值便是debug.keystore的路徑;
Step2:取得debug.keystore的MD5值。首先cmd命令行進(jìn)入debug.keystore文件所在的路徑,執(zhí)行命令:keytool -list -keystore debug.keystore,輸入默認(rèn)密碼 “android\",從而獲取MD5值;
Step3:申請(qǐng)Android Maps的APIKey。打開(kāi)瀏覽器,輸入網(wǎng)址:http://code.google.com/android/maps-api-signup.html,填入認(rèn)證指紋(MD5)即可獲得APIKey。
2.1.2 Google Maps API使用 Android中定義的一個(gè)名為com.google.android.map的包,其中包含了一系列用于在Google Maps上顯示、控制和疊層信息的功能類(lèi)。
1)MapActivity。這個(gè)類(lèi)是用于顯示Google Maps的Activity類(lèi),它需要連接底層網(wǎng)絡(luò)。MapActivity是一個(gè)抽象類(lèi),任何想要顯示MapView的Activity都需要派生自MapActivity,并且在其派生類(lèi)的onCreate()中都要?jiǎng)?chuàng)建一個(gè)MapView實(shí)例。MapView需要由MapActivity來(lái)管理,所以程序部分應(yīng)該繼承自MapActivity類(lèi),必須實(shí)現(xiàn)isRouteDisplay方法。創(chuàng)建方式如下。
MapView提供了3種模式的地圖,分別可以通過(guò)以下方式設(shè)置采用什么模式來(lái)顯示地圖。
mMapView.setTraffic(true);//設(shè)置為交通模式
mMapView.setSatellite(true);//設(shè)置為衛(wèi)星模式
mMapView.setStreetView(1);//設(shè)置為街景模式
2)MapView。MapView是用于顯示地圖的View組件。它派生自android.view.ViewGroup。它必須和MapActivity配合使用,而且只能被MapActivity創(chuàng)建,這是因?yàn)镸apView需要通過(guò)后臺(tái)的線程來(lái)連接網(wǎng)絡(luò)或者文件系統(tǒng),而這些線程需要由MapActivity來(lái)管理。創(chuàng)建方式如下。
MapView mapView = new MapView(this, \"(android Maps APIKey)\");
3)MapController。MapController用于控制地圖的移動(dòng)、縮放等。創(chuàng)建方式如下。
mMapController = mMapView.getController();
2.2 顯示空間地理信息
首先通過(guò)手機(jī)客戶(hù)端向網(wǎng)絡(luò)服務(wù)端發(fā)送socket請(qǐng)求,服務(wù)端在接收到請(qǐng)求后對(duì)其作出響應(yīng),并把請(qǐng)求數(shù)據(jù)返回給手機(jī)客戶(hù)端,然后客戶(hù)端接收服務(wù)端發(fā)來(lái)的數(shù)據(jù),并對(duì)數(shù)據(jù)進(jìn)行解析。在手機(jī)客戶(hù)端與網(wǎng)絡(luò)服務(wù)端建立通訊的基礎(chǔ)上,客戶(hù)端利用獲取到的追溯鏈上人參食品條碼信息,同時(shí)將這些信息根據(jù)每個(gè)時(shí)次的路徑點(diǎn)經(jīng)緯度與Google地圖上的經(jīng)緯度進(jìn)行匹配,在匹配的基礎(chǔ)上顯示并繪制空間地理位置信息及追溯鏈路徑信息。
2.3 試驗(yàn)結(jié)果
完成上述開(kāi)發(fā)設(shè)置步驟后,就可以在用戶(hù)手機(jī)客戶(hù)端上顯示人參食品追溯鏈的空間地理信息。此文以HTC Sensation手機(jī)為測(cè)試平臺(tái),將程序安裝到手機(jī)上,顯示人參食品追溯鏈空間地理信息如圖1所示。
3 小結(jié)
在簡(jiǎn)要介紹了Android地理定位和Google Maps技術(shù)的基礎(chǔ)上,詳細(xì)講述了如何在基于Android系統(tǒng)的智能手機(jī)上添加Google地圖服務(wù),并以人參食品追溯鏈中的物流運(yùn)輸環(huán)節(jié)為例,實(shí)現(xiàn)了人參食品在Google地圖上的地理信息可視化顯示。通過(guò)在用戶(hù)手機(jī)上安裝該套插件并結(jié)合條碼識(shí)讀軟件,用戶(hù)可以在應(yīng)用手機(jī)拍攝人參食品包裝上的二維碼并返回二維碼信息的同時(shí),獲取該物品在谷歌地圖上的空間地理位置信息和歷史路徑信息。軟件通過(guò)結(jié)合地理信息可視化技術(shù),大大提高了人參食品追溯鏈上物流運(yùn)輸環(huán)節(jié)的管控,該技術(shù)同時(shí)也可以推廣應(yīng)用到其他食品可追溯物流運(yùn)輸環(huán)節(jié)。
參考文獻(xiàn):
[1] 王兆丹.羊肉產(chǎn)品追溯系統(tǒng)的構(gòu)建[D].北京:中國(guó)農(nóng)業(yè)科學(xué)院,2010.
[2] 施澤平.農(nóng)產(chǎn)品質(zhì)量安全實(shí)施IC卡監(jiān)管的實(shí)踐與思考[J].農(nóng)業(yè)質(zhì)量標(biāo)準(zhǔn),2005(6):24-26.
[3] 樊紅平,馬忠澤,楊 玲,等.可追溯體系在食品供應(yīng)鏈中的應(yīng)用與探討[J].生態(tài)經(jīng)濟(jì),2007(4):63-65.
[4] 昝林森,申光磊,段軍彪.基于JSP的牛肉質(zhì)量安全可追溯網(wǎng)絡(luò)化系統(tǒng)研究[J].中國(guó)農(nóng)學(xué)通報(bào),2006,22(12):13-16.
[5] 謝菊芳,陸昌華,李保明,等.基于.NET構(gòu)架的安全豬肉全程可追溯系統(tǒng)實(shí)現(xiàn)[J].農(nóng)業(yè)工程學(xué)報(bào),2006,22(6):218-220.
[6] 陳長(zhǎng)喜,張宏福,飛頡經(jīng)緯,等.肉雞安全生產(chǎn)全過(guò)程跟蹤與可追溯平臺(tái)的設(shè)計(jì)[J].農(nóng)業(yè)工程學(xué)報(bào),2010,26(9):263-269.
[7] 姚昱昱.基于Android的移動(dòng)學(xué)習(xí)終端平臺(tái)的開(kāi)發(fā)與研究[D].長(zhǎng)沙:中南大學(xué),2008.
[8] 游 蘭,彭慶喜.基于Google Maps API的地圖解析研究與實(shí)現(xiàn)[J]. 湖北大學(xué)學(xué)報(bào)(自然科學(xué)版),2010,32(2):161-164.
[9] 周宇林,付忠良.基于Google地圖API的空間信息發(fā)布[J].計(jì)算機(jī)應(yīng)用,2011,31(5):1450-1452.
[10] 佘鳳婭.基于Android的手機(jī)搜索定位應(yīng)用開(kāi)發(fā)[D].北京:北京郵電大學(xué),2010.