package com.baidu.mapapi.demo;
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 com.baidu.mapapi.BMapManager;
import com.baidu.mapapi.MKAddrInfo;
import com.baidu.mapapi.MKBusLineResult;
import com.baidu.mapapi.MKDrivingRouteResult;
import com.baidu.mapapi.MKPlanNode;
import com.baidu.mapapi.MKPoiResult;
import com.baidu.mapapi.MKSearch;
import com.baidu.mapapi.MKSearchListener;
import com.baidu.mapapi.MKSuggestionResult;
import com.baidu.mapapi.MKTransitRouteResult;
import com.baidu.mapapi.MKWalkingRouteResult;
import com.baidu.mapapi.MapActivity;
import com.baidu.mapapi.MapView;
import com.baidu.mapapi.RouteOverlay;
import com.baidu.mapapi.TransitOverlay;
public class RoutePlan extends MapActivity {
Button mBtnDrive = null; // �ݳ�����
Button mBtnTransit = null; // ��������
Button mBtnWalk = null; // ��������
MapView mMapView = null; // ��ͼView
MKSearch mSearch = null; // ����ģ�飬Ҳ��ȥ����ͼģ�����ʹ��
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.routeplan);
BMapApiDemoApp app = (BMapApiDemoApp)this.getApplication();
if (app.mBMapMan == null) {
app.mBMapMan = new BMapManager(getApplication());
app.mBMapMan.init(app.mStrKey, new BMapApiDemoApp.MyGeneralListener());
}
app.mBMapMan.start();
// ���ʹ�õ�ͼSDK�����ʼ����ͼActivity
super.initMapActivity(app.mBMapMan);
mMapView = (MapView)findViewById(R.id.bmapView);
mMapView.setBuiltInZoomControls(true);
//���������Ŷ���������Ҳ��ʾoverlay,Ĭ��Ϊ������
mMapView.setDrawOverlayWhenZooming(true);
// ��ʼ������ģ�飬ע���¼�����
mSearch = new MKSearch();
mSearch.init(app.mBMapMan, new MKSearchListener(){
public void onGetDrivingRouteResult(MKDrivingRouteResult res,
int error) {
// ����ſɲο�MKEvent�еĶ���
if (error != 0 || res == null) {
Toast.makeText(RoutePlan.this, "��Ǹ��δ�ҵ����", Toast.LENGTH_SHORT).show();
return;
}
RouteOverlay routeOverlay = new RouteOverlay(RoutePlan.this, mMapView);
// �˴���չʾһ��������Ϊʾ��
routeOverlay.setData(res.getPlan(0).getRoute(0));
mMapView.getOverlays().clear();
mMapView.getOverlays().add(routeOverlay);
mMapView.invalidate();
mMapView.getController().animateTo(res.getStart().pt);
}
public void onGetTransitRouteResult(MKTransitRouteResult res,
int error) {
if (error != 0 || res == null) {
Toast.makeText(RoutePlan.this, "��Ǹ��δ�ҵ����", Toast.LENGTH_SHORT).show();
return;
}
TransitOverlay routeOverlay = new TransitOverlay (RoutePlan.this, mMapView);
// �˴���չʾһ��������Ϊʾ��
routeOverlay.setData(res.getPlan(0));
mMapView.getOverlays().clear();
mMapView.getOverlays().add(routeOverlay);
mMapView.invalidate();
mMapView.getController().animateTo(res.getStart().pt);
}
public void onGetWalkingRouteResult(MKWalkingRouteResult res,
int error) {
if (error != 0 || res == null) {
Toast.makeText(RoutePlan.this, "��Ǹ��δ�ҵ����", Toast.LENGTH_SHORT).show();
return;
}
RouteOverlay routeOverlay = new RouteOverlay(RoutePlan.this, mMapView);
// �˴���չʾһ��������Ϊʾ��
routeOverlay.setData(res.getPlan(0).getRoute(0));
mMapView.getOverlays().clear();
mMapView.getOverlays().add(routeOverlay);
mMapView.invalidate();
mMapView.getController().animateTo(res.getStart().pt);
}
public void onGetAddrResult(MKAddrInfo res, int error) {
}
public void onGetPoiResult(MKPoiResult res, int arg1, int arg2) {
}
public void onGetBusDetailResult(MKBusLineResult result, int iError) {
}
@Override
public void onGetSuggestionResult(MKSuggestionResult res, int arg1) {
// TODO Auto-generated method stub
}
});
// �趨������ť����Ӧ
mBtnDrive = (Button)findViewById(R.id.drive);
mBtnTransit = (Button)findViewById(R.id.transit);
mBtnWalk = (Button)findViewById(R.id.walk);
OnClickListener clickListener = new OnClickListener(){
public void onClick(View v) {
SearchButtonProcess(v);
}
};
mBtnDrive.setOnClickListener(clickListener);
mBtnTransit.setOnClickListener(clickListener);
mBtnWalk.setOnClickListener(clickListener);
}
void SearchButtonProcess(View v) {
// ����������ť��Ӧ
EditText editSt = (EditText)findViewById(R.id.start);
EditText editEn = (EditText)findViewById(R.id.end);
// ������յ��name���и�ֵ��Ҳ����ֱ�Ӷ����긳ֵ����ֵ�������������������
MKPlanNode stNode = new MKPlanNode();
stNode.name = editSt.getText().toString();
MKPlanNode enNode = new MKPlanNode();
enNode.name = editEn.getText().toString();
// ʵ��ʹ�����������յ���н�����ȷ���趨
if (mBtnDrive.equals(v)) {
mSearch.drivingSearch("����", stNode, "�Ϻ�", enNode);
} else if (mBtnTransit.equals(v)) {
mSearch.transitSearch("����", stNode, enNode);
} else if (mBtnWalk.equals(v)) {
mSearch.walkingSearch("����", stNode, "����", enNode);
}
}
@Override
protected void onPause() {
BMapApiDemoApp app = (BMapApiDemoApp)this.getApplication();
app.mBMapMan.stop();
super.onPause();
}
@Override
protected void onResume() {
BMapApiDemoApp app = (BMapApiDemoApp)this.getApplication();
app.mBMapMan.start();
super.onResume();
}
@Override
protected boolean isRouteDisplayed() {
// TODO Auto-generated method stub
return false;
}
}