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