弄了好一阵百度定位,始终只返回经度和纬度,找了半天,原来忘设置option.setAddrType("all")
百度定位代码:
mLocationClient = new LocationClient(getContext());
LocationClientOption option = new LocationClientOption();
option.setOpenGps(true); // 打开gps
option.setCoorType("bd09ll"); // 设置坐标类型,总共有几个类型具体的可以查看百度文档说明
option.setScanSpan(20000); // 设置定位间隔时间
option.setAddrType("all"); // 设置返回类型,all = 表示返回所有的数据
option.setPriority(LocationClientOption.NetWorkFirst);
mLocationClient.setLocOption(option);
mLocationClient.registerLocationListener(new BDLocationListener() {
@Override
public void onReceivePoi(BDLocation arg0) {
}
@Override
public void onReceiveLocation(BDLocation location) {
if(location == null)
return;
Log.i(TAG, "定位当前位置成功!");
String city = location.getCity();
System.out.println("0" + location.getStreet());
System.out.println("1" + location.getStreetNumber());
System.out.println("2" + location.getAddrStr());
System.out.println("3" + location.getAltitude());
System.out.println("4" + location.getCity());
System.out.println("5" + location.getCityCode());
System.out.println("6" + location.getCoorType());
System.out.println("7" + location.getDerect());
System.out.println("8" + location.getDistrict());
System.out.println("9" + location.getProvince());
System.out.println("10" + location.getSatelliteNumber());
System.out.println("11" + location.getSpeed());
String ownerLocation = location.getAddrStr();
String ownerLatitude = String.valueOf(location.getLatitude());
String ownerLongtitude = String.valueOf(location.getLongitude());
}
});
mLocationClient.requestLocation();
mLocationClient.start();
当Activity暂停运行时,需要在onPause()函数中关闭定位:
if(!mLocationClient.isStarted())
mLocationClient.start();
当Activity重新运行时,需要在onResume()函数中重新开启定位:
if(mLocationClient.isStarted())
mLocationClient.stop();
程序退出时,同样需要关闭定位。