android 百度地图获取城市,Android 百度地图获取两点之间的距离和推荐的驾车路线...

本文主要介绍了在Android中使用百度地图进行路线规划的方法。通过实现OnGetRoutePlanResultListener接口,可进行驾车、步行等路线规划。还展示了如何获取驾车距离,并将路线显示在地图上,若规划失败会给出相应提示。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

//规划路线  Activity实现OnGetRoutePlanResultListener接口

private RoutePlanSearch routePlanSearch;

//这里传入 起点LatLng  和终点的LatLng

private void guiHua(LatLng start,LatLng end){

if (routePlanSearch==null) {

routePlanSearch=RoutePlanSearch.newInstance();

routePlanSearch.setOnGetRoutePlanResultListener(this);

}

DrivingRoutePlanOption option=new DrivingRoutePlanOption();

option.from(PlanNode.withLocation(start))

.to(PlanNode.withLocation(end));

routePlanSearch.drivingSearch(option);

}

/**

实现OnGetRoutePlanResultListener接口 重写这几个方法

*/

//汽车

@Override

public void onGetBikingRouteResult(BikingRouteResult arg0) {

// TODO Auto-generated method stub

}

//驾驶

@Override

public void onGetDrivingRouteResult(DrivingRouteResult result) {

// TODO Auto-generated method stub

if (result == null || result.error != SearchResult.ERRORNO.NO_ERROR) {

Toast.makeText(mContext, "抱歉,未找到结果", Toast.LENGTH_SHORT).show();

}

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

// 起终点或途经点地址有岐义,通过以下接口获取建议查询信息

// result.getSuggestAddrInfo()

return;

}

if (result != null&&result.error == ERRORNO.NO_ERROR) {

DrivingRouteOverlay overlay=null;

Listlist=result.getRouteLines();

if (list.size()>0) {

//获取驾车距离

double juli=(double)list.get(0).getDistance()/1000;

tv_juli.setText(juli+"km");

//这里将第一条路线显示在地图上

overlay=new DrivingRouteOverlay(baiduMap);

overlay.setData(list.get(0));

overlay.addToMap();

overlay.zoomToSpan();

}

//这里将所有路线显示在地图上

//            for (DrivingRouteLine line:list) {

//                overlay=new DrivingRouteOverlay(baiduMap);

//                overlay.setData(line);

//                overlay.addToMap();

//                overlay.zoomToSpan();

//            }

}

}

//公交

@Override

public void onGetTransitRouteResult(TransitRouteResult arg0) {

// TODO Auto-generated method stub

}

//步行

@Override

public void onGetWalkingRouteResult(WalkingRouteResult result) {

// TODO Auto-generated method stub

// 获取步行线路规划结果

if (result == null || result.error != SearchResult.ERRORNO.NO_ERROR) {

Toast.makeText(mContext, "抱歉,未找到结果",

Toast.LENGTH_SHORT).show();

}

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

// 起终点或途经点地址有岐义,通过以下接口获取建议查询信息

// result.getSuggestAddrInfo()

return;

}

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

WalkingRouteOverlay overlay = new MyWalkingRouteOverlay(

baiduMap);

//这里同上(驾车)

baiduMap.setOnMarkerClickListener(overlay);

overlay.setData(result.getRouteLines().get(0));

overlay.addToMap();

overlay.zoomToSpan();

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值