package baidumapsdk.demo;
import android.app.Activity;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Toast;
import com.baidu.mapapi.cloud.BoundSearchInfo;
import com.baidu.mapapi.cloud.CloudListener;
import com.baidu.mapapi.cloud.CloudManager;
import com.baidu.mapapi.cloud.CloudPoiInfo;
import com.baidu.mapapi.cloud.CloudSearchResult;
import com.baidu.mapapi.cloud.DetailSearchInfo;
import com.baidu.mapapi.cloud.DetailSearchResult;
import com.baidu.mapapi.cloud.LocalSearchInfo;
import com.baidu.mapapi.cloud.NearbySearchInfo;
import com.baidu.mapapi.map.BaiduMap;
import com.baidu.mapapi.map.BitmapDescriptor;
import com.baidu.mapapi.map.BitmapDescriptorFactory;
import com.baidu.mapapi.map.MapStatusUpdate;
import com.baidu.mapapi.map.MapStatusUpdateFactory;
import com.baidu.mapapi.map.MapView;
import com.baidu.mapapi.map.MarkerOptions;
import com.baidu.mapapi.map.OverlayOptions;
import com.baidu.mapapi.model.LatLng;
import com.baidu.mapapi.model.LatLngBounds;
import com.baidu.mapapi.model.LatLngBounds.Builder;
public class CloudSearchActivity extends Activity implements CloudListener {
private static final String LTAG = CloudSearchActivity.class
.getSimpleName();
private MapView mMapView;
private BaiduMap mBaiduMap;
@Override
protected void onCreate(Bundle icicle) {
super.onCreate(icicle);
setContentView(R.layout.activity_lbssearch);
CloudManager.getInstance().init(CloudSearchActivity.this);
mMapView = (MapView) findViewById(R.id.bmapView);
mBaiduMap = mMapView.getMap();
findViewById(R.id.regionSearch).setOnClickListener(
new OnClickListener() {
@Override
public void onClick(View v) {
LocalSearchInfo info = new LocalSearchInfo();
info.ak = "B266f735e43ab207ec152deff44fec8b";
info.geoTableId = 31869;
info.tags = "";
info.q = "天安门";
info.region = "北京市";
CloudManager.getInstance().localSearch(info);
}
});
findViewById(R.id.nearbySearch).setOnClickListener(
new OnClickListener() {
public void onClick(View v) {
NearbySearchInfo info = new NearbySearchInfo();
info.ak = "D9ace96891048231e8777291cda45ca0";
info.geoTableId = 32038;
info.radius = 30000;
info.location = "116.403689,39.914957";
CloudManager.getInstance().nearbySearch(info);
}
});
findViewById(R.id.boundsSearch).setOnClickListener(
new OnClickListener() {
public void onClick(View v) {
BoundSearchInfo info = new BoundSearchInfo();
info.ak = "B266f735e43ab207ec152deff44fec8b";
info.geoTableId = 31869;
info.q = "天安门";
info.bound = "116.401663,39.913961;116.406529,39.917396";
CloudManager.getInstance().boundSearch(info);
}
});
findViewById(R.id.detailsSearch).setOnClickListener(
new OnClickListener() {
public void onClick(View v) {
DetailSearchInfo info = new DetailSearchInfo();
info.ak = "B266f735e43ab207ec152deff44fec8b";
info.geoTableId = 31869;
info.uid = 18622266;
CloudManager.getInstance().detailSearch(info);
}
});
}
@Override
protected void onDestroy() {
super.onDestroy();
mMapView.onDestroy();
CloudManager.getInstance().destroy();
}
@Override
protected void onPause() {
super.onPause();
mMapView.onPause();
}
@Override
protected void onResume() {
super.onResume();
mMapView.onResume();
}
public void onGetDetailSearchResult(DetailSearchResult result, int error) {
if (result != null) {
if (result.poiInfo != null) {
Toast.makeText(CloudSearchActivity.this, result.poiInfo.title,
Toast.LENGTH_SHORT).show();
} else {
Toast.makeText(CloudSearchActivity.this,
"status:" + result.status, Toast.LENGTH_SHORT).show();
}
}
}
public void onGetSearchResult(CloudSearchResult result, int error) {
if (result != null && result.poiList != null
&& result.poiList.size() > 0) {
Log.d(LTAG, "onGetSearchResult, result length: " + result.poiList.size());
mBaiduMap.clear();
BitmapDescriptor bd = BitmapDescriptorFactory.fromResource(R.drawable.icon_gcoding);
LatLng ll;
LatLngBounds.Builder builder = new Builder();
for (CloudPoiInfo info : result.poiList) {
ll = new LatLng(info.latitude, info.longitude);
OverlayOptions oo = new MarkerOptions().icon(bd).position(ll);
mBaiduMap.addOverlay(oo);
builder.include(ll);
}
LatLngBounds bounds = builder.build();
MapStatusUpdate u = MapStatusUpdateFactory.newLatLngBounds(bounds);
mBaiduMap.animateMapStatus(u);
}
}
}