百度地图路线规划集成步骤

今天项目用到了 路线规划(只是路线规划不含其它) 在此做个记录

首先登录百度地图开放平台 点击打开链接

登记你的应用 然后填写签名的SHA1值 Mac获取签名SHA1值的方法 填写完成就能获取 APP AK

然后在你的清单文件中配置

<meta-data
            android:name="com.baidu.lbsapi.API_KEY"
            android:value="申请的key" />

下载SDK 我仅仅下载了这几个

下载完成之后 按照官网提供的集成步骤进行集成

下面给出我的代码 注意代码里面的DrivingRouteOverlay没有在SDK里面 你需要去下载 还有使用这个SDK别忘权限

里面的示例代码去复制 切记切记(当时我找了半天 fk)

/*
 * @创建者     xw_12138
 * @创建时间   2018/4/27
 * @描述       
 */

public class BaiduMapActivity extends AppActivity {

	private MapView mMapView;
	private RoutePlanSearch mMSearch;
	private BaiduMap mBaiduMap;
	OverlayManager routeOverlay = null;
	private HttpDialog mDialog;

	//这是AppActivity抽取方法设置布局
	@Override
	public void setLayout() {
		setContentView(R.layout.act_map);
	}

	//这是AppActivity抽取方法初始化title
	@Override
	public void initAll() {
		setPageTitle("地图");
		setPageTitleBackgroundColor(R.color.color_35495E);
		setPageBackVisibility(View.INVISIBLE);
		setPageTitleColor(R.color.color_fff);
		initView();
	}

	private void initView() {
		mMapView = (MapView) findViewById(R.id.bmapView);

		//最好设置一个dialog 因为百度地图绘制你设置的点需要时间
		mDialog = new HttpDialog(this);

		mDialog.show();

		mBaiduMap = mMapView.getMap();

		mMSearch = RoutePlanSearch.newInstance();

		mMSearch.setOnGetRoutePlanResultListener(listener);

		final PlanNode stNode = PlanNode.withCityNameAndPlaceName("上海", "上海");

		final PlanNode enNode = PlanNode.withCityNameAndPlaceName("北京", "天安门");

		mMSearch.drivingSearch((new DrivingRoutePlanOption())
				.from(stNode)
				.to(enNode));

	}

	class MyDrivingRouteOverlay extends DrivingRouteOverlay {

		/**
		 * 构造函数
		 *
		 * @param baiduMap 该DrivingRouteOvelray引用的 BaiduMap
		 */
		public MyDrivingRouteOverlay(BaiduMap baiduMap) {
			super(baiduMap);
		}

		//设置起点图片
		@Override
		public BitmapDescriptor getStartMarker() {
			return BitmapDescriptorFactory.fromResource(R.mipmap.icon_st);
		}

		//设置重点图片
		@Override
		public BitmapDescriptor getTerminalMarker() {
			return BitmapDescriptorFactory.fromResource(R.mipmap.icon_en);
		}

		//设置路线颜色
		@Override
		public int getLineColor() {
			return Color.parseColor("#EEB422");
		}
	}

	OnGetRoutePlanResultListener listener = new OnGetRoutePlanResultListener() {

		@Override
		public void onGetDrivingRouteResult(DrivingRouteResult result) {

			mDialog.dismiss();

			if (result == null || result.error != SearchResult.ERRORNO.NO_ERROR) {
				Toast.makeText(BaiduMapActivity.this, "抱歉,未找到结果", Toast.LENGTH_SHORT)
						.show();
			}
			if (result.error == SearchResult.ERRORNO.AMBIGUOUS_ROURE_ADDR) {

				return;
			}

			if (result.error == SearchResult.ERRORNO.NO_ERROR) {

				DrivingRouteOverlay overlay = new MyDrivingRouteOverlay(mBaiduMap);
				routeOverlay = overlay;

				overlay.setData(result.getRouteLines().get(0));
				overlay.addToMap(); // 将所有Overlay 添加到地图上
				overlay.zoomToSpan(); // 缩放地图,使所有Overlay都在合适的视野内

			}


		}


		@Override
		public void onGetWalkingRouteResult(WalkingRouteResult walkingRouteResult) {

		}

		@Override
		public void onGetTransitRouteResult(TransitRouteResult transitRouteResult) {

		}

		@Override
		public void onGetMassTransitRouteResult(MassTransitRouteResult massTransitRouteResult) {

		}


		@Override
		public void onGetIndoorRouteResult(IndoorRouteResult indoorRouteResult) {

		}

		@Override
		public void onGetBikingRouteResult(BikingRouteResult bikingRouteResult) {

		}
	};


	@Override
	protected void onStart() {
		super.onStart();
	}

	@Override
	public void onResume() {
		super.onResume();
		if (null != mMapView)
			mMapView.onResume();
	}

	@Override
	public void onPause() {
		super.onPause();
		if (null != mMapView)
			mMapView.onPause();
	}

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

然后打开就能看到效果了



补充一句

获取两点之间距离 在onGetDrivingRouteResult (单位 公里)

int duration = result.getRouteLines().get(0).getDistance();
DecimalFormat df = new DecimalFormat("0.00");
String distance = df.format((float) duration / 1000);


猜你喜欢

转载自blog.csdn.net/weixin_32364917/article/details/80105143
今日推荐