Android开发之百度SDK的使用--线路查询
来源:互联网 发布:淘宝卫浴安装 编辑:程序博客网 时间:2024/04/30 11:18
在使用百度地图SDK进行线路查询时可以分为三类情况:公交线路查询,自驾线路查询,以及步行线路查询,使用的方法其实大同小异。ps:版本号V3.2
1. 使用线路规划查询主要的类就是RoutePlanSearch,第一步先来生成一个RoutePlanSearch对象,并设置查询接口处理的回调接口
mSearch = RoutePlanSearch.newInstance();mSearch.setOnGetRoutePlanResultListener(new OnGetRoutePlanResultListener() {@Overridepublic void onGetWalkingRouteResult(WalkingRouteResult arg0) {// TODO Auto-generated method stub}@Overridepublic void onGetTransitRouteResult(TransitRouteResult result) {// TODO Auto-generated method stubif (result == null|| result.error != SearchResult.ERRORNO.NO_ERROR) {Toast.makeText(MainActivity.this, "抱歉,未找到结果",Toast.LENGTH_SHORT).show();}if (result.error == SearchResult.ERRORNO.AMBIGUOUS_ROURE_ADDR) {// 起终点或途经点地址有岐义,通过以下接口获取建议查询信息// result.getSuggestAddrInfo()return;}if (result.error == SearchResult.ERRORNO.NO_ERROR) {TransitRouteOverlay overlay = new TransitRouteOverlay(mBaiduMap);mBaiduMap.setOnMarkerClickListener(overlay);overlay.setData(result.getRouteLines().get(0));overlay.addToMap();overlay.zoomToSpan();}}@Overridepublic void onGetDrivingRouteResult(DrivingRouteResult arg0) {// TODO Auto-generated method stub}});关于回调接口的结果作以下几点说明:
1)查询结果的状态保存在TransitRouteResult中error域内,结果有:AMBIGUOUS_KEYWORD
,检索词有岐义;AMBIGUOUS_ROURE_ADDR,
检索地址有岐义;NO_ERROR
,检索结果正常返回;NOT_SUPPORT_BUS
,该城市不支持公交搜索;NOT_SUPPORT_BUS_2CITY
,不支持跨城市公交;RESULT_NOT_FOUND
,没有找到检索结果;ST_EN_TOO_NEAR
,起终点太近。
2)result.getRouteLines()返回已查询到的所有线路,为一个RouteLine的List集合
3)绘制公交线路,利用TransitRouteOverlay来将公交线路绘制在地图上
2. 设置查询路线的起点和终点:主要使用PlanNode以及TransitRoutePlanOption
<pre name="code" class="java"> startNode = PlanNode.withCityNameAndPlaceName("西安", "钟楼");endNode = PlanNode.withCityNameAndPlaceName("西安", "兴庆公园");TransitRoutePlanOption option = new TransitRoutePlanOption();option.from(startNode);option.to(endNode);option.city("西安");mSearch.transitSearch(option); 如果进行自驾路线和步行路线的查询只需将TransitRoutePlanOption对象换为DrivingRoutePlanOption,WalkingRoutePlanOption并调用mSearch相应的drivingSearch方法以及walkingSearch方法即可,结果也将返回在回调接口中的onGetDrivingRouteResulty以及onGetWalkingRouteResult方法中
附上源码:
package com.example.gymapp;import android.app.Activity;import android.os.Bundle;import android.view.View;import android.view.View.OnClickListener;import android.widget.Button;import android.widget.Toast;import com.baidu.mapapi.map.BaiduMap;import com.baidu.mapapi.map.MapView;import com.baidu.mapapi.overlayutil.TransitRouteOverlay;import com.baidu.mapapi.search.core.SearchResult;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.TransitRoutePlanOption;import com.baidu.mapapi.search.route.TransitRouteResult;import com.baidu.mapapi.search.route.WalkingRouteResult;/** * @author acer * */public class MainActivity extends Activity {MapView mMapView;BaiduMap mBaiduMap;private RoutePlanSearch mSearch;private PlanNode startNode;private PlanNode endNode;private Button loactionButton;@Overridepublic void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);mMapView = (MapView) findViewById(R.id.bmapView);loactionButton = (Button) findViewById(R.id.button1);mBaiduMap = mMapView.getMap();mSearch = RoutePlanSearch.newInstance();mSearch.setOnGetRoutePlanResultListener(new OnGetRoutePlanResultListener() {@Overridepublic void onGetWalkingRouteResult(WalkingRouteResult arg0) {// TODO Auto-generated method stub}@Overridepublic void onGetTransitRouteResult(TransitRouteResult result) {// TODO Auto-generated method stubif (result == null|| result.error != SearchResult.ERRORNO.NO_ERROR) {Toast.makeText(MainActivity.this, "抱歉,未找到结果",Toast.LENGTH_SHORT).show();}if (result.error == SearchResult.ERRORNO.AMBIGUOUS_ROURE_ADDR) {// 起终点或途经点地址有岐义,通过以下接口获取建议查询信息// result.getSuggestAddrInfo()return;}if (result.error == SearchResult.ERRORNO.NO_ERROR) {TransitRouteOverlay overlay = new TransitRouteOverlay(mBaiduMap);mBaiduMap.setOnMarkerClickListener(overlay);overlay.setData(result.getRouteLines().get(0));overlay.addToMap();overlay.zoomToSpan();}}@Overridepublic void onGetDrivingRouteResult(DrivingRouteResult arg0) {// TODO Auto-generated method stub}});loactionButton.setText("查询");loactionButton.setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View arg0) {// TODO Auto-generated method stubstartNode = PlanNode.withCityNameAndPlaceName("西安", "钟楼");endNode = PlanNode.withCityNameAndPlaceName("西安", "兴庆公园");TransitRoutePlanOption option = new TransitRoutePlanOption();option.from(startNode);option.to(endNode);option.city("西安");mSearch.transitSearch(option);}});}@Overrideprotected void onPause() {mMapView.onPause();super.onPause();}@Overrideprotected void onResume() {mMapView.onResume();super.onResume();}@Overrideprotected void onDestroy() {mMapView.onDestroy();mMapView = null;super.onDestroy();}}
0 0
- Android开发之百度SDK的使用--线路查询
- Android开发之百度SDK的使用--基础定位
- android开发游记:百度地图SDK基础地图的使用
- Android开发之集成百度地图SDK
- Android开发之新版百度map的调用(一):获取百度map的Android SDK
- android studio使用百度SDK开发百度地图应用中遇到的问题汇总
- 百度地图Android SDK的使用
- 【Android工程师】 - 百度地图SDK的使用
- [Android]百度地图开发之SDK开发环境搭建
- Android开发学习之使用百度语音识别SDK实现语音识别(上)
- Android开发学习之使用百度语音识别SDK实现语音识别(下)
- Android开发百度SDK的使用--定位图层的使用
- 利用百度地图Android SDK 进行模糊地理位置的查询
- Android百度地图SDK开发
- 百度地图android sdk开发之基础错误集合
- android百度地图sdk开发异常检查,事件使用
- 搭建百度地图SDK的Android开发环境(百度地图SDK版本V4.3.0)
- Android开发之百度地图的使用(一)
- 第一场TopCoder
- 特殊数字(水仙花)
- windows下apache的虚拟主机virtualhost配置
- 修改output-example,将H.264,AAC帧保存到mp4容器中
- Oracle OCP笔记(03)创建数据库
- Android开发之百度SDK的使用--线路查询
- nyoj-58 最少步数 搜索
- 杨辉三角
- perl格式化模板
- hdu 5093 Battle ships(最大二分匹配)
- BZOJ1001
- 把零移动到数组的一端 Move all zeroes to end of array
- 算法导论----学习笔记08
- URAL 2021 Scarily interesting!(贪心)