package com.arrownock.opensource.arrownockers.utils;
import android.app.Activity;
import android.os.Bundle;
import com.arrownock.opensource.arrownockers.R;
import com.baidu.mapapi.BMapManager;
import com.baidu.mapapi.map.LocationData;
import com.baidu.mapapi.map.MapController;
import com.baidu.mapapi.map.MapView;
import com.baidu.mapapi.map.MyLocationOverlay;
import com.baidu.platform.comapi.basestruct.GeoPoint;
// 显示定位点
public class MapActivity extends Activity {
BMapManager mBMapMan = null;
MapView mMapView = null;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
double latitude = getIntent().getDoubleExtra("latitude", 0.0);
double longitude = getIntent().getDoubleExtra("longitude", 0.0);
mBMapMan = new BMapManager(getApplication());
mBMapMan.init("6D31A26E610B861CD57E7EAA2B52CA39B72D58DC", null);
// 注意:请在试用setContentView前初始化BMapManager对象,否则会报错
setContentView(R.layout.activity_map);
mMapView = (MapView) findViewById(R.id.bmapsView);
mMapView.setBuiltInZoomControls(true);
// 设置启用内置的缩放控件
MapController mMapController = mMapView.getController();
// 得到mMapView的控制权,可以用它控制和驱动平移和缩放
GeoPoint point = new GeoPoint((int) (latitude * 1E6),
(int) (longitude * 1E6));
// 用给定的经纬度构造一个GeoPoint,单位是微度 (度 * 1E6)
mMapController.setCenter(point);// 设置地图中心点
mMapController.setZoom(15);// 设置地图zoom级别
MyLocationOverlay myLocationOverlay = new MyLocationOverlay(mMapView);
LocationData locData = new LocationData();
// 手动将位置源置为天安门,在实际应用中,请使用百度定位SDK获取位置信息,要在SDK中显示一个位置,需要
// 使用百度经纬度坐标(bd09ll)
locData.latitude = latitude;
locData.longitude = longitude;
locData.direction = 2.0f;
myLocationOverlay.setData(locData);
mMapView.getOverlays().add(myLocationOverlay);
mMapView.refresh();
mMapView.getController().animateTo(point);
}
@Override
protected void onDestroy() {
mMapView.destroy();
if (mBMapMan != null) {
mBMapMan.destroy();
mBMapMan = null;
}
super.onDestroy();
}
@Override
protected void onPause() {
mMapView.onPause();
if (mBMapMan != null) {
mBMapMan.stop();
}
super.onPause();
}
@Override
protected void onResume() {
mMapView.onResume();
if (mBMapMan != null) {
mBMapMan.start();
}
super.onResume();
}
}