首先声明一下,这是我第一次写博客,有很多东西不清楚 ,还请见谅。
昨天周末的时候,帮同事做一个安卓app里面的百度地图的东西。其实就是类似百度导航的东西,有一个箭头,可以转动。他的需求时,通过服务器传的参数来动态改变。我之前也没做过app,更没做过app百度地图。在网上找了很多都没有搞定,最后自己看来一个api,才搞定的。下面把demo附上去,希望能对一些人有所帮助,同时自己也能有所积累。
需要的包我就不做解释了,大家应该比我更加清楚!
Activity代码:
import android.app.Activity;
import android.os.Bundle;
import com.baidu.mapapi.SDKInitializer;
import com.baidu.mapapi.map.BaiduMap;
import com.baidu.mapapi.map.BitmapDescriptor;
import com.baidu.mapapi.map.BitmapDescriptorFactory;
import com.baidu.mapapi.map.MapStatus;
import com.baidu.mapapi.map.MapStatusUpdate;
import com.baidu.mapapi.map.MapStatusUpdateFactory;
import com.baidu.mapapi.map.MapView;
import com.baidu.mapapi.map.MarkerOptions;
import com.baidu.mapapi.map.MyLocationData;
import com.baidu.mapapi.map.OverlayOptions;
import com.baidu.mapapi.model.LatLng;
public class BaiDuMap extends Activity{
private MapView mMapView = null;
private BaiduMap mBaiduMap = null;
MyLocationData.Builder builder = new MyLocationData.Builder();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//在使用SDK各组件之前初始化context信息,传入ApplicationContext
//注意该方法要再setContentView方法之前实现
SDKInitializer.initialize(getApplicationContext());
setContentView(R.layout.bmap);
//获取地图控件引用
mMapView = (MapView) findViewById(R.id.bmapView);
mBaiduMap = mMapView.getMap();
// 构造定位数据
//深圳中心点
LatLng point = new LatLng(22.549525, 114.063918);
BitmapDescriptor icon = BitmapDescriptorFactory.fromResource(R.drawable.navigation);
//这里是按逆时针旋转的 这里是270度
OverlayOptions options = new MarkerOptions().icon(icon).position(point).rotate(270);
mBaiduMap.addOverlay(options);
MapStatus mMapStatus = new MapStatus.Builder()
.target(point)
.zoom(18)
.build();
//定义MapStatusUpdate对象,以便描述地图状态将要发生的变化
MapStatusUpdate mMapStatusUpdate = MapStatusUpdateFactory.newMapStatus(mMapStatus);
//改变地图状态
mBaiduMap.setMapStatus(mMapStatusUpdate);
}
@Override
protected void onDestroy() {
super.onDestroy();
//在activity执行onDestroy时执行mMapView.onDestroy(),实现地图生命周期管理
mMapView.onDestroy();
}
@Override
protected void onResume() {
super.onResume();
//在activity执行onResume时执行mMapView. onResume (),实现地图生命周期管理
mMapView.onResume();
}
@Override
protected void onPause() {
super.onPause();
//在activity执行onPause时执行mMapView. onPause (),实现地图生命周期管理
mMapView.onPause();
}
}