package apt.tutorial.two;
import android.app.Activity;
import android.graphics.Canvas;
import android.graphics.drawable.Drawable;
import android.os.Bundle;
import android.view.ViewGroup;
import android.widget.Toast;
import com.google.android.maps.GeoPoint;
import com.google.android.maps.ItemizedOverlay;
import com.google.android.maps.MapActivity;
import com.google.android.maps.MapController;
import com.google.android.maps.MapView;
import com.google.android.maps.OverlayItem;
public class StatusMap extends MapActivity {
private MapView map=null;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.status_map);
map=(MapView)findViewById(R.id.map);
map.getController().setZoom(17);
double lat=getIntent().getDoubleExtra(Patchy.LATITUDE, 0);
double lon=getIntent().getDoubleExtra(Patchy.LONGITUDE, 0);
GeoPoint status=new GeoPoint((int)(lat*1000000.0),
(int)(lon*1000000.0));
map.getController().setCenter(status);
map.setBuiltInZoomControls(true);
String statusText=getIntent().getStringExtra(Patchy.STATUS_TEXT);
Drawable marker=getResources().getDrawable(R.drawable.marker);
marker.setBounds(0, 0, marker.getIntrinsicWidth(),
marker.getIntrinsicHeight());
map.getOverlays().add(new StatusOverlay(marker, status,
statusText));
}
@Override
protected boolean isRouteDisplayed() {
return(false);
}
private class StatusOverlay extends ItemizedOverlay<OverlayItem> {
private OverlayItem item=null;
private Drawable marker=null;
public StatusOverlay(Drawable marker, GeoPoint status,
String statusText) {
super(marker);
this.marker=marker;
item=new OverlayItem(status, "Tweet!", statusText);
populate();
}
@Override
protected OverlayItem createItem(int i) {
return(item);
}
@Override
public void draw(Canvas canvas, MapView mapView,
boolean shadow) {
super.draw(canvas, mapView, shadow);
boundCenterBottom(marker);
}
@Override
protected boolean onTap(int i) {
Toast.makeText(StatusMap.this,
item.getSnippet(),
Toast.LENGTH_SHORT).show();
return(true);
}
@Override
public int size() {
return(1);
}
}
}