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