百度地图SDK 已经定位到城市,但是用location.getCity()获取到的是NULL问题解决 – 梦想的天空 – 博客频道 – CSDN.NET

变量的声明:    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);
这样就可以了,不过有几秒钟的定位给时间,

分享到: 更多 (0)