在好例子网,分享、交流、成长!
您当前所在位置:首页Java 开发实例Android平台开发 → 百度地图的路线规划

百度地图的路线规划

Android平台开发

下载此实例
  • 开发语言:Java
  • 实例大小:1.92M
  • 下载次数:57
  • 浏览次数:654
  • 发布时间:2014-07-04
  • 实例类别:Android平台开发
  • 发 布 人:monianhao
  • 文件格式:.rar
  • 所需积分:2
 相关标签: 地图 百度

实例介绍

【实例简介】
【实例截图】

【核心代码】

package com.baidumap.routesearch;


import com.baidu.mapapi.BMapManager;
import com.baidu.mapapi.map.MapController;
import com.baidu.mapapi.map.MapView;
import com.baidu.mapapi.map.RouteOverlay;
import com.baidu.mapapi.search.MKAddrInfo;
import com.baidu.mapapi.search.MKBusLineResult;
import com.baidu.mapapi.search.MKDrivingRouteResult;
import com.baidu.mapapi.search.MKPlanNode;
import com.baidu.mapapi.search.MKPoiResult;
import com.baidu.mapapi.search.MKSearch;
import com.baidu.mapapi.search.MKSearchListener;
import com.baidu.mapapi.search.MKSuggestionResult;
import com.baidu.mapapi.search.MKTransitRouteResult;
import com.baidu.mapapi.search.MKWalkingRouteResult;
import com.baidu.platform.comapi.basestruct.GeoPoint;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;
import android.app.Activity;


public class MainActivity extends Activity {

	BMapManager bMapManager = null;  // 定义管理sdk的对象
	MapView mapView = null;  // 定义mapview对象

	// 定义控件
	EditText startEditText;
	EditText endEditText;
	Button button;
	
	// 定义路径搜索对象
	MKSearch mkSearch = null;
	
	// 结果监听对象
	MKSearchListener mkSearchListener = new MKSearchListener() {
		
		@Override
		public void onGetWalkingRouteResult(MKWalkingRouteResult arg0, int arg1) {
			// TODO Auto-generated method stub
			if (arg1 != 0 || arg0 == null) {
				Toast.makeText(MainActivity.this, "抱歉,未找到结果", Toast.LENGTH_SHORT).show();
				return;
			}
			
			RouteOverlay routeOverlay = new RouteOverlay(MainActivity.this, mapView);
		    // 此处仅展示一个方案作为示例
		    routeOverlay.setData(arg0.getPlan(0).getRoute(0));
		    mapView.getOverlays().clear();
		    mapView.getOverlays().add(routeOverlay);
		    mapView.refresh();
		    mapView.getController().animateTo(arg0.getStart().pt);
		    
		}
		
		@Override
		public void onGetTransitRouteResult(MKTransitRouteResult arg0, int arg1) {
			// TODO Auto-generated method stub
			
		}
		
		@Override
		public void onGetSuggestionResult(MKSuggestionResult arg0, int arg1) {
			// TODO Auto-generated method stub
			
		}
		
		@Override
		public void onGetPoiResult(MKPoiResult arg0, int arg1, int arg2) {
			// TODO Auto-generated method stub
			
		}
		
		@Override
		public void onGetPoiDetailSearchResult(int arg0, int arg1) {
			// TODO Auto-generated method stub
			
		}
		
		@Override
		public void onGetDrivingRouteResult(MKDrivingRouteResult arg0, int arg1) {
			// TODO Auto-generated method stub
			
		}
		
		@Override
		public void onGetBusDetailResult(MKBusLineResult arg0, int arg1) {
			// TODO Auto-generated method stub
			
		}
		
		@Override
		public void onGetAddrResult(MKAddrInfo arg0, int arg1) {
			// TODO Auto-generated method stub
			
		}
	};
	
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		
		// 初始化管理对象,注意要在setContentView(R.layout.activity_main)之前初始化,否则会报错
		bMapManager = new BMapManager(getApplication());
		bMapManager.init("您申请的Key", null);
		
		setContentView(R.layout.activity_main);
		
		// 初始化mapview对象,并且设置显示缩放控件
		mapView = (MapView) findViewById(R.id.bmapsView);
		mapView.setBuiltInZoomControls(true);
		
		// 初始化起点、终点输入框及搜索按钮
		startEditText = (EditText) findViewById(R.id.editText1);
		endEditText = (EditText) findViewById(R.id.editText2);
		button = (Button) findViewById(R.id.button1);
		
		// 定义地图控件,获取mapview的控制,并把地图范围定位北京市
		MapController mapController = mapView.getController();
		GeoPoint point =new GeoPoint((int)(39.915* 1E6),(int)(116.404* 1E6));
		mapController.setCenter(point);
		mapController.setZoom(12);
		
		// 初始化检索对象
		mkSearch = new MKSearch();
		mkSearch.init(bMapManager, mkSearchListener);
		
		// 设置button的点击事件,先判断起点终点是否为空,不为空就开始执行步行检索
		button.setOnClickListener(new OnClickListener() {
			
			@Override
			public void onClick(View v) {
				// TODO Auto-generated method stub
				String start = startEditText.getText().toString();
				String end = endEditText.getText().toString();
				if(start.equals("") || end.equals(""))
				{
					Toast.makeText(MainActivity.this, "起点或终点不可为空!", Toast.LENGTH_SHORT).show();
				}
				else 
				{
					MKPlanNode startNode = new MKPlanNode();
					startNode.name = start;
					MKPlanNode endNode = new MKPlanNode();
					endNode.name = end;
					
					// 这里仅以步行搜索为例,开发者可根据自己的实际需求自定选择route类型
					mkSearch.walkingSearch("北京", startNode, "北京", endNode);
				}
			}
		});
		
	}
	
	
	//注意在onResume、onDestroy和onPause中控制mapview和地图管理对象的状态
	@Override
	protected void onResume() {
		// TODO Auto-generated method stub
		mapView.onResume();
		if(bMapManager!=null){
			bMapManager.start();
		}
		super.onResume();
	}
	
	@Override
	protected void onDestroy() {
		// TODO Auto-generated method stub
		mapView.destroy();
		if(bMapManager!=null){
			bMapManager.destroy();
			bMapManager=null;
		}
		super.onDestroy();
	}
	
	@Override
	protected void onPause() {
		// TODO Auto-generated method stub
		mapView.onPause();
		if(bMapManager!=null){
			bMapManager.stop();
		}
		super.onPause();
	}

}

标签: 地图 百度

实例下载地址

百度地图的路线规划

不能下载?内容有错? 点击这里报错 + 投诉 + 提问

好例子网口号:伸出你的我的手 — 分享

网友评论

发表评论

(您的评论需要经过审核才能显示)

查看所有0条评论>>

小贴士

感谢您为本站写下的评论,您的评论对其它用户来说具有重要的参考价值,所以请认真填写。

  • 类似“顶”、“沙发”之类没有营养的文字,对勤劳贡献的楼主来说是令人沮丧的反馈信息。
  • 相信您也不想看到一排文字/表情墙,所以请不要反馈意义不大的重复字符,也请尽量不要纯表情的回复。
  • 提问之前请再仔细看一遍楼主的说明,或许是您遗漏了。
  • 请勿到处挖坑绊人、招贴广告。既占空间让人厌烦,又没人会搭理,于人于己都无利。

关于好例子网

本站旨在为广大IT学习爱好者提供一个非营利性互相学习交流分享平台。本站所有资源都可以被免费获取学习研究。本站资源来自网友分享,对搜索内容的合法性不具有预见性、识别性、控制性,仅供学习研究,请务必在下载后24小时内给予删除,不得用于其他任何用途,否则后果自负。基于互联网的特殊性,平台无法对用户传输的作品、信息、内容的权属或合法性、安全性、合规性、真实性、科学性、完整权、有效性等进行实质审查;无论平台是否已进行审查,用户均应自行承担因其传输的作品、信息、内容而可能或已经产生的侵权或权属纠纷等法律责任。本站所有资源不代表本站的观点或立场,基于网友分享,根据中国法律《信息网络传播权保护条例》第二十二与二十三条之规定,若资源存在侵权或相关问题请联系本站客服人员,点此联系我们。关于更多版权及免责申明参见 版权及免责申明

;
报警