package com.baidu.mapapi.demo;
import android.os.Bundle;
import android.util.Log;
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.MKPoiInfo;
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.demo.R;
public class BusLineSearch extends MapActivity {
Button mBtnSearch = null; // ������ť
MapView mMapView = null; // ��ͼView
MKSearch mSearch = null; // ����ģ�飬Ҳ��ȥ����ͼģ�����ʹ��
String mCityName = null;
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.buslinesearch);
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(){
/**����poi���������
* ������
* result - �������
* type - ���ؽ������: MKSearch.TYPE_POI_LIST, MKSearch.TYPE_AREA_POI_LIST,MKSearch.TYPE_AREA_MULTI_POI_LIST,MKSearch.TYPE_CITY_LIST
* iError - ����ţ�0��ʾ��ȷ����
*/
public void onGetPoiResult(MKPoiResult res, int type, int error) {
// ����ſɲο�MKEvent�еĶ���
if (error != 0 || res == null) {
Toast.makeText(BusLineSearch.this, "��Ǹ��δ�ҵ����", Toast.LENGTH_LONG).show();
return;
}
// �ҵ�����·��poi node
MKPoiInfo curPoi = null;
int totalPoiNum = res.getNumPois();
for( int idx = 0; idx < totalPoiNum; idx++ ) {
Log.d("busline", "the busline is " + idx);
curPoi = res.getPoi(idx);
if ( 2 == curPoi.ePoiType ) {
break;
}
}
mSearch.busLineSearch(mCityName, curPoi.uid);
}
/**���ؼݳ�·�����������
* ������
* result - �������
* iError - ����ţ�0��ʾ��ȷ���أ�������MKEvent.ERROR_ROUTE_ADDRʱ����ʾ�����յ������壬����MKDrivingRouteResult��getAddrResult������ȡ�Ƽ��������յ���Ϣ
*/
public void onGetDrivingRouteResult(MKDrivingRouteResult res,
int error) {
}
public void onGetTransitRouteResult(MKTransitRouteResult res,
int error) {
}
public void onGetWalkingRouteResult(MKWalkingRouteResult res,
int error) {
}
/**���ص�ַ��Ϣ�������
* ������
* result - �������
* iError - ����ţ�0��ʾ�����ȷ��result������ؽ����Ϣ��100��ʾ�����ȷ������ص�ַ��Ϣ
*/
public void onGetAddrResult(MKAddrInfo res, int error) {
}
/**
* ���ع�����������Ϣ���������
* ������
* result - �������
* iError - ����ţ�0��ʾ��ȷ���أ���������ο�MKEvent���еĶ���
*/
public void onGetBusDetailResult(MKBusLineResult result, int iError) {
if (iError != 0 || result == null) {
Toast.makeText(BusLineSearch.this, "��Ǹ��δ�ҵ����", Toast.LENGTH_LONG).show();
return;
}
RouteOverlay routeOverlay = new RouteOverlay(BusLineSearch.this, mMapView);
// �˴���չʾһ��������Ϊʾ��
routeOverlay.setData(result.getBusRoute());
mMapView.getOverlays().clear();
mMapView.getOverlays().add(routeOverlay);
mMapView.invalidate(); //ˢ��view(ʹ����Ч������Ҫ���»���ͼ��)
mMapView.getController().animateTo(result.getBusRoute().getStart());
}
@Override
public void onGetSuggestionResult(MKSuggestionResult res, int arg1) {
// TODO Auto-generated method stub
}
});
// �趨������ť����Ӧ
mBtnSearch = (Button)findViewById(R.id.search);
OnClickListener clickListener = new OnClickListener(){
public void onClick(View v) {
SearchButtonProcess(v);
}
};
mBtnSearch.setOnClickListener(clickListener);
}
void SearchButtonProcess(View v) {
if (mBtnSearch.equals(v)) {
EditText editCity = (EditText)findViewById(R.id.city);
EditText editSearchKey = (EditText)findViewById(R.id.searchkey);
mCityName = editCity.getText().toString();
mSearch.poiSearchInCity(mCityName, editSearchKey.getText().toString());
}
}
@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;
}
}