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(); } }