百度地图再进阶之路线规划

路线规划包含,驾车、公交、和步行三种

今天我们一起来,一一看下。

DrivingRouteLine

表示驾车路线

DrivingRouteLine.DrivingStep

表示一个驾车路段

DrivingRoutePlanOption

驾车路线规划参数

DrivingRouteResult

驾车路线结果

PlanNode

路径规划中的出行节点信息,出行节点包括:起点,终点,途经点 出行节点信息可以通过两种方式确定: 1: 给定出行节点经纬度坐标 2: 给定出行节点地名和城市名

RoutePlanSearch

路径规划搜索接口

SuggestAddrInfo

TransitRouteLine

表示一个换乘路线,,换乘路线将根据既定策略调配多种交通工具。

TransitRouteLine.TransitStep

表示一个换乘路段

TransitRoutePlanOption

换乘路线规划参数

TransitRouteResult

换乘路线结果

WalkingRouteLine

表示一条步行路线

WalkingRouteLine.WalkingStep

描述一个步行路段

WalkingRoutePlanOption

步行路线规划参数

WalkingRouteResult

表示步行路线结果

第一步,创建驾车线路规划检索实例;

mSearch

第二步,创建驾车线路规划检索监听者;

OnGetRoutePlanResultListener listener onGetWalkingRouteResultonGetTransitRouteResultonGetDrivingRouteResult

第三步,设置驾车线路规划检索监听者;

mSearch.

第四步,准备检索起、终点信息;

PlanNode stNode , PlanNode enNode ,

第五步,发起驾车线路规划检索;

mSearch.DrivingRoutePlanOption.from(stNode).

第六步,释放检索实例;

mSearch.

那么我们就按照以上的步骤来做一下吧

首先布局还是那个仅有一个lixtview的布局

<RelativeLayout xmlns:android=""xmlns:tools=""android:layout_width="match_parent"android:layout_height="match_parent"tools:context=".IndexActivity" ><ListViewandroid:id="@+id/mylistView"android:layout_width="wrap_content"android:layout_height="wrap_content" /></RelativeLayout>驾车路线的规划package com.flyou.hellomap;import java.util.ArrayList;import java.util.List;import android.app.Activity;import android.os.Bundle;import android.view.KeyEvent;import android.widget.ArrayAdapter;import android.widget.ListView;import com.baidu.mapapi.SDKInitializer;import com.baidu.mapapi.search.route.DrivingRouteLine;import com.baidu.mapapi.search.route.DrivingRoutePlanOption;import com.baidu.mapapi.search.route.DrivingRouteResult;import com.baidu.mapapi.search.route.OnGetRoutePlanResultListener;import com.baidu.mapapi.search.route.PlanNode;import com.baidu.mapapi.search.route.RoutePlanSearch;import com.baidu.mapapi.search.route.TransitRouteResult;import com.baidu.mapapi.search.route.WalkingRouteResult;public class RouteMapActivity extends Activity { private int totalpages = 0; private ListView listView = null; private RoutePlanSearch routeSearch; private int currentPage = 0; ArrayAdapter<String> adapter = null; @Override protected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);// 在使用SDK各组件之前初始化context信息,传入ApplicationContext// 注意该方法要再setContentView方法之前实现SDKInitializer.initialize(getApplicationContext());setContentView(R.layout.activity_index);listView = (ListView) findViewById(R.id.mylistView);// 第一步,创建路线检索实例routeSearch = RoutePlanSearch.newInstance();// 第三步,设置路线检索监听者;routeSearch.setOnGetRoutePlanResultListener(routeListener); } // 第二步,创建POI检索监听者; OnGetRoutePlanResultListener routeListener = new OnGetRoutePlanResultListener() {@Overridepublic void onGetDrivingRouteResult(DrivingRouteResult drivingResult) {// TaxiInfo taxiInfo = drivingResult.getTaxiInfo(); 已经弃用List<String> datas = new ArrayList<String>();List<DrivingRouteLine> routeLines = drivingResult.getRouteLines();if (routeLines != null) {for (DrivingRouteLine drivingRouteLine : routeLines) {// 分别列出路线的第一步datas.add(drivingRouteLine.getAllStep().get(0).getExitInstructions() + ",距离:"+ drivingRouteLine.getDistance() / 1000.f + "千米,大约用时:" + drivingRouteLine.getDuration() / 60 + "分");}listView.setAdapter(new ArrayAdapter<String>(RouteMapActivity.this, android.R.layout.simple_list_item_1, datas));// SuggestAddrInfo suggestAddrInfo = drivingResult.getSuggestAddrInfo();// 使用方法与上面类似}}@Overridepublic void onGetTransitRouteResult(TransitRouteResult transitResult) {}@Overridepublic void onGetWalkingRouteResult(WalkingRouteResult walkingResult) {} }; @Override protected void onDestroy() {super.onDestroy();// 第六步,释放检索实例;// 在activity执行onDestroy时执行mMapView.onDestroy(),实现地图生命周期管理routeSearch.destroy(); } @Override protected void onResume() {super.onResume();// 在activity执行onResume时执行mMapView. onResume (),实现地图生命周期管理 } @Override protected void onPause() {super.onPause();// 在activity执行onPause时执行mMapView. onPause (),实现地图生命周期管理 } @Override public boolean onKeyDown(int keyCode, KeyEvent event) {switch (keyCode) {case KeyEvent.KEYCODE_MENU:// 第四步,准备检索起、终点信息;PlanNode stNode = PlanNode.withCityNameAndPlaceName("开封", "河南大学新校区西门");PlanNode enNode = PlanNode.withCityNameAndPlaceName("开封", "鼓楼广场");// 第五步,发起驾车线路规划检索;routeSearch.<span style="color:#ff0000;">drivingSearch(new DrivingRoutePlanOption().from(stNode).to(enNode))</span>;<span style="white-space:pre"></span>currentPage++;if (currentPage == totalpages) {currentPage = 0;}break;}return super.onKeyDown(keyCode, event); }}

同理要想获得其他方式的数据,分别为

接受失败,是我们不常听到或看到的一个命题,我们大都接受的是正面的教育,

百度地图再进阶之路线规划

相关文章:

你感兴趣的文章:

标签云: