2。2  GPS服务

基于位置的服务简称LBS,这个技术随着移动互联网的兴起,在最近的几年里十分火爆,主要的工作原理就是利用无线电通讯网络或者GPS等定位方式来确定出移动设备所在的位置。而第一步就是确定自己的位置,在Android中并不困难,主要借助LocationManager类就可以实现了。首先获取到LocationManager的实例,可以通过调用Context。getSystemService(Context。LOCATION_SERVICE)方法得到。随后需要选择一个位置提供器来确定设备当前的位置。Android中一般有三种位置提供器可供选择,分别是GPS_PROVIDER、NETWORK_PROVIDER和PASSIVE_PROVIDER,前两种用的比较多,即使用GPS定位和使用网络定位。这两种方式各有千秋,GPS定位的精确度比较高,但是非常耗电而且速度较慢,而网络定位的精确度较差,但耗电量不多。用户可以在手机设置里根据自己的实际情况来选择使用哪一种位置提供器,在代码中也支持了选择各种位置提供器,在位置精度要求非常高的时候选择GPS_PROVIDER,而在一般情况下使用NETWORK_PROVIDER更好。随后将选择好的位置提供器传入到getLastKnownLocation()方法中即可得到一个Location对象,这个Location对象包含了经度、纬度、海拔等一系列位置信息,只需调用其中想要的信息就行了。调用Location对象中的相应方法获得经纬度,再调用地理反向编码的API即可获得位置信息。

2。2。1  谷歌地理反向编码

关于反向编码,谷歌的Geocoding API更适合功能的实现,参考了官方文档之后了解了工作原理,即在手机端向谷歌的服务器发起一条HTTP请求,并将经纬度的值作为参数一同传递过去,然后服务器会将这个经纬值转换成地理信息,再将信息返回给手机端,随后解析服务器返回的信息再进行处理。拼接好要发送的URL之后将经纬度发送过去,随后会收到一个JSON格式或XML格式的数据,系统此处选择了JSON格式,因为相比于XML格式JSON格式体积较小,在网络上进行传输的时候更省流量,减轻服务器端的负担。但缺点在于语义性较差,看起来不如XML直观。这里更看重流量的控制。在收到JSON格式的信息之后对其进行解析,有很多种方法,可以使用官方提供的JSONObject,也可以使用谷歌的开源库GSON,还有一些第三方的开源库如Jackson、FastJSON等。收到JSON信息之后将服务器返回的数据传入到一个JSONArray对象之中,然后循环便利这个JSONArray,从中提取出的每一个元素都是一个JSONObject对象,每个JSONObject对象又会包含一些特定的数据,之后调用getString()方法将数据取出即可。来:自[优.尔]论,文-网www.youerw.com +QQ752018766-

2。2。2  百度地理反向编码

参考百度的官方文档之后发现跟谷歌的API差别不大,在发起HTTP请求处拼接URL时需要添加一个百度地图SDK的KEY作为其中一部分,此处的KEY要选择服务端的KEY不能选择移动端的KEY。申请好KEY之后和谷歌并无二样。但是返回回来的JSON出现了不能转换为JSONObject的情况,只好对返回的JSON做了字符串截取处理,将其中有用的信息给提取了出来并通过Handler将信息发送给了主线程,在主线程内对UI进行操作,即将位置信息显示出来。相比谷歌,百度的定位不是很精准。

上一篇:Postgres-xc亚信分布式数据库自动化部署工具的设计与实现
下一篇:分布式爬虫服务器的设计与实现

电子政务环境下公务员的...

搭建Linux桌面环境的影音平台【1261字】

嵌入式移动数据库研究【2530字】

嵌入式移动数据库應用研究【2321字】

windowsnt环境下fddi网卡驱动...

网络課程學习支撑环境的设计【2842字】

移动Ad Hoc网络发展的历史理论和技术

网络语言“XX体”研究

老年2型糖尿病患者运动疗...

我国风险投资的发展现状问题及对策分析

张洁小说《无字》中的女性意识

互联网教育”变革路径研究进展【7972字】

ASP.net+sqlserver企业设备管理系统设计与开发

LiMn1-xFexPO4正极材料合成及充放电性能研究

安康汉江网讯

麦秸秆还田和沼液灌溉对...

新課改下小學语文洧效阅...