基本信息
源码名称:百度地图的路线规划
源码大小:1.92M
文件格式:.rar
开发语言:Java
更新时间:2014-07-04
友情提示:(无需注册或充值,赞助后即可获取资源下载链接)
嘿,亲!知识可是无价之宝呢,但咱这精心整理的资料也耗费了不少心血呀。小小地破费一下,绝对物超所值哦!如有下载和支付问题,请联系我们QQ(微信同号):813200300
本次赞助数额为: 2 元×
微信扫码支付:2 元
×
请留下您的邮箱,我们将在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(); } }