步驟一:在百度開放平台下載下傳到百度地圖的sdk,然後導入到項目中,申請到自己的appkey。
步驟二:建立layout,這個可以自由發揮
<com.baidu.mapapi.map.MapView
android:id="@+id/bmapView"
android:layout_width="fill_parent"
android:layout_height="0.0px"
android:layout_weight="2.07"
android:clickable="true" />
步驟三:建立activity。
private static LocationData locationData = new LocationData();
static MapView mMapView;
public LocationClient mLocationClient = null;
public BDLocationListener myListener = new MyLocationListener();
private MapController mMapController;
private MKSearch mkSearch;
private GeoPoint point2;
private MKMapViewListener mMapListener = null;
private LocationClientOption option;
必須在oncreate中初始化百度地圖的key,而且是在setContentView的前面初始化。
MapController 是對地圖的控制,比如縮放,zoom級别,地圖的中心點等等
mMapController.setCenter(point);// 設定地圖中心點
mMapController.setZoom(15);// 設定地圖zoom級别
mMapController.enableClick(true);
mMapView.setOnTouchListener(null);
定位的核心代碼:BDLocationListener
private class MyLocationListener implements BDLocationListener {
// 大概一秒鐘定位一次
@Override
public void onReceiveLocation(BDLocation location) {
if (location == null)
return;
if (flag_new == true) {
myPoint = new GeoPoint((int) (location.getLatitude() * 1e6),
(int) (location.getLongitude() * 1e6));
locationData.latitude = location.getLatitude();
locationData.longitude = location.getLongitude();
locationData.direction = 2.0f;
locationData.accuracy = location.getRadius();// 擷取服務
locationData.direction = location.getDerect();
// strAdd = location.getAddrStr().toString();
mMapView.refresh();// 此處重新整理必須有
// 定位本地位置,此句沒有,則無法定位
mMapController.animateTo(new GeoPoint(
(int) (locationData.latitude * 1e6),
(int) (locationData.longitude * 1e6)));
MyLocationOverlay myLocationOverlay = new MyLocationOverlay(
mMapView);
// 手動将位置源置為天安門,在實際應用中,請使用百度定位SDK擷取位置資訊,要在SDK中顯示一個位置,需要
// 使用百度經緯度坐标(bd09ll)
locationData.direction = 2.0f;
myLocationOverlay.setData(locationData);
mMapView.getOverlays().add(myLocationOverlay);
mMapView.refresh();
mMapView.getController().animateTo(
new GeoPoint((int) (lat), (int) (lon)));
flag_new = false;
}
}
要進行路線的查詢的就要實作MKSearch()中的MKSearchListener()
其實百度地圖給出了很詳細的api資料了,可以對着來一步一步實作。