1.基于位置的服务简称LBS,工作原理是利用无线电通讯网络或GPS等定位方式来确定出移动设备所在的位置。
2.选择一个位置提供器来确定设备当前的位置。Android中三种位置提供器,GPS_PROVIDER, NETWORK_PROVIDER
和PASSIVE_PROVIDER。
3.GPS定位:精准度比较高,但是非常耗电;网络定位:精准度稍差,但耗电量较少。对位置精度要求非常高时,使用
GPS_PROVIDER,一般情况,使用NETWORK_PROVIDER更加划算。
4.将选择好的位置提供器传入到getLastKnownLocation()方法中,可以得到一个Location对象,如下:
String provider = LocationManager.NETWORK_PROVIDER;
Location location = locationManager.getLastKnownLocation(provider);
设备位置改变时,为了获取到最新的位置信息,LocationManager提供了一个requestLocationUpdates()方法,只要传入
一个LocationListener实例,简单配置几个参数就可以。
locationManager.requestLocationUpdates((LocationManager.GPS_PROVIDER, 5000, 10, new LocationListener() {
@Override
public void onStatusChanged(String provider, int status, Bundle extras) {
}
@Override
public void onProviderEnabled(String provider) {
}
@Override
public void onProviderDisabled(String provider) {
}
@Override
public void onLocationChanged(Location location) {
}
});
5.requestLocationUpdates()方法接收四个参数,第一个是位置提供器的类型;第二个是监听位置变化的时间间隔,以毫秒为单位;
第三个是监听位置变化的距离时间,以米为单位;第四个是LocationListener监听器。如此,LocationManager每隔5秒钟会检测下
位置的变化情况,当移动距离超过10米的时候,会调用LocationListener的onLocationChanged()方法,并把新的位置信息作为参数
传入。
6.关于反向地理编码:Geocoding API的工作原理,即在手机端向谷歌的服务器发起一条HTTP请求,并将经纬度的值作为参数一同
传递过去,然后服务器会将这个经纬值转换成看懂的位置信息,再将这些信息返回给手机端,最后手机端去解析服务器返回的信息,
进行处理。