Android 百度地图API问题

用Android编写一个百度地图的应用,用到定位功能,,在LogCat中已经看到定位成功而且返回的坐标及位置也是准确无误的可是在主界面看到的还是北京的地图这是怎么回事?下... 用Android编写一个百度地图的应用,用到定位功能,,在LogCat中已经看到定位成功 而且返回的坐标及位置也是准确无误的 可是在主界面看到的还是北京的地图 这是怎么回事?

下面是重写的BDLocationListener的代码,大神给我看看不是我哪里少写了。
public BDLocationListener myListener = new BDLocationListener() {

@Override
public void onReceiveLocation(BDLocation location) {
// Receive Location
if (location == null) {
return;
}

MyLocationData locData = new MyLocationData.Builder().accuracy(location.getRadius())
.direction(location.getDirection()).latitude(location.getLatitude())
.longitude(location.getLongitude()).build();
baiduMap.setMyLocationData(locData);
mMapView.postInvalidate();

StringBuffer sb = new StringBuffer(256);
sb.append("time : ");
sb.append(location.getTime());
sb.append("\nerror code : ");
sb.append(location.getLocType());
sb.append("\nlatitude : ");
sb.append(location.getLatitude());
sb.append("\nlontitude : ");
sb.append(location.getLongitude());
sb.append("\nradius : ");
sb.append(location.getRadius());
if (location.getLocType() == BDLocation.TypeGpsLocation) {// GPS定位结果
sb.append("\nspeed : ");
sb.append(location.getSpeed());// 单位:公里每小时
sb.append("\nsatellite : ");
sb.append(location.getSatelliteNumber());
sb.append("\nheight : ");
sb.append(location.getAltitude());// 单位:米
sb.append("\ndirection : ");
sb.append(location.getDirection());// 单位度
sb.append("\naddr : ");
sb.append(location.getAddrStr());
sb.append("\ndescribe : ");
sb.append("gps定位成功");

} else if (location.getLocType() == BDLocation.TypeNetWorkLocation) {// 网络定位结果
sb.append("\naddr : ");
sb.append(location.getAddrStr());
// 运营商信息
sb.append("\noperationers : ");
sb.append(location.getOperators());
sb.append("\ndescribe : ");
sb.append("网络定位成功");
}
sb.append("\nlocationdescribe : ");
sb.append(location.getLocationDescribe());// 位置语义化信息
List<Poi> list = location.getPoiList();// POI数据
if (list != null) {
sb.append("\npoilist size = : ");
sb.append(list.size());
for (Poi p : list) {
sb.append("\npoi= : ");
sb.append(p.getId() + " " + p.getName() + " " + p.getRank());
}
}
Log.i("BaiduLocationApiDem", sb.toString());
}

};
展开
 我来答
锺芮0G30d3
2016-06-13 · TA获得超过628个赞
知道小有建树答主
回答量:124
采纳率:0%
帮助的人:160万
展开全部

首先你要开启定位图层
mBaiduMap.setMyLocationEnabled(true);


定位成功后设置定位数据
mBaiduMap.setMyLocationData(locData);


然后移动地图中心点

centerToLocation(location, 250);

protected void centerToLocation(BDLocation location, int duration) {
    LatLng cenpt = new LatLng(location.getLatitude(),location.getLongitude());
    //定义地图状态,地图缩放级别 3~19
    MapStatus newMapStatus = new MapStatus.Builder().target(cenpt).zoom(16).build();
    //定义MapStatusUpdate对象,以便描述地图状态将要发生的变化
    MapStatusUpdate mMapStatusUpdate = MapStatusUpdateFactory.newMapStatus(newMapStatus);
    //改变地图状态
    mBaiduMap.animateMapStatus(mMapStatusUpdate, duration);
}
追问
谢谢  已经解决了
浙江启扬智能科技有限公司
2023-06-12 广告
Android和ARM、Linux之间存在密切的联系。Android是一种基于Linux内核的嵌入式智能操作系统,它采用了ARM处理器作为其主要处理器架构。Android的内核和许多应用程序都是基于ARM架构编写的,包括处理器和内存管理器。... 点击进入详情页
本回答由浙江启扬智能科技有限公司提供
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式