一种基于LBS的多用户位置共享方法MULS

2018-01-09 13:36龚宁静冷静
软件导刊 2017年12期
关键词:位置服务多用户

龚宁静+冷静

摘要:为了弥补市场上多数基于LBS的应用缺乏用户间位置交互的缺陷,提出多用户位置共享方法MULS。从异地点餐、集体出行等应用入手说明该方法能提供用户间的位置交互,并完善应用的位置服务功能,通过介绍MULS的原理说明该方法的可行性,在iOS操作系统上,从位置获取、共享策略、数据交换与总体框架几个层面逐步实现该方法。该方法能有效提供用户间的位置共享,让团队用户间多人实时位置、团队集合进度、未归队队员位置查询及定位功能的实现变成可能,让LBS应用给人们生活带来更大的便利。

关键词:位置共享;多用户;位置服务;网络社交

DOIDOI:10.11907/rjdk.172312

中图分类号:TP319

文献标识码: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 引言

随着智能移动设备与移动互联网市场的全面铺开,基于LBS的应用也越来越广泛。LBS逐渐渗透到人们休闲娱乐、生活服务及社交的方方面面[1,2]。大家所熟悉的移动端应用“高德”、“饿了么”及“驴友”都基于LBS支持。“饿了么”外卖点餐应用结合用户的位置信息为用户合理推荐外卖送餐距离允许范围内的餐饮店铺;“高德”地图应用根据用户位置信息及用户标记的目的地,帮助用户规划合理出行路线;“驴友”旅游应用参考用户位置所在城市给用户推荐特价机票和优惠旅游项目。这些应用有了LBS的支持,能够在提供原有服务的同时为用户提供位置服务,并在位置服务的基础上让原有服务变得更有效率。类似以上基于LBS的应用正越来越多地出现在人们的视野中。

用户在网络社交中借助这些应用让生活变得便捷时也常常遇到麻烦。“高德”地图能为单人出行提供全方位周到服务,但多人出行場合下无法实现多位置跟踪及数据统计。“饿了么”餐饮推荐基于用户位置(送餐地点)及送餐允许距离,但送餐地点不能设置为从互联网迁移来的位置信息,此应用无法实现异地点餐推荐(如出差的子女为家中老人点餐)。包括“驴友”在内的许多旅游应用虽可以通过定位帮用户准确找到景点,但在许多偏远景区缺少POI标记的情况下反而容易误导游客迷路,更不能在游客迷路或意外受伤时为导游或急救人员准确定位游客位置。针对这些问题,本文提出一种基于LBS的多用户位置共享方法MULS。使用这种方法能够在上述场合帮助用户迅速解决问题。

LBS即Location Based Serivice,指通过移动通信网络(蜂窝站点)外部定位方式(GPS)或无线局域网(WIFI),在地理信息系统平台的支持下为用户提供相应服务[3]。LBS也称作位置服务,基于LBS的应用常常会引入POI(POI即兴趣点/热点,Point of Interest)[4]。通过将用户当前位置信息与POI进行关联,能为用户提供精确定位、出行导航及兴趣推荐等服务。

MULS是指在多个用户间将他们移动端的当前位置进行共享。让用户不仅可以在个人移动端查询到自身当前位置,还能查询到他人当前位置及移动轨迹,以此解决多人出行时相互位置难以确定的难题。在朋友碰面、多人聚会、商务洽谈、导游带队等多人同行场合下,实现团队用户间多人实时位置、团队集合进度、未归队队员位置等的查询及定位。本文提出的MULS与某些现有应用中单独显示他人位置文本信息或仅使用地理围栏[4]计算用户附近其他用户距离的位置共享不同。MULS能实现多用户间的位置主动分享、地图多用户位置标记和轨迹记录、多位置点数据统计等功能。

1 MULS原理

多用户位置共享以LBS为基础。如果要在两个用户A与B间共享位置,则用户A与B必须先分别通过移动端获取自身当前位置,然后用户A对用户B进行分享当前位置的设置。这样用户A移动端将A的位置及要分享目标发送给服务器,服务器再将用户A的位置转发给用户B移动端,共享用户A的位置。这时用户B的移动端可以同时看到用户A与B两个位置信息。因此当用户数为n时,通过同样的途径,一个用户的移动终端上最多可以看到除自己以外的n-1个他人位置信息。其详细的UML活动见图1。endprint

多人位置共享使得一个移动终端有可能获取到多个移动终端的位置信息。当两人相约碰面时,通过位置信息共享移动终端可以实时反馈两人所在位置、他们之间的距离和各自移动方向。用户凭借这些实时反馈能在最快时间内碰面。

在异地点餐情况(如a城市的用户A要给b城市的用户B点餐)中,用户B移动端只要设置分享位置给用户A即可。这时用户A能获取从服务器转发来的用户B位置,并将B的位置设置成送餐地点。这样,外卖点餐应用会根据B的位置和送餐距离参数重新构建地理围栏,结合POI给出可选的外卖商铺推荐。

在集体出行例子中,如果一个旅行团的所有游客都与导游(假设一人)共享他们的位置,那么就算在荒野地区,迷路的游客也可以将共享到自己移动端上导游的位置作为航标来脱困。如果游客意外受伤不能移动,导游也可以通过受伤游客共享过来的位置迅速找到他。旅行团到达某个景点,游客自由行动,导游通过移动端上所有游客的位置信息可以随时了解团队的集散情况,在需要集合时,导游也能实时了解未归队队员的归来进度。

因此,基于LBS的多用户位置共享方法MULS能有效解决现有位置服务应用中的各类问题。

2 MULS的实现

MULS可以被运用于任何移动应用中[5-6]。目前移动端操作系统多以iOS和Android为主。本文介绍在iOS系统下MULS的实现方法。

多用户共享以LBS为前提,MULS的实现总体包括4个方面:①用户自身位置信息获取;②建立地图视图对位置进行标记和显示;③共享对象设置及共享;④共享数据转发及实现的总体框架。MULS的实现方法将根据这4点进行详细介绍并给出部分主要代码。

2.1 用户自身位置信息获取

要想获取用户的当前位置信息需要完成两个步骤。首先,通过定位获取当前用户的地理位置,也叫GPS Coordinate——地理坐标。这个坐标有两个参数:一个经度,一个纬度,但经纬度不足以让用户充分理解。第二步,将GPS Coordinate通过反地理编码,把经纬度转换为对应的具体地址。这就是用户能够理解的当前位置信息了,根据需要可以包括以下几方面的文本内容:国家、省、市、街道等。

2.2 用户当前位置的地图标记

获取用户的当前位置信息后,可以以文本形式显示出来,但这并不是最形象的表示办法。通常,人们会结合地图来标识当前位置。也就是说系统获取用户当前位置坐标后,一方面要通过反向查询得到位置的详细文本信息,另一方面还要将地理坐标标记到地图上并显示给用户。通过地图标记显示并结合文字信息共同描述用户的当前位置。

2.3 设置共享及实现共享

完成用户当前位置获取及显示后,用户可通过移动端实时查询自己的当前位置,这是实现MULS的前提。因用户位置信息属敏感个人隐私[9],不能随意泄露,因此要为用户的位置共享提供一个可自主操作的开关,并有指向地对某个或多个其他用户进行共享操作设置。用好友列表加开关的方式可实现共享的设置操作。

采用用户ID唯一标识任意用户。通过添加其他用户ID到自己的好友列表中,用户可将其他用户添加为好友。好友列表中每一栏是一个ID用户,并显示为带头像的昵称,旁边设有可开关共享的操作按钮。此按钮的开关决定本机用户对该ID用户是否开启或关闭位置共享。

当用户更改共享设置后会提示保存。一旦保存,则共享设置会上传到服务器。服务器端将该用户需要共享的好友ID全部存放在一個字段中。此字段为空时,服务器不会转发用户位置。当字段不为空,服务器读取字段内容并解析出所有好友ID。一旦用户端当前位置发生改变,服务器将转发用户当前位置到解析出需要分享位置的每个在线好友移动终端。

接收他人共享位置的用户,可以通过好友列表查看哪些好友给自己分享了位置,并可针对单个好友设置显示或屏蔽好友位置。由于之前已完成了地图显示及标记位置的功能,因此一旦有好友将位置分享给用户,用户地图视图会刷新并增加该好友位置标记,显示好友昵称及位置文本信息。通过地图视图上自己及好友的位置标记,用户可清晰了解对方和自己的位置及距离。由于地图会随时更新,当好友和用户位置发生改变时,用户还能从地图视图上看到双方的行进方向,并可设置保存移动轨迹。

2.4 数据交换及总体框架

要在多用户间进行位置信息共享,需借助服务器进行转发。可通过JSON格式数据流[10](JavaScript Object Notation)实现服务器端与用户移动端应用之间的数据交换。数据交换总体框架见图2。

总体框架中客户端是iOS上的应用,服务器端使用J2EE的servlet技术。客户端通过MULS使用HTTP协议发送已序列化的JSON位置共享数据流给服务器;服务器对接收的JSON数据流进行反序列化解析,得到多个完整的真实数据并存储到数据库;然后根据服务器端servlet中对位置共享的处理逻辑加工数据,并再次将这些数据序列转化成JSON数据流转发给共享目标好友。好友的客户端应用接收到JSON数据流后,将它反序列化解析出用户ID和昵称及该用户位置,并通过地图视图进行标记和显示。

3 结语

基于LBS的多用户位置共享方法MULS通过在多个用户间共享他们移动端的当前位置信息,将移动终端的位置通过互联网迁移到其它移动终端。此方法使一个移动终端通过地图可同时查看和处理多人位置信息,使网络社交中的朋友碰面、多人聚会、商务洽谈、导游带队等多人同行变得更加便利,实现团队用户间多人实时位置、团队集合进度、未归队队员位置等的查询及定位。这种方法不一定适用于所有应用,但对解决该类型问题提供了很好的思路。再者,用户位置信息属个人隐私,应加以保护,采用有效的位置隐私保护技术能使MULS方法变得更加完善。

参考文献:

[1] 马强.基于手机LBS位置服务的社交网络分析[J].宁波职业技术学院学报,2016(20):92-96.

[2] 邹燕飞,刘淑英.基于Struts的网上订餐系统的设计与实现[J].无线互联科技,2016(9):43-44.

[3] 王娅.LBS位置服务在旅游服务中的应用分析[J].江苏科技信息,2017(4):63-64+78.

[4] 任星怡,宋美娜,宋俊德.基于用户签到行为的兴趣点推荐[J].计算机学报,2017(40):29-51.

[5] 周源,汪永强,张庆全.基于安卓系统的位置服务终端软件研发[J].测绘与空间地理信息,2014(37):88-91.

[6] 谭家龙.基于IOS电子地图查询系统的设计与实现[J].无线互联科技,2013(6):55-57.

[7] 董健.基于IOS的城市公交图形查询系统的设计[J].软件工程,2016(10):44-46.

[8] 顾怀中.位置信息在智能交通中的应用研究[J].信息通信技术,2015(10):55-60.

[9] 秦建华,罗洪莉.基于位置服务中用户隐私泄露与保护[J].计算机安全与维护,2015(8):113-114.

[10] 张萍.JQuery AJAX & JSON在移动APP中的应用[J].中国战略新兴产业,2016(12):41-45.

(责任编辑:何 丽)endprint

猜你喜欢
位置服务多用户
安泰科多用户报告订阅单
安泰科多用户报告订阅单
安泰科多用户报告订阅单
星站差分与PPP技术在深远海调查中的位置服务精度分析
安泰科多用户报告订阅单
互联互通 畅享未来 第12届卫星导航与位置服务运营商大会在深圳举行
第六届中国卫星导航与位置服务年会暨首届卫星应用国际博览会
头跟踪式多用户全分辨率自由立体显示器
中位协二十周年庆典暨第四届中国卫星导航与位置服务年会将在北京举行
基于干扰抵消的MIMO-OFDM系统多用户检测算法实现