用户定位

User Location的作用
1. 获取用户的位置
2. 追踪用户的移动
USer Location的关键API
1. Location Manager: 用于管理Android的用户定位服务
2. Location Provider: 提供多种定位方式供开发者选择
定位方式的分类:
1 GPS 定位: 使用 GPS 定位,需要声明如下权限:
android.permission.ACCESS_FINE_LOCATION

2 NETWORK 定位:使用信号接收塔和Wi-Fi 接入点进行定位,需要声明如下权限:
android.permission.ACCESS_FINE_LOCATION(精确定位) 或android.permission.ACCESS_COARSE_LOCATION(粗略定位)

获取用户的当前位置开发流程:
1.  声明权限
2.  获取LocationManager对象
3.  选择LocationProvider对象
4.  绑定LocationListener对象

--------------------
获取最佳的Location Provider

定义: 最佳的Location Provider,它不是绝对的,是相对的,相对用户需求,比如我需要一个怎样的Location Provider,
你能提供给我这样的Location Provider,那就是最佳的。 并不是功能越强,精度越高,就是最佳的,精度高可能意味着耗电大呢


这里涉及到Criteria类(标准)
Criteria 可以设置一系列的查询条件,用于查找当前设备当中符合条件的Location Provider,该类有很多设置方法

setAccuracy(int accuracy)       设置精度     
setAltitudeRequired(boolean altitudeRequired)  设置是否需要测试高度
setBearingAccuracy(int accuracy)        设置方向的精度 
setBearingRequired(boolean bearingRequired) 设置是否需要方向的精度

setVerticalAccuracy(int accuracy)    设置垂直方向的精度,参数可以是以下之一:

Criteria.ACCURACY_HIGH,ACCURACY_LOW,ACCURACY_MEDIUM
setHorizontalAccuracy(int accuracy)  设置水平方向的精度,参数可以是以下之一:

Criteria.ACCURACY_HIGH,ACCURACY_LOW,ACCURACY_MEDIUM

setPowerRequirement(int level)      设置电量消耗级别
setSpeedAccuracy(int accuracy)       设置速度的精度
setSpeedRequired(boolean speedRequired)   设置是否需要速度 
setCostAllowed(boolean costAllowed)  设置是否产生费用

--------
1.寻找最佳的Location Provider

最佳的Provider 一定是有一些条件,比如符合某些条件
2.追踪用户的位置
------------------------

这是以下文字内容的示意图:


1.  GeoCoding介绍
GeoCoding 是Google 提供的一项服务,主要有两个方面:
(1) 查询某地址的经纬度
(2) 查询某经纬度的具体地址

如何使用Geocoding
第一步  创建一个GeoCoder对象
第二步  调用该对象的getFromLocation()或者是getFromLocationName()方法
然而结果很悲剧,LogCat 报一个错 Service  not Available

2.  Android当中的Geocoder

3.  Geocoder的替代方法
基于以上出现的问题,替代的方法就是采用基于Web的GeoCoding的使用
如: http://maps.googleapis.com/maps/api/geocode/json?address=SFO&sensor=false
GeoCoder 的替代品
常见的查询参数作用:
address 需要查询的地址
latlng  需要查询的经纬度
bounds  设定查询的边界
region  设定查询的国家代码
language 设定查询结果的语言
sensor  设定查询是否来源于一个设备的传感器(如: 手机)

总结一下:
1. Geocoder是个悲剧
2. 可以使用 GeoCoding 服务项目替代

具体代码请参考: LocationExam,LocationExam2,LocationExam3,LocationExam4四个工程

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值