昨天更换了百度地图最新的API,改动挺大的,下面把用到的地方记录下来
1.为mapview添加marker,并且为marker添加监听器
mBaiduMap = mMapView.getMap(); //获取Map对象
mBaiduMap.setOnMarkerClickListener(new OnMarkerClickListener() {
//为Map中的marker设置监听
@Override
public boolean onMarkerClick(Marker marker) {
// TODO Auto-generated method stub
showPopupOverlay(marker.getExtraInfo().getInt("index")); //添加自定义view
return false;
}
});
int mark= MarkerList.get(i);
MarkerOptions option = new MarkerOptions().position(p).icon(BitmapDescriptorFactory.fromResource(mark));
Bundle bundle = new Bundle();
bundle.putInt("index", i);
option.extraInfo(bundle);
mBaiduMap.addOverlay(option);//为map添加marker,注意这里添加的时候都是添加的options对象,options里面可以放入bundle传值
2.为map设置参数
mBaiduMap.setMapStatus(MapStatusUpdateFactory.newLatLngZoom(g, 13)); //通过<span style="font-family: Arial, Helvetica, sans-serif;">MapStatusUpdateFactory设置地图的中心点以及缩放等参数</span>
3.为map添加一个自定义view
mMapView.addView(convertView,
new MapViewLayoutParams.Builder().height(MapViewLayoutParams.WRAP_CONTENT).
width(MapViewLayoutParams.WRAP_CONTENT).position(LatLng).
layoutMode(MapViewLayoutParams.ELayoutMode.mapMode).build()); //添加view的宽高以及位置都是通过MapViewLayoutParams.Builder()来设置
后记:
此版本的sdk某些手机没法验证key,错误日志如下
01-08 08:19:45.540: E/baidumapsdk(19154): Authentication Error errorcode: -1 uid: -1 appid -1 msg: Exception:com.android.org.bouncycastle.jce.exception.ExtCertPathValidatorException: Could not validate certificate: current time: Sun Jan 08 08:19:45 GMT+0800 2012, validation time: Tue Sep 03 08:00:00 GMT+0800 2013
建议大家暂时不要使用最新的sdk,无奈,我还是换回原来的sdk吧