变量的声明: String city = null; //当前所在的城市 String addr = null; //当前所在地点在MyLocationListenner implements BDLocationListener 类中获取城市名:public class MyLocationListenner implements BDLocationListene
来源: 百度地图SDK 已经定位到城市,但是用location.getCity()获取到的是NULL问题解决 – 梦想的天空 – 博客频道 – CSDN.NET
变量的声明:
String city = null; //当前所在的城市
String addr = null; //当前所在地点
在MyLocationListenner implements BDLocationListener 类中获取城市名:
public class MyLocationListenner implements BDLocationListener { @Override public void onReceiveLocation(BDLocation location) { // map view 销毁后不在处理新接收的位置 if (location == null || mMapView == null) return; MyLocationData locData = new MyLocationData.Builder() .accuracy(location.getRadius()) // 此处设置开发者获取到的方向信息,顺时针0-360 .direction(100).latitude(location.getLatitude()) .longitude(location.getLongitude()).build(); mBaiduMap.setMyLocationData(locData); if (isFirstLoc) { isFirstLoc = false; LatLng ll = new LatLng(location.getLatitude(), location.getLongitude()); MapStatusUpdate u = MapStatusUpdateFactory.newLatLng(ll); mBaiduMap.animateMapStatus(u); } try { city=location.getCity(); addr=location.getAddrStr(); Toast.makeText(baidu_map.this, city+addr, 1).show(); //吐司出来的是NULL?? } catch (Exception e) { int err = location.getLocType(); Toast.makeText(baidu_map.this, err, 1).show(); } }
如红色部分,这样一直无法获取到地址信息,提示为NULL,
需要在红色部分上面加入:
LocationClientOption option = new LocationClientOption();
option.setIsNeedAddress(true);
mLocClient.setLocOption(option);
这样就可以了,不过有几秒钟的定位给时间,