用API技术实现移动位置服务

2012-01-11 03:41
通化师范学院学报 2012年4期
关键词:位置服务客户端定位

王 硕

(漳州职业技术学院 电子工程系,福建 漳州 363000)

随着市场的迅速发展,电信行业竞争日趋激烈,移动运营商被迫寻找新的途径去创造新的利润.在各种移动增值业务当中,移动位置信息服务是最具市场潜力的一种.但它对移动网络通信和空间信息技术需求越来越高,原有的开放GPS和整合式移动通信装置远远满足不了社会的需求,使得移动定位与信息系统GIS 的定位产品的加值服务也越来越多.传统GIS具备丰富的电子图资源及其强大的空间分析能力,但空间分析的实时性能力还不够;而手机通话无法让对方得知拨号者目前位置;由此,在市场和技术的双重驱动下,无线定位业务(LBS)技术随之发展起来.

无线定位业务 (Location-Based Ser-vices,LBS)又称为位置业务,是由移动通信网络和卫星定位系统结合在一起提供的一种增值业务,通过一组定位技术获得移动终端的位置信息(如经纬度坐标数据),提供给移动用户本人或他人以及通信系统,实现各种与位置相关的业务.LBS可让使用者透过移动设备(如手机、PDA 等)查询自己的空间位置,并通过实时所在位置连接到附近周围环境,从而取得地理信息以及根据实时需求所撷取到的生活信息等,更进一步解决使用者与此地域性的实时需求,其用途可是单纯的个人行为,也可是复杂的大型的急难救援或车队管理等.

本文提出了一种基于API架构的位置服务解决方案.API(Application Programming Interface)全称是应用程序编程接口,本文在此接口的基础上采用混合定位技术,实现移动的位置服务.这是一种专门为不同的应用之间的互相操作而设计的软件体系结构.可提供基于手机的定位接口以及基于桌面浏览器的Java Script接口.它在分布平台上可实现快速开发基于位置的业务,改善用户体验、增加业务粘性,投放更精准的基于位置的广告,增加收入等.且可通过手机客户端、浏览器、社交网站及多种桌面互联网等方面进行相应的应用.其主要采取了分段定价的策略.典型的应用模型如图1所示.

图1 分段定价模型

1 实现LBS应用的网络架构

1.1 LBS网络结构

在第三代移动通信系统中,实现LBS应用的网络模型如图2所示.从图中可以看出,实现LBS业务涉及到多个实体.

LBS网络构架的主要流程是:由定位操作平台(API)获取各个移动台的位置信息;通过中间件LCS向SP提供定位服务接口,同时访问运营商的定位资源GIS完成对LBS业务的计费、管理等功能;而GIS系统是基于LBS应用的地理信息服务的,主要包括路径搜索、目录查询和地图服务;SP则是为最终用户提供LBS服务的;CP在这里指的是能够提供电子地图数据和POI(兴趣点)信息的内容的供应商;最后终端采用与网络交互方式完成定位操作,而与网络交互方式是通过WAP/Java/BREW/SMS等方式与SP交互得到最终服务.对于矢量地图进行服务,终端通过内置矢量地图浏览器即可完成识别.

图2 实现LBS应用的网络架构

1.2 LBS系统结构

位置服务核心部分是LBS. 一个完整的 LBS系统是由四部分组成:空间定位系统、位置服务中心、移动终端以及通信网络.如图3所示.

图3 LBS系统工作流程

LBS 系统工作的主要流程是:首先由用户通过移动终端发出位置服务请求,通信的沿途各个网络节点接到该请求后,就被位置服务中心所接受;其次再经过严格的审核认证以后,服务中心调用定位系统,从而获得用户的位置信息,或者根据用户配有 GPS 等主动定位设备,可以通过无线网络主动将位置参数发送给服务中心;最后服务中心则根据用户的位置信息,对服务内容进行相应的回应,如发送路线图等,具体的服务内容由内容提供商供给.

2 API定位技术

目前,移动网络使用的定位技术多种多样.如网络定位,提供更高的定位精度,基站上增加相应的测量设备,代价较高;GPS技术(AGPS),主要依靠GPS卫星完成定位操作,移动台接收时至少需要4个GPS卫星的信号,并根据这些信息完成定位计算,并将计算结果报告给网络.对一般的GPS定位技术来说,需要GPS接收机在全空域范围内搜索可以使用的GPS卫星.通常这种搜索需要很长的时间,所以不能满足快速移动定位的需要.而移动台的GPS定位,位置的计算全部由终端自己完成,终端始终处于GPS跟踪状态,减少了与网络的交互时间. 可见这些定位技术都存在一定的弊端,本文介绍采用API混合定位技术就能很好的解决上述问题.

2.1 API两种类型

一种是Mobile API,负责为手机客户端提供基于基站的定位能力的应用程序,适合于移动互联网,其支持Windows Mobile 和J2ME 平台.另一种是JavaScript API,主要为用户提供安装IE插件,当用户使用Wifi上网时,IE插件将和定位服务配合,完成定位服务.适合基于桌面浏览器的应用或服务.本文主要介绍Mobile API.

2.2 定位协议

API混合定位技术接口,采用HTTP POST方式,其中HTTP Body以xml格式存放.上行定位请求格式以xml报文形式传输,下行定位响应格式以xml报文传输.

2.3 API地图

本文主要介绍Google Map API地图.Google Map API地图有Google JavaScript和Flash版两个版本.其中前一个地图API:内嵌iFram e展现形式,适用于一般的互联网应用系统,具有标准主流浏览器装载的客户端系统.后一个以FLASH展现形式,使用Flex开发,适用于标准浏览器装载的客户端系统.除了上述两种动态API地图外,还有一种常见的Google 静态地图API,其中以图片形式展现,使用HTTP接口进行图片地图的创建,所实现功能较前两种少,但无需使用Java脚本实现,适用于手机或定制化客户端系统的服务调用.静态地图和前两种地图相比还要求遵从每位查看者每天的唯一(不同)图像请求不超过1000 次的查询限制配额,也就是说每个访问者每天可以查看1000个不同的地图图片,对于相同的图片没有限制.考虑到一般系统的访问量,此配合即可满足大部分系统的要求.

2.4 API功能

从地址名称解析到具体经纬度即地址解析,可设置缩放级别高低,图像大小,还可添加标记,显示地图路径等,以上是动态和静态地图所共有的,而监听事件,地图控件,街道全景,交通功能等为动态地图特有的功能.

3 系统方案设计与实现

系统设计流程以应用服务器为第三方,为前端应用提供各种业务服务.需要定位时,客户端通过定位端口API获取定位依据信息,这是一组加密的数据信息,接着由其向应用服务器提交该组加密数据.应用服务器再将其通过简单的HTTP接口提交给定位服务器,定位服务器根据定位依据返回定位结果,包括当前的位置及其误差评估.应用服务器根据自己的业务逻辑对定位结果进行处理后返回给客户端.具体流程如图4所示.

API负责采集定位依据,客户端调用在各平台上实现定位功能,然后按照各方协议给定的格式封装好返回给调用者,调用者将该定位依据上报应用服务器, 由其向定位服务器请求解析当前的位置.当发现位置可能变化时API会通知调用者, API提供了异步回调和同步返回两种方式供调用者获取定位依据.使用前,调用者需对API进行初始化,设定回调的最大最小时间间隔、位置变化的灵敏度等.

图4 系统设计流程

下面是采用API进行LBS移动位置服务部分程序.

API只提供包装好的定位依据,并利用第三方应用程序使用该定位依据向定位服务器请求当前的位置;

(1)回调函数

typedef void (*LOCATIONCALLBACK)(

int nErrCode,

unsigned char* buffer;

int nLen,

void *pUserData

);

(2)定义CLocationAPI类型及成员变量

第三方应用可以通过异步回调或同步获取的方式使用定位API;

class CuseLocation

{

CLocationAPI m_locationAPI;

}

(3)设置属性,包括灵敏度和时间间隔

①定位API可以设置敏感度, 以便第三方应用判断变化以及防抖.

②定位API可以设置时间间隔,时间间隔太小,可忽略不计,若太大,则调回函数.

根据应用设定的敏感度及时间间隔, 定位API可设置一个异步回调的最小时间间隔及一个最大时间间隔(以秒计),且这个时间间隔要适度.

③设置获取gps端口号,默认为com1 ,GPS有默认的刷新频率,定位API自行检查GPS设备,如果开启则需要进行数据采集,在第三方应用程序请求定位依据时一并送上.

④设置获取gps波特率,默认为4800.

m_locationAPI.SetSensitivity( eSensitivityHigh );

m_locationAPI.SetNotifyInterval( 300, 600 );

m_locationAPI.SetGpsPort(1);

m_locationAPI.SetGpsBaud(4800);

(4)添加回调函数及其参数

m_locationAPI.AddLocationCallback( TestCallBack, this );

(5)启动采集定位数据

定位API开始采集定位依据,发生匹配敏感度设置及时间间隔的数据变化后即通知应用.

m_locationAPI.Start();

(6)回调函数中处理数据

void TestCallBack(int nErrCode, unsigned char* buffer, int nLen, void* pUserData);

{

CUseLocation* pUseLocation = (CUseLocation*)pUserData;

switch(nErrCode)

{

case ERROR_LOCATION_OK:

break;

case ERROR_LOCATION_GSM:

break;

case ERROR_LOCATION_WIFI:

break;

case ERROR_LOCATION_GPS:

break;

default:

break;

}

}

(7)定位结束

m_locationAPI.Stop();

4 结论

LBS正在成为一种被企业和用户广泛接受的一种业务,今后,采用API技术的 LBS 必将以其便捷和丰富的功能进入人们的生活,为人们带来巨大的便利.而API的开放标准特性允许第三方获得授权访问和开发基于电信网络的第三方应用.使API的LBS业务研究具有一定的价值.在这种情况下,位置服务系统将成为面向超大规模用户群的公众定位服务接入平台.使得容纳大用户并发访问的网络结构和地图在无线网络上的传播方式成为当前研究的热点问题.本文正是利用API技术,实现了一个开放的 LBS 系统,结果证明这是一种可行的方案,并且具有一系列的优点:采用API技术有利于跨系统跨平台的大规模的信息交换; 覆盖范围高达本地网、部分本地网和提供漫游网等,加强了网络间的沟通;计算量小;定位精度高;对网络数据传输能力强.再采用java语言能够兼容多种用户终端,并充分利用了其组件化设计的特性,提高了系统的可复用性和可扩展性.

参考文献:

[1]Shuichi Takino.“GIS ON THE FLY” - to realize wireless GIS network by java mobile phone[C]. International symposium on Asia GIS ,2001

[2]房志刚,万晓榆,樊自甫.基于Parlay开放API的LBS业务研究[J].重庆邮电大学学报,2007,9(1):23-26.

[3]朱建伟.位置信息服务系统中定位服务平台相关技术的研究[D].武汉:武汉大学,2005,6:45-46.

[4]刘江涛.移动位置信息服务平台的研究与实现[D].西安:西北工业大学,2007,5:86-89.

[5]李余琨,杨平,朱燊权.支持开放的API接口的增强型业务[J].计算机工程与应用, 2004,4(10):63-68.

猜你喜欢
位置服务客户端定位
定位的奥秘
《导航定位与授时》征稿简则
星站差分与PPP技术在深远海调查中的位置服务精度分析
Smartrail4.0定位和控制
如何看待传统媒体新闻客户端的“断舍离”?
县级台在突发事件报道中如何应用手机客户端
孵化垂直频道:新闻客户端新策略
大枢纽 云平台 客户端——中央人民广播电台的探索之路
找准定位 砥砺前行
互联互通 畅享未来 第12届卫星导航与位置服务运营商大会在深圳举行