/** Called when the activity is first created.*/
/** 上下文*/
privateBMapApiApplication mApplication;/** 定义搜索服务类*/
privateMKSearch mMKSearch;/** 记录当前经纬度的MAP*/
private HashMap mCurLocation = new HashMap();//城市名
privateString cityName;
@Overridepublic voidonCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
mApplication= (BMapApiApplication) this.getApplication();if (mApplication.mBMapMan == null) {
mApplication.mBMapMan= newBMapManager(getApplication());
mApplication.mBMapMan.init(mApplication.mStrKey,newBMapApiApplication.MyGeneralListener());
}/** 初始化MKSearch*/mMKSearch= newMKSearch();
mMKSearch.init(mApplication.mBMapMan,newMySearchListener());
}
@Overrideprotected voidonStart() {//TODO Auto-generated method stub
super.onStart();this.registerLocationListener();
}private voidregisterLocationListener() {
mApplication.mBMapMan.getLocationManager().requestLocationUpdates(
mLocationListener);if (mApplication.mBMapMan != null) {/** 开启百度地图API*/mApplication.mBMapMan.start();
}
}
@Overrideprotected voidonStop() {//TODO Auto-generated method stub
super.onStop();this.unRegisterLocationListener();
}private voidunRegisterLocationListener() {
mApplication.mBMapMan.getLocationManager().removeUpdates(
mLocationListener);if (mApplication.mBMapMan != null) {/** 终止百度地图API*/mApplication.mBMapMan.stop();
}
}
@Overrideprotected voidonDestroy() {if (mApplication.mBMapMan != null) {/** 程序退出前需调用此方法*/mApplication.mBMapMan.destroy();
mApplication.mBMapMan= null;
}
super.onDestroy();
}/** 注册定位事件*/
private LocationListener mLocationListener = newLocationListener() {
@Overridepublic voidonLocationChanged(Location location) {//TODO Auto-generated method stub
if (location != null) {try{int longitude = (int) (1000000 *location.getLongitude());int latitude = (int) (1000000 *location.getLatitude());/** 保存当前经纬度*/mCurLocation.put("longitude", location.getLongitude());
mCurLocation.put("latitude", location.getLatitude());
GeoPoint point= newGeoPoint(latitude, longitude);/** 查询该经纬度值所对应的地址位置信息*/Weather_WelcomeActivity.this.mMKSearch
.reverseGeocode(newGeoPoint(latitude, longitude));
}catch(Exception e) {
e.printStackTrace();
}
}
}
};/** 内部类实现MKSearchListener接口,用于实现异步搜索服务*/
private classMySearchListener implements MKSearchListener {
@Overridepublic void onGetAddrResult(MKAddrInfo result, intiError) {if( iError != 0 || result == null){
Toast.makeText(Weather_WelcomeActivity.this, "获取地理信息失败", Toast.LENGTH_LONG).show();
}else{
Log.info("json", "result=" +result);
cityName=result.addressComponents.city;
Bundle bundle= newBundle();
bundle.putString("cityName", cityName.substring(0, cityName.lastIndexOf("市")));
Intent intent= new Intent(Weather_WelcomeActivity.this,Weather_MainActivity.class);
intent.putExtras(bundle);
startActivity(intent);
Weather_WelcomeActivity.this.finish();
}
}
@Overridepublic voidonGetDrivingRouteResult(MKDrivingRouteResult result,intiError) {
}
@Overridepublic void onGetPoiResult(MKPoiResult result, int type, intiError) {
}
@Overridepublic voidonGetTransitRouteResult(MKTransitRouteResult result,intiError) {
}
@Overridepublic voidonGetWalkingRouteResult(MKWalkingRouteResult result,intiError) {
}
}