路线规划包含,驾车、公交、和步行三种
今天我们一起来,一一看下。
| DrivingRouteLine |
表示驾车路线
|
| DrivingRouteLine.DrivingStep |
表示一个驾车路段
|
| DrivingRoutePlanOption |
驾车路线规划参数
|
| DrivingRouteResult |
驾车路线结果
|
| PlanNode |
路径规划中的出行节点信息,出行节点包括:起点,终点,途经点 出行节点信息可以通过两种方式确定: 1: 给定出行节点经纬度坐标 2: 给定出行节点地名和城市名
|
| RoutePlanSearch |
路径规划搜索接口
|
| SuggestAddrInfo | |
| TransitRouteLine |
表示一个换乘路线,换乘路线将根据既定策略调配多种交通工具。
|
| TransitRouteLine.TransitStep |
表示一个换乘路段
|
| TransitRoutePlanOption |
换乘路线规划参数
|
| TransitRouteResult |
换乘路线结果
|
| WalkingRouteLine |
表示一条步行路线
|
| WalkingRouteLine.WalkingStep |
描述一个步行路段
|
| WalkingRoutePlanOption |
步行路线规划参数
|
| WalkingRouteResult |
表示步行路线结果
|
第一步,创建驾车线路规划检索实例;
第二步,创建驾车线路规划检索监听者;
第三步,设置驾车线路规划检索监听者;
第四步,准备检索起、终点信息;
第五步,发起驾车线路规划检索;
第六步,释放检索实例;
首先布局还是那个仅有一个lixtview的布局
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".IndexActivity" >
<ListView
android: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() {
@Override
public 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();
// 使用方法与上面类似
}
}
@Override
public void onGetTransitRouteResult(TransitRouteResult transitResult) {
}
@Override
public 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);
}
}
公交:
原文地址:http://blog.csdn.net/u013616976/article/details/45460519