1. 程式人生 > >Android 百度地圖開發(一)如何呼叫百度地圖介面和在專案中顯示百度地圖以及實現定位

Android 百度地圖開發(一)如何呼叫百度地圖介面和在專案中顯示百度地圖以及實現定位

下載百度地圖API庫

然後新增到專案中即可。

  三、在專案清單AndroidMainifest.xml配置百度地圖API key和新增相關許可權                         四、在專案呼叫百度地圖專案功能,這篇文章就首先講講顯示地圖和定位的功能
  1. 首先在佈局中新增百度地圖控制元件
    2、在Activity中實現地圖的顯示以及定位。
package com.lif8.goutongbao;

import com.baidu.location.BDLocation;
import com.baidu.location.BDLocationListener;
import com.baidu.location.LocationClient;
import com.baidu.location.LocationClientOption;
import com.baidu.mapapi.map.BaiduMap;
import com.baidu.mapapi.map.MapStatusUpdate;
import com.baidu.mapapi.map.MapStatusUpdateFactory;
import com.baidu.mapapi.map.MapView;
import com.baidu.mapapi.map.MyLocationData;
import com.baidu.mapapi.model.LatLng;

import android.app.Activity;
import android.os.Bundle;

public class TransitRouteActivity extends Activity{

	private final static String TAG = "TransitRouteActivity";
	// 全域性變數
	private double myLongitude; // 經度
	private double myLatitude; // 緯度
	boolean isFirstLoc = true;// 是否首次定位
	public MyLocationListenner myListener = new MyLocationListenner();

	MapView mMapView = null; // 地圖View
	BaiduMap mBaidumap = null;
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		// TODO Auto-generated method stub
		super.onCreate(savedInstanceState);
                SDKInitializer.initialize(getApplicationContext());
                setContentView(R.layout.transit_route_main);

		// 初始化地圖
		mMapView = (MapView) findViewById(R.id.map);
		mBaidumap = mMapView.getMap();
		// 開啟定點陣圖層
		mBaidumap.setMyLocationEnabled(true);

		// TODO 定位功能
		// 定位初始化
		LocationClient mLocClient = new LocationClient(this);
		mLocClient.registerLocationListener(myListener);
		LocationClientOption option = new LocationClientOption();
		option.setOpenGps(true);// 開啟gps
		option.setCoorType("bd09ll"); // 設定座標型別
		option.setScanSpan(1000);
		// 
		option.setIsNeedAddress(true);
		mLocClient.setLocOption(option);
		mLocClient.start();

	}


	// TODO 定位相關
	/**
	 * 定位SDK監聽函式
	 */
	public class MyLocationListenner implements BDLocationListener {

		@Override
		public void onReceiveLocation(BDLocation location) {
			// 取經緯度
			myLatitude = location.getLatitude();
			myLongitude = location.getLongitude();

			// map view 銷燬後不在處理新接收的位置
			if (location == null || mMapView == null)
				return;
			MyLocationData locData = new MyLocationData.Builder()
					.accuracy(location.getRadius())
					// 此處設定開發者獲取到的方向資訊,順時針0-360
					.direction(100).latitude(location.getLatitude())
					.longitude(location.getLongitude()).build();
			if (locData != null && mBaidumap != null)
				mBaidumap.setMyLocationData(locData);
			if (isFirstLoc) {
				isFirstLoc = false;
				LatLng ll = new LatLng(location.getLatitude(),
						location.getLongitude());			
				MapStatusUpdate u = MapStatusUpdateFactory.newLatLng(ll);
				mBaidumap.animateMapStatus(u);
			}

		}

		public void onReceivePoi(BDLocation poiLocation) {
		}
	}


	protected void onPause() {
		mMapView.onPause();
		super.onPause();
	}

	@Override
	protected void onResume() {
		mMapView.onResume();
		super.onResume();
	}

	@Override
	protected void onDestroy() {
		mMapView.onDestroy();
		if (mBaidumap != null)
			mBaidumap = null;
		super.onDestroy();
	}

}

  這樣我們就完成了在自己的專案呼叫百度地圖介面,顯示地圖以及實現定位的功能。後期會持續介紹百度地圖   的使用,歡迎大家關注