百度地图开发(一)

昨天开始,开始玩百度SDK,一大堆问题,百度的文档太坑爹了,感觉很旧的,按照官网的配置居然错误一大堆!!!!

Now,把心得和大家分享。

一、构建项目

百度地图开发(一)_第1张图片

貌似更新了ADT插件后,jar包放在libs下不会自动编译到项目中,调试的时候一直报类找不到错误。解决办法是在libs 上点右键,将其作为源码文件夹。还有assets这个文件夹,最坑爹了!!!这个是来自于baidumapapi_v2_1_2.jar中的。不加的话有可能会报java.io.FileNotFoundException等错误。这个问题的解决参考了http://www.oschina.net/question/234275_76708

二、接下来是最简单的例子

package xidian.wwf.xidianmap.activity;

import xidian.wwf.xidianmap.R;
import xidian.wwf.xidianmap.app.AppManager;
import xidian.wwf.xidianmap.app.UIHelper;
import android.os.Bundle;
import android.util.Log;

import com.baidu.mapapi.BMapManager;
import com.baidu.mapapi.MKGeneralListener;
import com.baidu.mapapi.map.MKEvent;
import com.baidu.mapapi.map.MKMapViewListener;
import com.baidu.mapapi.map.MapController;
import com.baidu.mapapi.map.MapView;
import com.baidu.platform.comapi.basestruct.GeoPoint;

public class MainActivity extends BaseActivity {

	final static String TAG = "MainActivity";
	BMapManager mBMapMan = null;
	/**
	 * MapView 是地图主控件
	 */
	MapView mMapView = null;
	/**
	 * 用MapController完成地图控制
	 */
	MapController mMapController = null;
	/**
	 * MKMapViewListener 用于处理地图事件回调
	 */
	MKMapViewListener mMapListener = null;

	@Override
	public void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		/**
		 * 它需要地图模块创建前创建,
		 * 并在地图地图模块销毁后销毁,只要还有地图模块在使用,BMapManager就不应该销毁
		 */
		mBMapMan = new BMapManager(getApplication());
		mBMapMan.init(AppManager.baiduStrKey, new MyGeneralListener());
		setContentView(R.layout.activity_main);

		mMapView = (MapView) findViewById(R.id.bmapView);
		mMapView.setBuiltInZoomControls(true);
		// 设置启用内置的缩放控件
		mMapController = mMapView.getController();
		// 得到mMapView的控制权,可以用它控制和驱动平移和缩放
		GeoPoint point = new GeoPoint((int) (39.915 * 1E6),
				(int) (116.404 * 1E6));
		// 用给定的经纬度构造一个GeoPoint,单位是微度 (度 * 1E6)
		mMapController.setCenter(point);// 设置地图中心点
		mMapController.setZoom(12);// 设置地图zoom级别
	}

	@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();
	}
	// 常用事件监听,用来处理通常的网络错误,授权验证错误等
	class MyGeneralListener implements MKGeneralListener {

			@Override
			public void onGetNetworkState(int iError) {
				Log.e("ee", String.valueOf(iError));
				if (iError == MKEvent.ERROR_NETWORK_CONNECT) {
					UIHelper.ToastMessage(MainActivity.this, "您的网络出错啦!");
				} else if (iError == MKEvent.ERROR_NETWORK_DATA) {
					UIHelper.ToastMessage(MainActivity.this, "输入正确的检索条件!");
				}
			}

			@Override
			public void onGetPermissionState(int iError) {
				if (iError == MKEvent.ERROR_PERMISSION_DENIED) {
					// 授权Key错误:
					UIHelper.ToastMessage(MainActivity.this, "请在输入正确的授权Key!");
				}
			}
		}

}



你可能感兴趣的:(android,百度地图)