android学习笔记之定位
来源:互联网 发布:医疗人工智能上市公司 编辑:程序博客网 时间:2024/06/06 16:02
User Location能做什么?
1、获取用户的位置
2、追踪用户的移动
User Location的关键API
1、 LocationManager:用于管理android的用户定位服务
2、 LocationProviders:提供多种定位方式供开发者选择(GPS, NETWORK定位等)
定位方式的分类
1、GPS定位:
使用GPS卫星进行定位,需要加权限android.permission.ACCESS_FINE_LOCATION
2、NETWORK定位
使用信号接收塔和WIFI介入点进行定位,需要加权限
android.permission.ACCESS_FINE_LOCATION(精确定位)或
android.permission.ACCESS_COARSE_LOCATION(粗糙定位)
获取用户的位置:
1、在AndroidManifest.xml当中声明相应权限
2、获取LocationManager对象
3、选择LocationProvider
4、绑定LocationListener对象
LocationManager locationManager = (LocationManager)MainActivity.this.getSystemService(Context.LOCATION_SERVICE);
locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 0, 0, newTestLocationListener());
private class TestLocationListener implements LocationListener{
@Override
public void onLocationChanged(Location location) {
// TODO Auto-generatedmethod stub
System.out.println(location.getLongitude());
System.out.println(location.getLatitude());
}
@Override
public void onProviderDisabled(String provider) {
}
@Override
public void onProviderEnabled(String provider) {
}
@Override
public void onStatusChanged(String provider, int status, Bundleextras) {
}
}
什么是Criteria?
Criteria可以设置一系列的查询条件,用于查找当前设备当中符合条件的Location Provider
setAccuracy(int accuracy):设置精度(ACCURACY_COARSE, ACCURACY_FINE)
setBearingAccuracy(int accuracy)设置方向的精度(ACCURACY_HIGH, ACCURACY_LOW,ACCURACY_MEDIUM)
setCostAllowed(Boolean costAllowed) 设置找到的Provider是否允许产生费用
setSpeedRequired(Boolean speedRequried) 设置是否需要提供速度
setAltitudeRequired(BooleanaltitudeRequired) 设置是否需要提供海拔信息
setBearingRequired(Boolean bearingRequired) 是否需要方向信息
setHorizontalAccuracy(int accuracy) 设置水平方向的精度(ACCURACY_HIGH,ACCURACY_LOW,ACCURACY_MEDIUM)
setSpeedAccuracy(int accuracy) 设置速度精度
setVerticalAccuracy(int accuracy) 设置垂直方向的精度(ACCURACY_HIGH, ACCURACY_LOW,ACCURACY_MEDIUM)
setPowerRequirement(int level) 设置耗电 NO_REQUIREMENT, POWER_LOW,POWER_HIGH, POWERMEDIUM
Criteria criteria = new Criteria();
criteria.setAccuracy(Criteria.ACCURACY_FINE);
criteria.setPowerRequirement(Criteria.POWER_LOW);
criteria.setAltitudeRequired(false);
criteria.setSpeedRequired(false);
criteria.setCostAllowed(false);
String provider = locationManager.getBestProvider(criteria,false);
System.out.println("best provider -->" +provider);
追踪用户
locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 5000, 5000,new TestLocationListener());
通过设置第二和第三个参数,第二个参数,这里表示每隔5000毫秒更新一次,第三个参数这里表示位置每次变动5000米更新一次
什么是Geocoding?
GeoCoding是google所提供的一项服务,主要有以下两个方面的功能:
1、查询某地址的经纬度
2、查询某经纬度的具体地址
如何使用GeoCoding
1、 添加库文件
2、 创建一个GeoCoder对象
3、 调用该对象的getFromLocation()或者是getFromLocationName()方法
GeoCoding有问题,调用的时候会提示出错service unavailable(不知什么原因),可用下面的代码代替
根据地址查经纬度
http://maps.googleapis.com/maps/api/geocode/xml?address=SFO&sensor=false
根据经纬度查询地址
http://maps.googleapis. com/maps/api/geocode/xml?latlng=40.714224,-73.961452&sensor=false
bounds的作用
region的作用
常见的查询参数作用
1、address需要查询的地址
2、latlng需要查询的经纬度
3、bounds设定查询的边界
4、region设定查询的国家代码
5、language设定查询结果的语言
6、sensor标示该请求是否来源于一个设备的传感器
- android学习笔记之定位
- android学习笔记之GPS定位
- CSS学习笔记之定位
- iOS学习笔记之-定位
- Android学习之 GPS定位
- Selenium学习笔记之010:层级定位
- CSS学习笔记之position定位
- Android学习笔记 - 定位篇 (Location)
- Android学习笔记 - 定位篇 (Location)
- Android GPS定位学习笔记一
- Android开发笔记之百度地图定位
- 《Android系统学习》之bug定位
- Android学习之百度定位SDK
- Android之学习笔记
- android定位之基站定位
- CSS学习笔记--定位
- CoreLocation定位学习笔记
- 学习笔记----定位
- Oracle的简单操作
- java 两list比较相同值
- android学习笔记之蓝牙
- mysql temporary table
- sql - XML查询
- android学习笔记之定位
- Red Hat 5.5中JDK的卸载和安装
- frame animation不可以直接写在oncreate方法中
- android学习笔记之GoogleMap
- C# JS汉字和Unicode编码互转
- 新公司的第一天,纪念一下,上传个导入sim联系人的方法
- 选择排序的实现——直接选择排序
- 雕刻时光 相约未来
- 二环、三环有哪些桥