package com.baidu.mapapi.demo;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ListView;
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.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.PoiOverlay;
import com.baidu.mapapi.demo.R;
public class PoiSearch extends MapActivity {
Button mBtnSearch = null; // ������ť
Button mSuggestionSearch = null; //suggestion����
ListView mSuggestionList = null;
public static String mStrSuggestions[] = {};
MapView mMapView = null; // ��ͼView
MKSearch mSearch = null; // ����ģ�飬Ҳ��ȥ����ͼģ�����ʹ��
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.poisearch);
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 onGetPoiResult(MKPoiResult res, int type, int error) {
// ����ſɲο�MKEvent�еĶ���
if (error != 0 || res == null) {
Toast.makeText(PoiSearch.this, "��Ǹ��δ�ҵ����", Toast.LENGTH_LONG).show();
return;
}
// ����ͼ�ƶ�����һ��POI���ĵ�
if (res.getCurrentNumPois() > 0) {
// ��poi�����ʾ����ͼ��
PoiOverlay poiOverlay = new PoiOverlay(PoiSearch.this, mMapView);
poiOverlay.setData(res.getAllPoi());
mMapView.getOverlays().clear();
mMapView.getOverlays().add(poiOverlay);
mMapView.invalidate();
mMapView.getController().animateTo(res.getPoi(0).pt);
} else if (res.getCityListNum() > 0) {
String strInfo = "��";
for (int i = 0; i < res.getCityListNum(); i++) {
strInfo += res.getCityListInfo(i).city;
strInfo += ",";
}
strInfo += "�ҵ����";
Toast.makeText(PoiSearch.this, strInfo, Toast.LENGTH_LONG).show();
}
}
public void onGetDrivingRouteResult(MKDrivingRouteResult res,
int error) {
}
public void onGetTransitRouteResult(MKTransitRouteResult res,
int error) {
}
public void onGetWalkingRouteResult(MKWalkingRouteResult res,
int error) {
}
public void onGetAddrResult(MKAddrInfo res, int error) {
}
public void onGetBusDetailResult(MKBusLineResult result, int iError) {
}
@Override
public void onGetSuggestionResult(MKSuggestionResult res, int arg1) {
// TODO Auto-generated method stub
if (arg1 != 0 || res == null) {
Toast.makeText(PoiSearch.this, "��Ǹ��δ�ҵ����", Toast.LENGTH_LONG).show();
return;
}
int nSize = res.getSuggestionNum();
mStrSuggestions = new String[nSize];
for (int i = 0; i < nSize; i++) {
mStrSuggestions[i] = res.getSuggestion(i).city + res.getSuggestion(i).key;
}
ArrayAdapter<String> suggestionString = new ArrayAdapter<String>(PoiSearch.this, android.R.layout.simple_list_item_1,mStrSuggestions);
mSuggestionList.setAdapter(suggestionString);
Toast.makeText(PoiSearch.this, "suggestion callback", Toast.LENGTH_LONG).show();
}
});
mSuggestionList = (ListView) findViewById(R.id.listView1);
// �趨������ť����Ӧ
mBtnSearch = (Button)findViewById(R.id.search);
OnClickListener clickListener = new OnClickListener(){
public void onClick(View v) {
SearchButtonProcess(v);
}
};
mBtnSearch.setOnClickListener(clickListener);
// �趨suggestion��Ӧ
mSuggestionSearch = (Button)findViewById(R.id.suggestionsearch);
OnClickListener clickListener1 = new OnClickListener(){
public void onClick(View v) {
SuggestionSearchButtonProcess(v);
}
};
mSuggestionSearch.setOnClickListener(clickListener1);
}
void SearchButtonProcess(View v) {
if (mBtnSearch.equals(v)) {
Intent intent = null;
intent = new Intent(PoiSearch.this, MapViewDemo.class);
this.startActivity(intent);
EditText editCity = (EditText)findViewById(R.id.city);
EditText editSearchKey = (EditText)findViewById(R.id.searchkey);
mSearch.poiSearchInCity(editCity.getText().toString(),
editSearchKey.getText().toString());
}
}
void SuggestionSearchButtonProcess(View v) {
EditText editSearchKey = (EditText)findViewById(R.id.suggestionkey);
mSearch.suggestionSearch(
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;
}
}