Я не знаю, что именно вы пытаетесь сделать здесь, но я вижу некоторые ошибки:
- объявление класса неверно (вы должны использовать MapActivity, а не Activity):
открытый класс GpsoverlayActivity расширяет MapActivity
о gp, вы не указали значение в нем, вставьте любую широту и долготу, как это:
GeoPoint gp= new GeoPoint((int)(26.2*1.0E6), (int)(52.6*1.0E6));
если вы пытаетесь пометить на карте, я предлагаю вам создать еще один класс, расширяющий ItemizedOverlay, как эта структура:
public class MapViewItemizedOverlay extends ItemizedOverlay {
private ArrayList<OverlayItem> mOverlays = new ArrayList<OverlayItem>();
private Context mContext;
public MapViewItemizedOverlay(Drawable defaultMarker, Context context) {
super(boundCenterBottom(defaultMarker));
// TODO Auto-generated constructor stub
mContext = context;
}
@Override
protected OverlayItem createItem(int i) {
return mOverlays.get(i);
}
@Override
public int size() {
// TODO Auto-generated method stub
return mOverlays.size();
}
public void addOverlay(OverlayItem overlay) {
mOverlays.add(overlay);
populate();
}
@Override
public boolean onTap(int index)
{
//get the marker on the map from here
OverlayItem item = mOverlays.get(index);
OverlayItem item=getItem(i);
GeoPoint geo=item.getPoint();
Point pt=map.getProjection().toPixels(geo, null);
String message=String.format("Lat: %f | Lon: %f\nX: %d | Y %d",
geo.getLatitudeE6()/1000000.0,
geo.getLongitudeE6()/1000000.0,
pt.x, pt.y);
Toast.makeText(getApplicationContext(),
message,
Toast.LENGTH_LONG).show();
return true;
}
и использовать его следующим образомв MapActivity:
MapView mapView = (MapView) findViewById(R.id.mapview);
MapController mc = mapView.getController();
List<Overlay> mapOverlays = mapView.getOverlays();
//add any icon here for the marker
Drawable drawable = MainActivity.this.getResources().getDrawable(R.drawable.icon);
MapViewItemizedOverlay itemizedOverlay = new MapViewItemizedOverlay(drawable,this);
//insert any lat and lng as integers here
GeoPoint point1 = new GeoPoint(lat,lng);
OverlayItem overlayitem1 = new OverlayItem(point1, "Info", "You are here!" );
itemizedOverlay.addOverlay(overlayitem1);
mapOverlays.add(itemizedOverlay);
mc.animateTo(point1);