百度地图路径规划实例

来源:互联网 发布:人物绘画教程软件下载 编辑:程序博客网 时间:2024/04/27 17:39

直接上MainActivity代码

<span style="font-size:18px;">public class MainActivity extends Activity {private RoutePlanSearch routeSearch;private BaiduMap mBaiduMap;private MapView mapView;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);SDKInitializer.initialize(getApplicationContext());setContentView(R.layout.activity_main);mapView = (MapView) findViewById(R.id.mapView);mBaiduMap = mapView.getMap();// 设置地图中心MapStatusUpdate mapup = MapStatusUpdateFactory.newLatLng(new LatLng(23.149095, 113.268556));mBaiduMap.setMapStatus(mapup);//创建实现各种类型路线搜索的对象routeSearch = RoutePlanSearch.newInstance();// 设置监听器处理获得的结果routeSearch.setOnGetRoutePlanResultListener(new OnGetRoutePlanResultListener() {@Overridepublic void onGetWalkingRouteResult(WalkingRouteResult result) {/* * TaxiInfo info = result.getTaxiInfo(); int distance = * info.getDistance(); int duration = * info.getDuration(); float price = * info.getStartPrice(); *///获取所有的可行走的路线List<WalkingRouteLine> allLine = result.getRouteLines();WalkingRouteLine aLine = allLine.get(0);int distance = aLine.getDistance();// 单位:米int duration = aLine.getDuration();// 单位:秒Toast.makeText(MainActivity.this," distance:" + distance + "\n duration:"+ duration, Toast.LENGTH_SHORT).show();// 在地图上标注出路线WalkingRouteOverlay overlay = new WalkingRouteOverlay(mBaiduMap);overlay.setData(aLine);overlay.addToMap();}@Overridepublic void onGetTransitRouteResult(TransitRouteResult result) {List<TransitRouteLine> allLine = result.getRouteLines();Toast.makeText(MainActivity.this,"所有路线条数:" + allLine.size(), Toast.LENGTH_SHORT).show();TransitRouteLine aLine = allLine.get(0);// 在地图上标注出路线TransitRouteOverlay overlay = new TransitRouteOverlay(mBaiduMap);overlay.setData(aLine);overlay.addToMap();}@Overridepublic void onGetDrivingRouteResult(DrivingRouteResult result) {List<DrivingRouteLine> allLine = result.getRouteLines();Toast.makeText(MainActivity.this,"所有路线条数:" + allLine.size(), Toast.LENGTH_SHORT).show();DrivingRouteLine aLine = allLine.get(0);// 在地图上标注出路线DrivingRouteOverlay overlay = new DrivingRouteOverlay(mBaiduMap);overlay.setData(aLine);overlay.addToMap();}});}public void click(View v) {PlanNode start, end;switch (v.getId()) {case R.id.button1:// 步行路线mBaiduMap.clear();WalkingRoutePlanOption wopt = new WalkingRoutePlanOption();// 设置路径的起点(一定要写对地点)// PlanNode start = PlanNode.withLocation(new LatLng(23.149095,// 113.268556));start = PlanNode.withCityNameAndPlaceName("广州", "广州火车站");wopt.from(start);// 设置路径的终点(一定要写对地点)end = PlanNode.withCityNameAndPlaceName("广州", "白云山");wopt.to(end);routeSearch.walkingSearch(wopt);break;case R.id.button2:// 公共交通路线mBaiduMap.clear();TransitRoutePlanOption topt = new TransitRoutePlanOption();// 设置搜索交通的城市,一定要设置,否则出错topt.city("广州");start = PlanNode.withCityNameAndPlaceName("广州", "广州火车站");topt.from(start);end = PlanNode.withCityNameAndPlaceName("广州", "白云山");topt.to(end);routeSearch.transitSearch(topt);break;case R.id.button3:// 自驾路线mBaiduMap.clear();DrivingRoutePlanOption dopt = new DrivingRoutePlanOption();start = PlanNode.withCityNameAndPlaceName("广州", "广州火车站");dopt.from(start);end = PlanNode.withCityNameAndPlaceName("广州", "白云山");dopt.to(end);routeSearch.drivingSearch(dopt);break;}}@Overridepublic boolean onCreateOptionsMenu(Menu menu) {getMenuInflater().inflate(R.menu.main, menu);return true;}}</span><span style="font-size:24px;"></span>


0 0
原创粉丝点击