龔寧靜+冷靜
摘要:為了彌補(bǔ)市場(chǎng)上多數(shù)基于LBS的應(yīng)用缺乏用戶間位置交互的缺陷,提出多用戶位置共享方法MULS。從異地點(diǎn)餐、集體出行等應(yīng)用入手說明該方法能提供用戶間的位置交互,并完善應(yīng)用的位置服務(wù)功能,通過介紹MULS的原理說明該方法的可行性,在iOS操作系統(tǒng)上,從位置獲取、共享策略、數(shù)據(jù)交換與總體框架幾個(gè)層面逐步實(shí)現(xiàn)該方法。該方法能有效提供用戶間的位置共享,讓團(tuán)隊(duì)用戶間多人實(shí)時(shí)位置、團(tuán)隊(duì)集合進(jìn)度、未歸隊(duì)隊(duì)員位置查詢及定位功能的實(shí)現(xiàn)變成可能,讓LBS應(yīng)用給人們生活帶來更大的便利。
關(guān)鍵詞:位置共享;多用戶;位置服務(wù);網(wǎng)絡(luò)社交
DOIDOI:10.11907/rjdk.172312
中圖分類號(hào):TP319
文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1672-7800(2017)012-0143-04
Abstract:A multiple user location sharing approach MULS is proposed to fill the location interaction gap between users for most LBS-based Apps in marketplace. Though Apps like remote ordering and group traveling, location interaction between users is demostrated, and the location service in the Apps is improved. Then the principle of MULS is introduced to explain its feasibility. Finally, some implementation details are given on perspectives of location fetching, sharing strategy, data exchange and overall architecture. It can be concluded that the MULS approach can be implemented on basis of existing Apps. It can provide efficient inter-user location sharing, make real-time multiple-user locating, group rendezvous, query and locating for scattered group members possible, and bring people more convinience for living.
Key Words:shared location; multiple users; location based service; social network
0 引言
隨著智能移動(dòng)設(shè)備與移動(dòng)互聯(lián)網(wǎng)市場(chǎng)的全面鋪開,基于LBS的應(yīng)用也越來越廣泛。LBS逐漸滲透到人們休閑娛樂、生活服務(wù)及社交的方方面面[1,2]。大家所熟悉的移動(dòng)端應(yīng)用“高德”、“餓了么”及“驢友”都基于LBS支持?!梆I了么”外賣點(diǎn)餐應(yīng)用結(jié)合用戶的位置信息為用戶合理推薦外賣送餐距離允許范圍內(nèi)的餐飲店鋪;“高德”地圖應(yīng)用根據(jù)用戶位置信息及用戶標(biāo)記的目的地,幫助用戶規(guī)劃合理出行路線;“驢友”旅游應(yīng)用參考用戶位置所在城市給用戶推薦特價(jià)機(jī)票和優(yōu)惠旅游項(xiàng)目。這些應(yīng)用有了LBS的支持,能夠在提供原有服務(wù)的同時(shí)為用戶提供位置服務(wù),并在位置服務(wù)的基礎(chǔ)上讓原有服務(wù)變得更有效率。類似以上基于LBS的應(yīng)用正越來越多地出現(xiàn)在人們的視野中。
用戶在網(wǎng)絡(luò)社交中借助這些應(yīng)用讓生活變得便捷時(shí)也常常遇到麻煩。“高德”地圖能為單人出行提供全方位周到服務(wù),但多人出行場(chǎng)合下無法實(shí)現(xiàn)多位置跟蹤及數(shù)據(jù)統(tǒng)計(jì)。“餓了么”餐飲推薦基于用戶位置(送餐地點(diǎn))及送餐允許距離,但送餐地點(diǎn)不能設(shè)置為從互聯(lián)網(wǎng)遷移來的位置信息,此應(yīng)用無法實(shí)現(xiàn)異地點(diǎn)餐推薦(如出差的子女為家中老人點(diǎn)餐)。包括“驢友”在內(nèi)的許多旅游應(yīng)用雖可以通過定位幫用戶準(zhǔn)確找到景點(diǎn),但在許多偏遠(yuǎn)景區(qū)缺少POI標(biāo)記的情況下反而容易誤導(dǎo)游客迷路,更不能在游客迷路或意外受傷時(shí)為導(dǎo)游或急救人員準(zhǔn)確定位游客位置。針對(duì)這些問題,本文提出一種基于LBS的多用戶位置共享方法MULS。使用這種方法能夠在上述場(chǎng)合幫助用戶迅速解決問題。
LBS即Location Based Serivice,指通過移動(dòng)通信網(wǎng)絡(luò)(蜂窩站點(diǎn))外部定位方式(GPS)或無線局域網(wǎng)(WIFI),在地理信息系統(tǒng)平臺(tái)的支持下為用戶提供相應(yīng)服務(wù)[3]。LBS也稱作位置服務(wù),基于LBS的應(yīng)用常常會(huì)引入POI(POI即興趣點(diǎn)/熱點(diǎn),Point of Interest)[4]。通過將用戶當(dāng)前位置信息與POI進(jìn)行關(guān)聯(lián),能為用戶提供精確定位、出行導(dǎo)航及興趣推薦等服務(wù)。
MULS是指在多個(gè)用戶間將他們移動(dòng)端的當(dāng)前位置進(jìn)行共享。讓用戶不僅可以在個(gè)人移動(dòng)端查詢到自身當(dāng)前位置,還能查詢到他人當(dāng)前位置及移動(dòng)軌跡,以此解決多人出行時(shí)相互位置難以確定的難題。在朋友碰面、多人聚會(huì)、商務(wù)洽談、導(dǎo)游帶隊(duì)等多人同行場(chǎng)合下,實(shí)現(xiàn)團(tuán)隊(duì)用戶間多人實(shí)時(shí)位置、團(tuán)隊(duì)集合進(jìn)度、未歸隊(duì)隊(duì)員位置等的查詢及定位。本文提出的MULS與某些現(xiàn)有應(yīng)用中單獨(dú)顯示他人位置文本信息或僅使用地理圍欄[4]計(jì)算用戶附近其他用戶距離的位置共享不同。MULS能實(shí)現(xiàn)多用戶間的位置主動(dòng)分享、地圖多用戶位置標(biāo)記和軌跡記錄、多位置點(diǎn)數(shù)據(jù)統(tǒng)計(jì)等功能。
1 MULS原理
多用戶位置共享以LBS為基礎(chǔ)。如果要在兩個(gè)用戶A與B間共享位置,則用戶A與B必須先分別通過移動(dòng)端獲取自身當(dāng)前位置,然后用戶A對(duì)用戶B進(jìn)行分享當(dāng)前位置的設(shè)置。這樣用戶A移動(dòng)端將A的位置及要分享目標(biāo)發(fā)送給服務(wù)器,服務(wù)器再將用戶A的位置轉(zhuǎn)發(fā)給用戶B移動(dòng)端,共享用戶A的位置。這時(shí)用戶B的移動(dòng)端可以同時(shí)看到用戶A與B兩個(gè)位置信息。因此當(dāng)用戶數(shù)為n時(shí),通過同樣的途徑,一個(gè)用戶的移動(dòng)終端上最多可以看到除自己以外的n-1個(gè)他人位置信息。其詳細(xì)的UML活動(dòng)見圖1。endprint
多人位置共享使得一個(gè)移動(dòng)終端有可能獲取到多個(gè)移動(dòng)終端的位置信息。當(dāng)兩人相約碰面時(shí),通過位置信息共享移動(dòng)終端可以實(shí)時(shí)反饋兩人所在位置、他們之間的距離和各自移動(dòng)方向。用戶憑借這些實(shí)時(shí)反饋能在最快時(shí)間內(nèi)碰面。
在異地點(diǎn)餐情況(如a城市的用戶A要給b城市的用戶B點(diǎn)餐)中,用戶B移動(dòng)端只要設(shè)置分享位置給用戶A即可。這時(shí)用戶A能獲取從服務(wù)器轉(zhuǎn)發(fā)來的用戶B位置,并將B的位置設(shè)置成送餐地點(diǎn)。這樣,外賣點(diǎn)餐應(yīng)用會(huì)根據(jù)B的位置和送餐距離參數(shù)重新構(gòu)建地理圍欄,結(jié)合POI給出可選的外賣商鋪推薦。
在集體出行例子中,如果一個(gè)旅行團(tuán)的所有游客都與導(dǎo)游(假設(shè)一人)共享他們的位置,那么就算在荒野地區(qū),迷路的游客也可以將共享到自己移動(dòng)端上導(dǎo)游的位置作為航標(biāo)來脫困。如果游客意外受傷不能移動(dòng),導(dǎo)游也可以通過受傷游客共享過來的位置迅速找到他。旅行團(tuán)到達(dá)某個(gè)景點(diǎn),游客自由行動(dòng),導(dǎo)游通過移動(dòng)端上所有游客的位置信息可以隨時(shí)了解團(tuán)隊(duì)的集散情況,在需要集合時(shí),導(dǎo)游也能實(shí)時(shí)了解未歸隊(duì)隊(duì)員的歸來進(jìn)度。
因此,基于LBS的多用戶位置共享方法MULS能有效解決現(xiàn)有位置服務(wù)應(yīng)用中的各類問題。
2 MULS的實(shí)現(xiàn)
MULS可以被運(yùn)用于任何移動(dòng)應(yīng)用中[5-6]。目前移動(dòng)端操作系統(tǒng)多以iOS和Android為主。本文介紹在iOS系統(tǒng)下MULS的實(shí)現(xiàn)方法。
多用戶共享以LBS為前提,MULS的實(shí)現(xiàn)總體包括4個(gè)方面:①用戶自身位置信息獲?。虎诮⒌貓D視圖對(duì)位置進(jìn)行標(biāo)記和顯示;③共享對(duì)象設(shè)置及共享;④共享數(shù)據(jù)轉(zhuǎn)發(fā)及實(shí)現(xiàn)的總體框架。MULS的實(shí)現(xiàn)方法將根據(jù)這4點(diǎn)進(jìn)行詳細(xì)介紹并給出部分主要代碼。
2.1 用戶自身位置信息獲取
要想獲取用戶的當(dāng)前位置信息需要完成兩個(gè)步驟。首先,通過定位獲取當(dāng)前用戶的地理位置,也叫GPS Coordinate——地理坐標(biāo)。這個(gè)坐標(biāo)有兩個(gè)參數(shù):一個(gè)經(jīng)度,一個(gè)緯度,但經(jīng)緯度不足以讓用戶充分理解。第二步,將GPS Coordinate通過反地理編碼,把經(jīng)緯度轉(zhuǎn)換為對(duì)應(yīng)的具體地址。這就是用戶能夠理解的當(dāng)前位置信息了,根據(jù)需要可以包括以下幾方面的文本內(nèi)容:國家、省、市、街道等。
2.2 用戶當(dāng)前位置的地圖標(biāo)記
獲取用戶的當(dāng)前位置信息后,可以以文本形式顯示出來,但這并不是最形象的表示辦法。通常,人們會(huì)結(jié)合地圖來標(biāo)識(shí)當(dāng)前位置。也就是說系統(tǒng)獲取用戶當(dāng)前位置坐標(biāo)后,一方面要通過反向查詢得到位置的詳細(xì)文本信息,另一方面還要將地理坐標(biāo)標(biāo)記到地圖上并顯示給用戶。通過地圖標(biāo)記顯示并結(jié)合文字信息共同描述用戶的當(dāng)前位置。
2.3 設(shè)置共享及實(shí)現(xiàn)共享
完成用戶當(dāng)前位置獲取及顯示后,用戶可通過移動(dòng)端實(shí)時(shí)查詢自己的當(dāng)前位置,這是實(shí)現(xiàn)MULS的前提。因用戶位置信息屬敏感個(gè)人隱私[9],不能隨意泄露,因此要為用戶的位置共享提供一個(gè)可自主操作的開關(guān),并有指向地對(duì)某個(gè)或多個(gè)其他用戶進(jìn)行共享操作設(shè)置。用好友列表加開關(guān)的方式可實(shí)現(xiàn)共享的設(shè)置操作。
采用用戶ID唯一標(biāo)識(shí)任意用戶。通過添加其他用戶ID到自己的好友列表中,用戶可將其他用戶添加為好友。好友列表中每一欄是一個(gè)ID用戶,并顯示為帶頭像的昵稱,旁邊設(shè)有可開關(guān)共享的操作按鈕。此按鈕的開關(guān)決定本機(jī)用戶對(duì)該ID用戶是否開啟或關(guān)閉位置共享。
當(dāng)用戶更改共享設(shè)置后會(huì)提示保存。一旦保存,則共享設(shè)置會(huì)上傳到服務(wù)器。服務(wù)器端將該用戶需要共享的好友ID全部存放在一個(gè)字段中。此字段為空時(shí),服務(wù)器不會(huì)轉(zhuǎn)發(fā)用戶位置。當(dāng)字段不為空,服務(wù)器讀取字段內(nèi)容并解析出所有好友ID。一旦用戶端當(dāng)前位置發(fā)生改變,服務(wù)器將轉(zhuǎn)發(fā)用戶當(dāng)前位置到解析出需要分享位置的每個(gè)在線好友移動(dòng)終端。
接收他人共享位置的用戶,可以通過好友列表查看哪些好友給自己分享了位置,并可針對(duì)單個(gè)好友設(shè)置顯示或屏蔽好友位置。由于之前已完成了地圖顯示及標(biāo)記位置的功能,因此一旦有好友將位置分享給用戶,用戶地圖視圖會(huì)刷新并增加該好友位置標(biāo)記,顯示好友昵稱及位置文本信息。通過地圖視圖上自己及好友的位置標(biāo)記,用戶可清晰了解對(duì)方和自己的位置及距離。由于地圖會(huì)隨時(shí)更新,當(dāng)好友和用戶位置發(fā)生改變時(shí),用戶還能從地圖視圖上看到雙方的行進(jìn)方向,并可設(shè)置保存移動(dòng)軌跡。
2.4 數(shù)據(jù)交換及總體框架
要在多用戶間進(jìn)行位置信息共享,需借助服務(wù)器進(jìn)行轉(zhuǎn)發(fā)??赏ㄟ^JSON格式數(shù)據(jù)流[10](JavaScript Object Notation)實(shí)現(xiàn)服務(wù)器端與用戶移動(dòng)端應(yīng)用之間的數(shù)據(jù)交換。數(shù)據(jù)交換總體框架見圖2。
總體框架中客戶端是iOS上的應(yīng)用,服務(wù)器端使用J2EE的servlet技術(shù)??蛻舳送ㄟ^MULS使用HTTP協(xié)議發(fā)送已序列化的JSON位置共享數(shù)據(jù)流給服務(wù)器;服務(wù)器對(duì)接收的JSON數(shù)據(jù)流進(jìn)行反序列化解析,得到多個(gè)完整的真實(shí)數(shù)據(jù)并存儲(chǔ)到數(shù)據(jù)庫;然后根據(jù)服務(wù)器端servlet中對(duì)位置共享的處理邏輯加工數(shù)據(jù),并再次將這些數(shù)據(jù)序列轉(zhuǎn)化成JSON數(shù)據(jù)流轉(zhuǎn)發(fā)給共享目標(biāo)好友。好友的客戶端應(yīng)用接收到JSON數(shù)據(jù)流后,將它反序列化解析出用戶ID和昵稱及該用戶位置,并通過地圖視圖進(jìn)行標(biāo)記和顯示。
3 結(jié)語
基于LBS的多用戶位置共享方法MULS通過在多個(gè)用戶間共享他們移動(dòng)端的當(dāng)前位置信息,將移動(dòng)終端的位置通過互聯(lián)網(wǎng)遷移到其它移動(dòng)終端。此方法使一個(gè)移動(dòng)終端通過地圖可同時(shí)查看和處理多人位置信息,使網(wǎng)絡(luò)社交中的朋友碰面、多人聚會(huì)、商務(wù)洽談、導(dǎo)游帶隊(duì)等多人同行變得更加便利,實(shí)現(xiàn)團(tuán)隊(duì)用戶間多人實(shí)時(shí)位置、團(tuán)隊(duì)集合進(jìn)度、未歸隊(duì)隊(duì)員位置等的查詢及定位。這種方法不一定適用于所有應(yīng)用,但對(duì)解決該類型問題提供了很好的思路。再者,用戶位置信息屬個(gè)人隱私,應(yīng)加以保護(hù),采用有效的位置隱私保護(hù)技術(shù)能使MULS方法變得更加完善。
參考文獻(xiàn):
[1] 馬強(qiáng).基于手機(jī)LBS位置服務(wù)的社交網(wǎng)絡(luò)分析[J].寧波職業(yè)技術(shù)學(xué)院學(xué)報(bào),2016(20):92-96.
[2] 鄒燕飛,劉淑英.基于Struts的網(wǎng)上訂餐系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J].無線互聯(lián)科技,2016(9):43-44.
[3] 王婭.LBS位置服務(wù)在旅游服務(wù)中的應(yīng)用分析[J].江蘇科技信息,2017(4):63-64+78.
[4] 任星怡,宋美娜,宋俊德.基于用戶簽到行為的興趣點(diǎn)推薦[J].計(jì)算機(jī)學(xué)報(bào),2017(40):29-51.
[5] 周源,汪永強(qiáng),張慶全.基于安卓系統(tǒng)的位置服務(wù)終端軟件研發(fā)[J].測(cè)繪與空間地理信息,2014(37):88-91.
[6] 譚家龍.基于IOS電子地圖查詢系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J].無線互聯(lián)科技,2013(6):55-57.
[7] 董健.基于IOS的城市公交圖形查詢系統(tǒng)的設(shè)計(jì)[J].軟件工程,2016(10):44-46.
[8] 顧懷中.位置信息在智能交通中的應(yīng)用研究[J].信息通信技術(shù),2015(10):55-60.
[9] 秦建華,羅洪莉.基于位置服務(wù)中用戶隱私泄露與保護(hù)[J].計(jì)算機(jī)安全與維護(hù),2015(8):113-114.
[10] 張萍.JQuery AJAX & JSON在移動(dòng)APP中的應(yīng)用[J].中國戰(zhàn)略新興產(chǎn)業(yè),2016(12):41-45.
(責(zé)任編輯:何 麗)endprint