《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 通信與網(wǎng)絡(luò) > 設(shè)計應(yīng)用 > 基于位置云技術(shù)的智能拼車匹配系統(tǒng)設(shè)計
基于位置云技術(shù)的智能拼車匹配系統(tǒng)設(shè)計
來源:電子技術(shù)應(yīng)用2013年第8期
張 凱,陸 鈞,孫 躍
南京信息工程大學(xué) 信息與控制學(xué)院,江蘇 南京210044
摘要: 為了讓人們便捷地找到合適的拼車伙伴,運用位置云平臺的云存儲與檢索服務(wù),結(jié)合Web服務(wù)器和數(shù)據(jù)庫技術(shù),設(shè)計并實現(xiàn)了智能拼車匹配系統(tǒng),并開發(fā)了基于嵌入式平臺的客戶端裝置。介紹了系統(tǒng)的架構(gòu),論述了位置云端存儲與檢索的實現(xiàn)方法,說明了客戶端的硬件結(jié)構(gòu)和主要功能模塊的軟件設(shè)計。測試表明,系統(tǒng)運行穩(wěn)定,能夠?qū)崿F(xiàn)用戶注冊、登錄管理、地圖定位、拼車需求發(fā)布、智能匹配等功能,能夠及時響應(yīng)請求并匹配出合適的結(jié)果,具有一定的應(yīng)用前景。
中圖分類號: TP391
文獻(xiàn)標(biāo)識碼: A
文章編號: 0258-7998(2013)08-0020-03
The design of an intelligent carpool-matching system based on LBS-Cloud service
Zhang Kai,Lu Jun,Sun Yue
School of Information and Control,Nanjing University of Information Science & Technology,Nanjing 210044,China
Abstract: In order to make carpool travels more conveniently, an intelligent carpool-matching system was designed and developed based on the LBS-Cloud platform and combined with Web server and database technology. The client device was developed based on embedded platform.The architecture of this system and the implementation method of LBS-Cloud storage and retrieval were introduced. The test showed that the whole system worked well. The functions such as registration,login,auto locate, intelligent matching and so on,could be all realized successfully. The intelligent carpool system has limitless applications.
Key words : LBS-Cloud;Android;carpool-matching;database

    隨著社會的發(fā)展,汽車保有量迅速增長,道路擁堵情況以及尾氣污染日益嚴(yán)重。根據(jù)有關(guān)統(tǒng)計,機(jī)動車尾氣排放約占霧霾天氣PM2.5來源的四分之一以上,是導(dǎo)致空氣污染的重要原因。因此我國需要學(xué)習(xí)一些發(fā)達(dá)國家的城市治理經(jīng)驗,一方面大力發(fā)展公共交通,另一方面倡導(dǎo)人們最大限度地合理使用汽車,積極拼車出行,以達(dá)到減少擁堵和排污的效果[1]。

    拼車雙方有相似的出行路線和時間表是實現(xiàn)拼車的關(guān)鍵。由于拼車在國內(nèi)興起不久,拼車的組織、制度還很不完善。在現(xiàn)有的拼車網(wǎng)站或者應(yīng)用中,大多是以列表形式羅列出各種拼車需求,用戶需要在繁多的拼車需求中找出適合自己的拼車對象,并不是十分方便和快捷。
    位置云(LBS云)服務(wù)作為云技術(shù)在地圖定位領(lǐng)域的應(yīng)用,是一種集位置存儲與檢索于一體的云服務(wù)。LBS云平臺一方面可以完成龐大的位置數(shù)據(jù)存儲,另一方面能夠返回各類基于位置數(shù)據(jù)的檢索請求,是開發(fā)基于位置服務(wù)系統(tǒng)的理想選擇。
    針對以上分析,基于百度LBS云平臺,結(jié)合Web服務(wù)器和數(shù)據(jù)庫,設(shè)計和實現(xiàn)了智能拼車匹配系統(tǒng)及其嵌入式客戶端。用戶只需登錄客戶端,在地圖上將自己的拼車信息發(fā)送到服務(wù)器,等待服務(wù)器返回匹配結(jié)果,就能夠方便、及時地找到周圍合適的拼車伙伴,完成快捷的拼車出行,從而節(jié)約出行成本。同時能夠減少車輛出行,為緩解交通擁堵情況以及節(jié)能減排做出貢獻(xiàn)。
1 系統(tǒng)設(shè)計
1.1 系統(tǒng)架構(gòu)

    系統(tǒng)采用Client/Server(C/S)體系結(jié)構(gòu),其架構(gòu)如圖1所示。系統(tǒng)主要包括服務(wù)器、基本數(shù)據(jù)庫、位置云平臺、無線網(wǎng)絡(luò)和客戶端[2]。客戶端完成前臺操作處理和計算,通過無線網(wǎng)絡(luò)訪問Web服務(wù)器和數(shù)據(jù)庫,服務(wù)器對客戶端的拼車請求進(jìn)行處理并返回匹配結(jié)果。

1.2 服務(wù)器設(shè)計
    服務(wù)器端采用開源的Tomcat服務(wù)器,它支持Java類Servlet,在Java環(huán)境運行時能夠很好地支持運行Web應(yīng)用部署[3]。當(dāng)收到客戶端請求時,服務(wù)器啟動并加載Servlet容器,Servlet根據(jù)請求生成響應(yīng)內(nèi)容并傳給服務(wù)器,再由服務(wù)器將響應(yīng)返回客戶端。
    本系統(tǒng)中,需要部署4個Servlet類,分別用于注冊、登錄、存儲以及匹配。服務(wù)器與客戶端的通信采用Http通信協(xié)議的post方法,部署服務(wù)器時,先繼承HttpServlet抽象類,然后覆蓋HttpServlet的doGet()方法,通過Http-ServletRequest對象來獲取請求信息,最后由HttpServletResponse對象生成響應(yīng)結(jié)果返回給客戶端。寫完服務(wù)器的Servlet程序后在web.xml文件中進(jìn)行屬性配置,就能夠通過8080端口連接部署的服務(wù)器[4]。
1.3 數(shù)據(jù)庫設(shè)計
    采用MySQL 5.6數(shù)據(jù)庫軟件,在服務(wù)器端可以直接引入Java數(shù)據(jù)庫連接(JDBC)驅(qū)動,通過接口成功連接數(shù)據(jù)庫之后,發(fā)送SQL語句操作數(shù)據(jù)庫并處理結(jié)果[5]。
    拼車時間和方式的匹配通過對數(shù)據(jù)庫schedule表的條件查詢實現(xiàn)。當(dāng)有用戶的匹配請求發(fā)送至服務(wù)器時,服務(wù)器端調(diào)用條件查詢類來進(jìn)行篩選,并返回符合條件的結(jié)果。
    服務(wù)器使用JDBC接口連接數(shù)據(jù)庫,在服務(wù)器的lib文件夾中插入mysql-connector-java-bin.jar驅(qū)動,Servlet程序中先要注冊驅(qū)動:Class.forName("com.mysql.jdbc.Driver");然后通過DriverManager.getConnection類連接建立的test數(shù)據(jù)庫,端口為3306,使用prepareStatement( )對象執(zhí)行SQL查詢語句,executeQuery( )方法把查詢結(jié)果返回并存放在ResultSet類對象中。此外,在程序中還應(yīng)設(shè)置CharacterEncoding屬性為utf-8的編碼方式,以避免中文出現(xiàn)亂碼。
2 位置云技術(shù)
    在拼車系統(tǒng)中,基于百度LBS云服務(wù),將用戶發(fā)送的出發(fā)地和目的地位置信息存儲在位置云平臺中,利用位置云計算能力,迅速篩選出這兩個位置周圍符合條件的其他用戶,并返回相應(yīng)用戶的基本信息,完成拼車路徑的智能匹配。
2.1 位置云存儲的實現(xiàn)
    百度LBS云存儲使用接口的方式進(jìn)行存儲管理,用位置數(shù)據(jù)存儲容器databox對所存儲的位置數(shù)據(jù)進(jìn)行字段定義,包括基本字段databox和擴(kuò)展字段databox_meta。用單元數(shù)據(jù)poi存儲具體的位置信息,同樣包括基本信息poi和擴(kuò)展信息poi_ect。實現(xiàn)位置數(shù)據(jù)存儲的關(guān)鍵代碼如下:
    url: api.map.baidu.com/geodata/databox
    postfield:method=create&name=carpool&ak=key
            //創(chuàng)建名為carpool的databox
    url: api.map.baidu.com/geodata/poi
    postfield:method=create&name=start&ak=key
                //創(chuàng)建存儲出發(fā)地信息的poi
    postfield:method=create&name=destination&ak=key
            //創(chuàng)建存儲目的地信息的poi
2.2 位置云檢索的實現(xiàn)
    位置云檢索同樣使用接口方式來發(fā)送檢索請求。在拼車匹配模塊中需要檢索出發(fā)地和目的地都相近的用戶,采用周邊檢索命令來實現(xiàn)。通過location變量設(shè)置檢索中心點,格式為:經(jīng)度,緯度;通過radius變量設(shè)置檢索半徑,單位為m。實現(xiàn)位置數(shù)據(jù)檢索的關(guān)鍵代碼如下:
    url: api.map.baidu.com/geodata/poi
    GET:api.map.baidu.com/geosearch/start&location=lon,
    lat&radius=3000&scope=2&ak=key
                //檢索出發(fā)地周圍3 km的拼車用戶
    GET:api.map.baidu.com/geosearch/destination&location=
    lond,latd&radius=3000&scope=2&ak=key
    //檢索目的地周圍3 km的拼車用戶
3 客戶端設(shè)計
3.1 客戶端硬件設(shè)計

    客戶端裝置要求攜帶方便、低功耗、高性能、可擴(kuò)展,因此使用S3C6410嵌入式微處理器作為控制核心??蛻舳擞布Y(jié)構(gòu)如圖2所示,主要由S3C6410處理器、GPS定位模塊、3G無線模塊及外圍電路等組成。外圍電路包括256 MB RAM內(nèi)存、2 GB NAND Flash存儲器、7寸液晶屏和串口接口等。

    選用GPS模塊的型號為WGS100,它采用高靈敏度導(dǎo)航芯片SIRF3,20通道通信,最多可以同時與20顆衛(wèi)星建立通信;有RS232和TTL兩種電平輸出方式,缺省通信速率為9 600 b/s;采用可靠的外置天線,定位穩(wěn)定,功耗低,可直接由常見的5 V電源供電。在客戶端中采用RS232方式與S3C6410處理器連接通信,由GPS模塊定位當(dāng)前位置數(shù)據(jù),再由處理器處理后在客戶端軟件的地圖頁面定位和顯示當(dāng)前位置,定位過程如圖3所示。

3.2 客戶端軟件設(shè)計
    智能拼車匹配系統(tǒng)的Android客戶端基于Eclipse 4.2開發(fā),主要包括注冊模塊、登錄模塊、地圖模塊和拼車模塊4個功能模塊。
    客戶端有注冊、登錄、拼車3個界面,在工程的layout文件夾中,建立3個xml文件進(jìn)行窗口控件設(shè)計。在拼車界面中,需要載入地圖頁面,其代碼如下:
    <com.baidu.mapapi.MapView//地圖窗口接口
    android:id="@+id/bmapsView"//窗口id
    android:layout_width="fill_parent"//寬度
    android:layout_height="fill_parent"//高度
    android:clickable="true" /> //地圖可點擊
    各功能模塊程序設(shè)計:
    (1)登錄模塊:向服務(wù)器驗證用戶輸入的用戶名和密碼是否正確,并返回提示信息。與服務(wù)器的通信采用post方式,關(guān)鍵代碼如下:
    StringurlStr = "http://172.16.72.186:8080/loginser/login";
         //登錄Servlet的路徑
    HttpPost request = new HttpPost(urlStr);
//request繼承HttpPost方法
    HttpResponse response =client.execute(request);
//執(zhí)行請求返回響應(yīng)
    (2)注冊模塊:將新用戶名、密碼等信息發(fā)送到服務(wù)器進(jìn)行保存,完成后跳轉(zhuǎn)到登錄界面,通信方法與登錄模塊相同。
    (3)地圖模塊:基于百度地圖api接口實現(xiàn)實時定位、地圖搜索和路線規(guī)劃等基本功能。程序中,設(shè)置setBu-
iltInZoomControls對象啟用縮放控件,setClickable對象設(shè)置地圖可點擊,繼承MyLocationOverlay對象顯示當(dāng)前位置層,用MKSearch( )方法來初始化地圖搜索功能,設(shè)置enableCompass對象開啟指南針功能。定位當(dāng)前位置的關(guān)鍵代碼如下:
    pt=new GeoPoint((int)(location.getLatitude() * 1e6),(int)
(location.getLongitude() * 1e6));//獲取當(dāng)前經(jīng)緯度
    mapView.getController().animateTo(pt);
//地圖上標(biāo)記當(dāng)前位置
    (4)拼車模塊:設(shè)置出發(fā)地、目的地以及時間區(qū)間,點擊拼車方式按鈕發(fā)送拼車信息到服務(wù)器,其中出發(fā)地和目的地的經(jīng)緯度存儲到位置云平臺進(jìn)行匹配。服務(wù)器進(jìn)行條件篩選后,返回匹配結(jié)果并在客戶端顯示。通過點擊地圖設(shè)置地點,獲取經(jīng)緯度的關(guān)鍵代碼如下:
    public boolean onTap(GeoPoint p, MapView mapView) {
//點擊地圖事件監(jiān)聽
    GeoPoint gpoint = newGeoPoint((int)lat,(int)lon);
//獲取點擊地點經(jīng)緯度
    編寫好各模塊程序后,需要在工程文件根目錄下的AndroidManifest.xml文件中進(jìn)行相關(guān)設(shè)置,才能正常運行代碼[6],其中關(guān)鍵權(quán)限設(shè)置如下:
    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"></uses-permission>//設(shè)置位置服務(wù)
    <uses-permission android:name="android.permission.
    INTERNET"></uses-permission>  //設(shè)置網(wǎng)絡(luò)權(quán)限
4 系統(tǒng)功能測試
    將客戶端程序打包成apk應(yīng)用文件,安裝到客戶端中。在PC端開啟服務(wù)器和數(shù)據(jù)庫服務(wù),登錄客戶端后進(jìn)入主界面,測試發(fā)送從當(dāng)前位置到南京火車站的搭乘需求到服務(wù)器,設(shè)置時間區(qū)間為9:30~10:30,如圖4所示。測試前,預(yù)先向服務(wù)器發(fā)布了20條各不相同的拼車數(shù)據(jù),服務(wù)器從這些已有的拼車信息中匹配出2個合適的拼車對象,如圖5所示。

    為了滿足人們對于快捷拼車出行的實際需求,設(shè)計開發(fā)了基于位置云服務(wù)的智能拼車匹配系統(tǒng)及其嵌入式客戶端裝置,利用百度地圖API開發(fā)接口,實現(xiàn)了地圖的定位、搜索等基本功能。結(jié)合Tomcat服務(wù)器與LBS云存儲和檢索技術(shù),能夠迅速完成拼車位置信息的存儲和檢索,為用戶及時地匹配到周圍合適的拼車伙伴。
參考文獻(xiàn)
[1] 王茂福.拼車的發(fā)展及其效應(yīng)[J].中國軟科學(xué),2010(17):54-55.
[2] 韓超,梁泉.Android系統(tǒng)原理及開發(fā)要點詳解[M].北京:電子工業(yè)出版社,2010.
[3] 劉尚旺,何東健,閆艷.Tomcat與IIS或Apache服務(wù)器集 成的應(yīng)用研究[J].計算機(jī)工程與設(shè)計,2009,30(10):2541-2546.
[4] 陳菁菁.程序員突擊&mdash;Tomcat原理與Java Web系統(tǒng)開發(fā)[M]. 北京:清華大學(xué)出版社,2009.
[5] 吳吉義,王中友.程序員突擊&mdash;MySql原理與Web系統(tǒng)開發(fā)[M].北京:清華大學(xué)出版社,2009.
[6] 何孟翰.Google Android SDK開發(fā)實戰(zhàn)演練[M].北京:人民郵電出版社,2012.

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。