基于iOS平臺(tái)車(chē)位共享系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)
掃描二維碼
隨時(shí)隨地手機(jī)看文章
引 言
近年來(lái),隨著經(jīng)濟(jì)發(fā)展,我國(guó)機(jī)動(dòng)車(chē)保有量迅速增長(zhǎng)。但與此同時(shí),城市化加速發(fā)展,城市停車(chē)位數(shù)量增長(zhǎng)卻嚴(yán)重滯后,城市的停車(chē)供需矛盾日益突出[1,2]。城市停車(chē)難的問(wèn)題固然有停車(chē)位絕對(duì)數(shù)量不能滿足日益增長(zhǎng)的停車(chē)需求的原因,但車(chē)位信息不對(duì)等,資源利用率低等因素,在一定程度上加劇了城市停車(chē)難的問(wèn)題 [3]。人流較為集中的公共場(chǎng)所在工作日時(shí)停車(chē)位非常緊張,而與此同時(shí),在相鄰的住宅區(qū),可能因?yàn)闃I(yè)主上班或者出門(mén)辦事,會(huì)有大量的剩余車(chē)位空閑。如果能通過(guò)智能平臺(tái)將碎片化的車(chē)位資源整合分享,無(wú)疑能在很大程度上緩解停車(chē)位緊張的問(wèn)題 [4,5]。
隨著互聯(lián)網(wǎng)的飛速發(fā)展,特別是近年來(lái)隨著社交網(wǎng)絡(luò)、物聯(lián)網(wǎng)、云計(jì)算以及多種傳感器的廣泛應(yīng)用,以數(shù)量龐大, 種類(lèi)眾多,時(shí)效性強(qiáng)為特征的數(shù)據(jù)不斷涌現(xiàn),人與人之間通過(guò)網(wǎng)絡(luò)的聯(lián)系愈發(fā)緊密 [6]。利用移動(dòng)互聯(lián)網(wǎng)技術(shù),將每一個(gè)車(chē)主作為信息源,將車(chē)位空閑時(shí)間等信息發(fā)布到手機(jī)平臺(tái),有需求的車(chē)主可以按照自己的需求自行搶單,完成空閑車(chē)位使用, 通過(guò)這樣的方式,空閑車(chē)位可以被分割成一個(gè)個(gè)小的時(shí)段,讓不同的車(chē)主分時(shí)共享,而車(chē)主也可以通過(guò)出讓空閑車(chē)位來(lái)獲取等效的車(chē)位時(shí)間,以免費(fèi)使用其他車(chē)主的空閑車(chē)位。通過(guò)時(shí)間互換的方式使得出讓車(chē)位與使用空閑車(chē)位的人得到利益平衡。這種時(shí)間交換的方式摒棄了通過(guò)金錢(qián)交易的手段,使得用戶不會(huì)為了經(jīng)濟(jì)利益最大化而長(zhǎng)期占用空閑車(chē)位,最大程度的提高車(chē)位使用效率,緩解城市停車(chē)難的問(wèn)題。
1 相關(guān)工作
國(guó)內(nèi)外曾經(jīng)出現(xiàn)過(guò)幾種利用移動(dòng)網(wǎng)絡(luò)終端來(lái)共享空閑車(chē)位,提高空閑車(chē)位使用率的軟件。這些軟件雖然在一定程度上能夠緩解車(chē)位緊張的壓力,但由于應(yīng)用策略的設(shè)計(jì)上存在一些問(wèn)題,在推廣應(yīng)用方面并不成功[7,8]。
MonkeyParking 是美國(guó)的一家初創(chuàng)型公司,用戶將自己占用的停車(chē)位信息發(fā)送到網(wǎng)絡(luò)平臺(tái)上,通過(guò)拍賣(mài)的形式出售給下一位用戶,誰(shuí)出價(jià)更高就歸誰(shuí)使用。這種方式雖然能在一定程度上提高車(chē)位的利用效率,但其運(yùn)營(yíng)方式體現(xiàn)出極為明顯的盈利目的,用戶使用該產(chǎn)品的積極性很低,該應(yīng)用最終在舊金山遭禁,也表明該公司采用的共享經(jīng)濟(jì)模型仍不成熟,理想需求和用戶錯(cuò)位是其最大軟肋[9]。
Sweetch 創(chuàng)業(yè)公司為用戶提供 掏點(diǎn)小錢(qián)就能解決停車(chē)難題 的服務(wù)。他們開(kāi)發(fā)了一款名為 Sweetch 的停車(chē)位共享App:假設(shè)A 在尋找停車(chē)位,而 B 要離開(kāi)自己的停車(chē)位,同時(shí)使用一次停車(chē)位需繳納 5 美元的費(fèi)用。B 將自己所處停車(chē)位的信息上傳至Sweetch,A 隨即認(rèn)領(lǐng)B 的停車(chē)位,那么B 將得到系統(tǒng)返還的 4 美元。Sweetch 希望通過(guò)減少車(chē)主尋找停車(chē)位的時(shí)間來(lái)緩解交通擁堵造成的壓力。然而在實(shí)際使用過(guò)程中,似乎有錢(qián)人更容易找到停車(chē)位。
國(guó)內(nèi)的 丁丁停車(chē) App 則是用戶將自己車(chē)位的空閑時(shí)間出租,來(lái)獲得對(duì)外分享費(fèi)用,以此方式抵消停車(chē)位的價(jià)格 [10]。去年 丁丁停車(chē) App 獲得了數(shù)千萬(wàn)元的天使投資,但該 App 采用的車(chē)位租賃方式不符合我國(guó)用戶使用App 的習(xí)慣,目前尚未呈現(xiàn)快速發(fā)展的趨勢(shì)。此前包括北京、廣州等多地都有小區(qū)推出了車(chē)位共享、錯(cuò)時(shí)停車(chē)的車(chē)位解決辦法,但最終都沒(méi)能得到很好的使用和推廣。
2 車(chē)位共享系統(tǒng)設(shè)計(jì)
2.1 系統(tǒng)操作流程
車(chē)位共享系統(tǒng)為:車(chē)主 a 在A 地居住,在B 地工作,車(chē)主b 在B 地工作,在 A 地居住,兩人在各自居住地均有停車(chē)位, 因此在工作時(shí)間,a、b 兩人可以通過(guò)平臺(tái)獲取車(chē)位空閑時(shí)間信息,交換使用車(chē)位,在不增加兩人經(jīng)濟(jì)成本的同時(shí)提高了車(chē)位使用率。在實(shí)際使用過(guò)程中,用戶提供車(chē)位信息與時(shí)段,采用置換時(shí)間的方式,通過(guò)提供車(chē)位時(shí)間來(lái)?yè)Q取本人免費(fèi)的時(shí)間。不同于按次收費(fèi)的方式,采用等時(shí)間置換的方式或根據(jù)車(chē)位位置設(shè)置時(shí)間權(quán)重,高優(yōu)先級(jí)的車(chē)位可以換取相對(duì)多的停車(chē)時(shí)間。
用戶使用該平臺(tái)的基本操作流程 :注冊(cè)賬號(hào),填寫(xiě)車(chē)位相關(guān)(位置、類(lèi)型、歸屬狀況等)信息 ;在平臺(tái)上發(fā)布車(chē)位空閑時(shí)間;平臺(tái)將根據(jù)車(chē)位需求情況進(jìn)行優(yōu)化配置,選擇合適的車(chē)位使用用戶;在車(chē)位使用后將車(chē)位使用時(shí)間計(jì)入本用戶可置換時(shí)間。對(duì)于車(chē)位使用用戶可以通過(guò)注冊(cè)的賬號(hào)登錄,實(shí)時(shí)查詢空閑車(chē)位信息,選擇預(yù)定相關(guān)車(chē)位的使用時(shí)段,并用自己積累的車(chē)位時(shí)間進(jìn)行支付。
2.2 系統(tǒng)架構(gòu)
車(chē)位共享系統(tǒng)基于 iOS 平臺(tái),采用服務(wù)器 / 客戶端架構(gòu), 服務(wù)器端基于MySQL 完成用戶、車(chē)位信息的存儲(chǔ)、管理與查詢功能;客戶端基于 iOS 平臺(tái)實(shí)現(xiàn)用戶登錄、發(fā)布、查詢、預(yù)定車(chē)位等功能。系統(tǒng)結(jié)構(gòu)如圖 1 所示。
2.3 客戶端設(shè)計(jì)
客戶端基于用戶手持 iOS 設(shè)備,完成用戶注冊(cè),登錄,發(fā)布、 查詢車(chē)位信息,車(chē)位預(yù)定、時(shí)間支付等功能,客戶端分為 5 個(gè) 模塊,其結(jié)構(gòu)如圖 2 所示。
(1)用戶注冊(cè)模塊為首次使用該系統(tǒng)的用戶創(chuàng)建 ID,設(shè) 置用戶名、密碼,用戶利用該模塊填寫(xiě)車(chē)位位置、可用時(shí)間等 相關(guān)信息,其中車(chē)位位置可通過(guò) iOS 平臺(tái)提供的定位功能確定, 相應(yīng)信息將計(jì)入服務(wù)器端的數(shù)據(jù)庫(kù),用于用戶信息管理及查詢;
(2)用戶登錄模塊。根據(jù)輸入的用戶名、密碼判斷是否 為合法用戶,為合法用戶完成登錄操作 ;
(3)車(chē)位信息發(fā)布模塊。獲取用戶更新的車(chē)位空閑時(shí)間, 服務(wù)器端根據(jù)相應(yīng)信息更新數(shù)據(jù)庫(kù) ;
(4)車(chē)位信息查詢模塊。將用戶輸入的查詢關(guān)鍵字傳到 服務(wù)器,根據(jù)數(shù)據(jù)庫(kù)返回的信息為用戶提供可用的車(chē)位信息 ;
(5)車(chē)位預(yù)定、支付模塊。根據(jù)用戶選擇的車(chē)位,完成 車(chē)位排他性預(yù)定,用戶用自己積累的車(chē)位時(shí)間進(jìn)行支付。
2.4 服務(wù)器設(shè)計(jì)
服務(wù)器端建立并維護(hù)用戶和車(chē)位信息,響應(yīng)用戶查詢、預(yù)定、支付等操作。服務(wù)器端分為消息響應(yīng)模塊和數(shù)據(jù)庫(kù)模塊, 其結(jié)構(gòu)圖如圖 3 所示。
數(shù)據(jù)庫(kù)模塊記錄存儲(chǔ)用戶、車(chē)位可用時(shí)間等實(shí)時(shí)信息以及車(chē)位使用記錄等歷史信息。需要建立并維護(hù)數(shù)據(jù)表,記錄每個(gè)用戶的ID,車(chē)位位置,車(chē)位可用時(shí)間,累計(jì)出讓車(chē)位時(shí)間, 累計(jì)使用車(chē)位時(shí)間等相關(guān)信息。
消息響應(yīng)模塊響應(yīng)用戶操作。完成用戶的注冊(cè),填寫(xiě)、修改車(chē)位信息,獲取用戶發(fā)布的車(chē)位空閑時(shí)間,根據(jù)這些信息更新數(shù)據(jù)庫(kù),完成數(shù)據(jù)插入、刪除、修改等操作。根據(jù)用戶提交的查詢請(qǐng)求來(lái)查詢數(shù)據(jù)庫(kù),返回相應(yīng)信息。包括查詢個(gè)人信息,根據(jù)輸入的時(shí)間、地點(diǎn)查詢合適的車(chē)位等。根據(jù)用戶 選擇的車(chē)位完成車(chē)位預(yù)定以及時(shí)間支付等功能,并更新數(shù)據(jù) 庫(kù)相應(yīng)數(shù)據(jù)。
3 車(chē)位共享系統(tǒng)實(shí)現(xiàn)
車(chē)位共享系統(tǒng)基于 iOS 平臺(tái)實(shí)現(xiàn), 客戶端界面采用 Xcode 開(kāi)發(fā)環(huán)境的 InterfaceBuilder 實(shí)現(xiàn), 開(kāi)發(fā)環(huán)境為MacBook Pro,測(cè)試環(huán)境為Iphone simulator,后臺(tái)數(shù)據(jù)庫(kù)基于MySQL 實(shí)現(xiàn)。
3.1 用戶登錄模塊
在用戶啟動(dòng)軟件后,首先進(jìn)入登錄頁(yè)面,判斷用戶是否為合法用戶。進(jìn)入登錄頁(yè)面后,判斷本機(jī)是否保存了自動(dòng)登錄信息,并判斷是否已注冊(cè),如果未注冊(cè),則進(jìn)入注冊(cè)頁(yè)面;如果用戶已注冊(cè),則提示用戶輸入用戶名、密碼,查詢、判斷該用戶是否合法。如果不合法,則提示登錄失敗;如果用戶合法, 則登錄成功,進(jìn)入用戶操作界面。
系統(tǒng)采用 NSURLConnection 向服務(wù)器端發(fā)送查詢信息的方式查詢用戶是否合法,NSURL 為請(qǐng)求查詢地址,在NSURLRequest 中封裝要發(fā)送的請(qǐng)求,包括用戶名、密碼、地址等查詢信息。通過(guò)NSURLConnection發(fā)送請(qǐng)求,建立客戶端與服務(wù)器的鏈接,將建立的數(shù)據(jù)包發(fā)送給服務(wù)器,接收服務(wù)器的響應(yīng)數(shù)據(jù)。根據(jù)查詢返回結(jié)果判斷用戶狀態(tài),將登錄成功用戶名不存在或密碼不正確等信息顯示在界面上, 提示用戶的登錄狀態(tài)。
3.1 信息發(fā)布查詢模塊
車(chē)位信息的發(fā)布和查詢是系統(tǒng)的重要環(huán)節(jié)。服務(wù)器端根據(jù)用戶發(fā)布的信息更新數(shù)據(jù)庫(kù),根據(jù)用戶的查詢條件返回相應(yīng)的結(jié)果。當(dāng)服務(wù)器收到客戶端發(fā)布的信息后,采用insert、delete、update 等語(yǔ)句完成數(shù)據(jù)庫(kù)中信息的插入、刪除、更新等操作。當(dāng)獲取用戶查詢消息時(shí),需要對(duì)數(shù)據(jù)庫(kù)進(jìn)行查詢,查詢的處理流程如圖 4 所示。
通常用戶的查詢條件包括地點(diǎn)、時(shí)間等。需要對(duì)數(shù)據(jù)庫(kù) 中的車(chē)位信息按距離查詢、排序。首先進(jìn)行搜索,在數(shù)據(jù)庫(kù)中 搜索出距離用戶提供的查詢地點(diǎn)一定范圍內(nèi)的車(chē)位,通常用戶 通過(guò)iOS定位功能提供查詢和車(chē)位位置,該位置以經(jīng)緯度給出, 可通過(guò)比較經(jīng)緯度簡(jiǎn)單判斷出查詢點(diǎn)和車(chē)位之間的距離;遍歷 搜索出來(lái)的結(jié)果,用時(shí)間和距離再次過(guò)濾,得到精確的查詢 結(jié)果 ;最后根據(jù)距離由近及遠(yuǎn)進(jìn)行排序,返回查詢結(jié)果。
4 未來(lái)工作
車(chē)位共享系統(tǒng)在實(shí)際應(yīng)用過(guò)程中,其安全性也是用戶應(yīng)該考慮的重要問(wèn)題,將自己的車(chē)位授權(quán)給他人使用是否會(huì)帶來(lái)安全隱患,是否存在潛在糾紛。為此,車(chē)位共享系統(tǒng)的安全問(wèn)題需要在應(yīng)用中深入討論。如對(duì)使用系統(tǒng)的用戶進(jìn)行實(shí)名認(rèn)證,可以通過(guò)綁定手機(jī)號(hào)和車(chē)牌號(hào)的方式來(lái)確定使用人員的身份;采用手機(jī)驗(yàn)證碼的方式來(lái)獲取小區(qū)門(mén)禁權(quán)限 ;對(duì)于違規(guī)使用的用戶,采取一定的懲罰措施等。
5 結(jié) 語(yǔ)
車(chē)位共享系統(tǒng)通過(guò)車(chē)位信息發(fā)布,具有車(chē)位共享等功能, 可實(shí)現(xiàn)空余車(chē)位的精細(xì)化管理,使有車(chē)位的用戶在空間上實(shí)現(xiàn)資源共享,充分利用車(chē)位資源,有效緩解停車(chē)難問(wèn)題。該平臺(tái)可進(jìn)行大規(guī)模應(yīng)用推廣。