我的定位监听是这样的试过好几次,返回值都是空
editSt是我记录起始位置的edittext
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());
MapStatus.Builder builder = new MapStatus.Builder();
builder.target(ll).zoom(18.0f);
mBaidumap.animateMapStatus(MapStatusUpdateFactory.newMapStatus(builder.build()));
editSt.setText(location.getAddrStr());
Toast.makeText(CustomerMenu.this, location.getAddrStr(), Toast.LENGTH_LONG).show();
}
}
public void onReceivePoi(BDLocation poiLocation) {
}
}
后来才知道要在地图sdk的配置语句中加入一句option.setIsNeedAddress(true);
以下是配置语句:
option.setOpenGps(true); // 打开gps
option.setCoorType("bd09ll"); // 设置坐标类型
option.setScanSpan(1000);
option.setIsNeedAddress(true);//如果没有则不会显示定位位置
mLocClient.setLocOption(option);
mLocClient.start();