前几天又下载了新的百度地图sdk,3.5版本号。发现百度地图api有了较大变化
定位和3.0版本号差点儿相同
可是设置地图中心和加入maker标记有较大变化
设置地图中心点
// 定义地图状态zoom表示缩放级别3-18
MapStatus mMapStatus = new MapStatus.Builder().target(cenpt).zoom(14).build();// 定义MapStatusUpdate对象。以便描写叙述地图状态将要发生的变化MapStatusUpdate mMapStatusUpdate = MapStatusUpdateFactory.newMapStatus(mMapStatus);// 改变地图状态// 开启定位图层mMapView.getMap().setMapStatus(mMapStatusUpdate);加入maker标记
// 定义Maker坐标点
// 构建Marker图标BitmapDescriptor bitmap = BitmapDescriptorFactory.fromResource(R.drawable.ic_launcher);// 构建MarkerOption,用于在地图上加入MarkerOverlayOptions option = new MarkerOptions().position(cenpt).icon(bitmap);// 在地图上加入Marker,并显示mMapView.getMap().clear();mMapView.getMap().addOverlay(option);mLocationClient.stop();完整代码例如以下
public class MapActivity extends BaseActivity {
MapView mMapView;public LocationClient mLocationClient = null;public BDLocationListener myListener = new MyLocationListener();@Overrideprotected void onCreate(Bundle savedInstanceState) { // TODO Auto-generated method stubsuper.onCreate(savedInstanceState);SDKInitializer.initialize(getApplicationContext());setContentView(R.layout.activity_mapview);mMapView = (MapView) findViewById(R.id.bmapView);mLocationClient = new LocationClient(getApplicationContext()); // 声明LocationClient类mLocationClient.registerLocationListener(myListener); // 注冊监听函数mLocationClient.start();}@Overrideprotected void onDestroy() { super.onDestroy();// 在activity运行onDestroy时运行mMapView.onDestroy()。实现地图生命周期管理mMapView.onDestroy();mLocationClient.stop();}@Overrideprotected void onResume() { super.onResume();// 在activity运行onResume时运行mMapView. onResume ()。实现地图生命周期管理mMapView.onResume();}@Overrideprotected void onPause() { super.onPause();// 在activity运行onPause时运行mMapView. onPause (),实现地图生命周期管理mMapView.onPause();}public class MyLocationListener implements BDLocationListener { @Overridepublic void onReceiveLocation(BDLocation location) { if (location == null)return;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) { sb.append("\nspeed : ");sb.append(location.getSpeed());sb.append("\nsatellite : ");sb.append(location.getSatelliteNumber());} else if (location.getLocType() == BDLocation.TypeNetWorkLocation) { sb.append("\naddr : ");sb.append(location.getAddrStr());}System.out.println("" + sb.toString());LatLng cenpt = new LatLng(location.getLatitude(),location.getLongitude());// 定义地图状态zoom表示缩放级别3-18MapStatus mMapStatus = new MapStatus.Builder().target(cenpt).zoom(14).build();// 定义MapStatusUpdate对象,以便描写叙述地图状态将要发生的变化MapStatusUpdate mMapStatusUpdate = MapStatusUpdateFactory.newMapStatus(mMapStatus);// 改变地图状态// 开启定位图层mMapView.getMap().setMapStatus(mMapStatusUpdate);// 定义Maker坐标点// 构建Marker图标BitmapDescriptor bitmap = BitmapDescriptorFactory.fromResource(R.drawable.ic_launcher);// 构建MarkerOption。用于在地图上加入MarkerOverlayOptions option = new MarkerOptions().position(cenpt).icon(bitmap);// 在地图上加入Marker,并显示mMapView.getMap().clear();mMapView.getMap().addOverlay(option);mLocationClient.stop();}} }