package edu.minggo.chat.ui;
import java.util.ArrayList;
import java.util.List;
import android.content.Context;
import android.graphics.Point;
import android.graphics.drawable.Drawable;
import android.os.Bundle;
import android.util.Log;
import android.view.KeyEvent;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import com.baidu.mapapi.BMapManager;
import com.baidu.mapapi.GeoPoint;
import com.baidu.mapapi.ItemizedOverlay;
import com.baidu.mapapi.MapActivity;
import com.baidu.mapapi.MapView;
import com.baidu.mapapi.OverlayItem;
import edu.minggo.chat.R;
import edu.minggo.chat.util.BaiMapGlobalApplication;
public class PersonnelLocation extends MapActivity{
private MapView mMapView;
private OverItemTs overitem;
private GeoPoint geoPoint;
private Button backButton;
private BaiMapGlobalApplication app;
public static double Lon;
public static double Lat;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.personnel_location);
Lon = Double.valueOf(this.getIntent().getStringExtra("Lon"));
Lat = Double.valueOf(this.getIntent().getStringExtra("Lat"));
geoPoint = new GeoPoint((int) (Lat * 1E6), (int) (Lon * 1E6));
app = (BaiMapGlobalApplication)this.getApplication();
if (app.mBMapMan == null) {
app.mBMapMan = new BMapManager(getApplication());
app.mBMapMan.init(app.mStrKey, new BaiMapGlobalApplication.MyGeneralListener());
}
app.mBMapMan.start();
super.initMapActivity(app.mBMapMan);
mMapView = (MapView) findViewById(R.id.personnel_location_mapView);
mMapView.setBuiltInZoomControls(true);
mMapView.setDrawOverlayWhenZooming(true);
mMapView.getController().setCenter(geoPoint);
mMapView.getController().setZoom(18);
Drawable mdDrawable = this.getResources().getDrawable(R.drawable.title_location_nor);
mdDrawable.setBounds(0, 0, mdDrawable.getIntrinsicWidth(), mdDrawable.getIntrinsicHeight());
overitem = new OverItemTs(mdDrawable, this, geoPoint,"");
mMapView.getOverlays().add(overitem); //���ItemizedOverlayʵ����mMapView
backButton = (Button)findViewById(R.id.personnel_location_backbtn);
backButton.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
app = (BaiMapGlobalApplication)PersonnelLocation.this.getApplication();
mMapView.destroyDrawingCache();
app.mBMapMan.stop();
PersonnelLocation.this.finish();
}
});
}
@Override
protected void onPause() {
BaiMapGlobalApplication app = (BaiMapGlobalApplication)this.getApplication();
app.mBMapMan.stop();
super.onPause();
}
@Override
protected void onResume() {
BaiMapGlobalApplication app = (BaiMapGlobalApplication)this.getApplication();
app.mBMapMan.start();
super.onResume();
}
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if(keyCode == KeyEvent.KEYCODE_BACK){
app = (BaiMapGlobalApplication)this.getApplication();
mMapView.destroyDrawingCache();
app.mBMapMan.stop();
PersonnelLocation.this.finish();
}
return super.onKeyDown(keyCode, event);
}
@Override
protected boolean isRouteDisplayed() {
return false;
}
}
class OverItemTs extends ItemizedOverlay<OverlayItem>{
private List<OverlayItem> mGeoList = new ArrayList<OverlayItem>();
public OverItemTs(Drawable marker, Context context, GeoPoint pt, String title) {
super(boundCenterBottom(marker));
mGeoList.add(new OverlayItem(pt, title, null));
populate();
}
@Override
protected OverlayItem createItem(int i) {
return mGeoList.get(i);
}
@Override
public int size() {
return mGeoList.size();
}
@Override
public boolean onSnapToItem(int i, int j, Point point, MapView mapview) {
Log.e("ItemizedOverlayDemo","enter onSnapToItem()!");
return false;
}
}