百度地图开发小结(1)

这两天稍微研究了一下百度地图,先做一个简单的总结。

首先照着百度地图API文档把HelloBaiduMap之前的步骤搞定,内容比较简单略过。

接下来,要实现百度地图的定位功能了。

由于百度将定位的API独立出来了,首先需要导入相关的jar包以及so文件,由于后面还要做一个导航的功能,所以我下载的SDK如下:


定位需要用到的几个类:

LocationClient mLocClient;
public MyLocationListenner myListener = new MyLocationListenner();
private LocationMode mCurrentMode;
BitmapDescriptor mCurrentMarker;
MyLocationListenner代码如下:

/**
	 * 定位SDK监听函数
	 */
	public class MyLocationListenner implements BDLocationListener {

		@Override
		public void onReceiveLocation(BDLocation location) {
			// 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();
			mBaiduMap.setMyLocationData(locData);
			if (isFirstLoc) {
				isFirstLoc = false;
				LatLng ll = new LatLng(location.getLatitude(),
						location.getLongitude());
				MapStatusUpdate u = MapStatusUpdateFactory.newLatLng(ll);
				mBaiduMap.animateMapStatus(u);
				if(location.getAddrStr() != null && !location.getAddrStr().equals("")){
					locText.setText(location.getAddrStr());
				}else{
					String addr = location.getLatitude() + "";
					locText.setText(addr);
				}
			}
		}
我们要在一开始就进行定位,onCreate方法添加以下代码:

<span style="white-space:pre">		</span>mMapView = (MapView) findViewById(R.id.bmapView);
		mBaiduMap = mMapView.getMap();
		// 开启定位图层
		mBaiduMap.setMyLocationEnabled(true);
		mBaiduMap.setOnMapClickListener(listener);
		// 定位初始化
		mLocClient = new LocationClient(this);
		mLocClient.registerLocationListener(myListener);
		LocationClientOption option = new LocationClientOption();
		//高精度定位模式
		option.setLocationMode(com.baidu.location.LocationClientOption.LocationMode.Hight_Accuracy);
		option.setOpenGps(true);// 打开gps
		option.setCoorType("bd09ll"); // 设置坐标类型
		option.setScanSpan(0);
		mLocClient.setLocOption(option);
		mLocClient.start();
嗯,可以看到地图定位到我当前的位置了。
顺便提一下百度给我们提供了几种定位模式,我选用了高精度模式,即使用gps定位。另外还有其他的定位模式,可以自行查询百度地图API。该方法是在定位SDK5.0版本添加的。




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值