itemizedoverlay не будет показывать какие-либо элементы на карте - PullRequest
0 голосов
/ 01 февраля 2012

Я пробежался по этому уроку пару раз и пытался найти предмет, который можно было бы показать на моей карте, но, похоже, с ним ничего не получилось. Насколько я понимаю, я не ошибаюсь ни в одном из своих кодов, но если кто-нибудь сможет понять, почему мой предмет не будет перекрывать мою карту, это было бы здорово.

это моя карта:

public class HelloMapViewActivity extends MapActivity {
    @Override
    protected boolean isRouteDisplayed() 
    {
        return false;
    }

    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) 
    {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        MapView mapView = (MapView) findViewById(R.id.mapview);
        mapView.setBuiltInZoomControls(true);

        GeoPoint point = new GeoPoint(34420800, -119698200);
        OverlayItem overlayitem = new OverlayItem(point, "Hola, Mundo!", "I'm in Mexico City!");

        List<Overlay> mapOverlays = mapView.getOverlays();
        Drawable drawable = this.getResources().getDrawable(R.drawable.androidmarker);
        HelloItemizedOverlay itemizedoverlay = new HelloItemizedOverlay(drawable, HelloMapViewActivity.this);

        itemizedoverlay.addOverlay(overlayitem);
        mapOverlays.add(itemizedoverlay);

        MapController mapcontroller = mapView.getController();
        mapcontroller.animateTo(point);
        mapcontroller.setZoom(15);
    }

}

Здесь также есть класс itemizedoverlay:

public class HelloItemizedOverlay extends ItemizedOverlay<OverlayItem> {
    private ArrayList<OverlayItem> mOverlays = new ArrayList<OverlayItem>();
    Context mContext;

    public HelloItemizedOverlay(Drawable defaultMarker, Context context) {
        super(defaultMarker);
        mContext = context;

    }

    public void addOverlay(OverlayItem overlay) {
        mOverlays.add(overlay);
        populate();
    }

    @Override
    protected OverlayItem createItem(int i) {
      return mOverlays.get(i);
    }

    @Override
    public int size() {
      return mOverlays.size();
    }

    @Override
    protected boolean onTap(int index) {
      OverlayItem item = mOverlays.get(index);
      AlertDialog.Builder dialog = new AlertDialog.Builder(mContext);
      dialog.setTitle(item.getTitle());
      dialog.setMessage(item.getSnippet());
      dialog.show();
      return true;
    }



}

Я действительно только что следовал учебному пособию, и все выглядит как надо, но оно загрузит карту, но на ней не будет ни одного предмета, где я установил свою точку зрения. также нет ошибок. любая помощь будет отличной

1 Ответ

2 голосов
/ 01 февраля 2012

Добавить следующий конструктор в класс HelloItemizedOverlay.

public HelloItemizedOverlay(Drawable defaultMarker) { super(boundCenterBottom(defaultMarker)); }

...