Mehrere overlay-Elemente in android

Ich scheine zu sein, ein problem mit Hilfe ItemizedOverlay und OveralyItems.

Ich mit den ersten overlayItem erscheinen auf der Karte aber nicht alle Elemente nach.

Code-Beispiel ist auf:
http://www.anddev.org/multiple_overlay_items-t12171.html

Schnellen überblick hier:

public class Markers extends ItemizedOverlay {

 private Context ctx;

 private ArrayList<OverlayItem> mOverlays = new ArrayList<OverlayItem>();

 public Markers(Drawable defaultMarker, Context cont) {

      super(boundCenterBottom(defaultMarker));
      this.ctx = cont;
      //TODO Auto-generated constructor stub
 }

 @Override
 protected OverlayItem createItem(int i) {
      //TODO Auto-generated method stub
      return mOverlays.get(i);
 }

 @Override
 public boolean onTap(GeoPoint p, MapView mapView) {
      //TODO Auto-generated method stub
      return super.onTap(p, mapView);
 }


 @Override
 protected boolean onTap(int index) {
      //TODO Auto-generated method stub
      Toast.makeText(this.ctx, mOverlays.get(index).getTitle().toString()+", Latitude: "+mOverlays.get(index).getPoint().getLatitudeE6(), Toast.LENGTH_SHORT).show();
      return super.onTap(index);         
 }

 @Override
 public int size() {
      //TODO Auto-generated method stub
      return mOverlays.size();
 }

 public void addOverlay(OverlayItem item) {
      mOverlays.add(item);
      setLastFocusedIndex(-1);
      populate();

 }

 public void clear() {
      mOverlays.clear();
      setLastFocusedIndex(-1);
      populate();
 }
}

Proben, wie es verwendet wird:

Markers usersMarker = new Markers(user,overview.this); 
GeoPoint p = new GeoPoint((int) (lat * 1E6),(int) (lon * 1E6));
OverlayItem item = new OverlayItem(p,userData[0],userData[3]);
item.setMarker(this.user);
usersMarker.addOverlay(item); 

den ersten marker zeigt auf die Karte, aber wenn ich noch mehr Sie nicht zeigen, bis? Ist es ein problem mit dem füllen () - Methode? Ich habe versucht, es manuell nach dem hinzufügen aller Marken, aber es immer noch nicht helfen. Bitte, wenn Sie eine Idee haben, was falsch sein könnte, so zu sagen.

nennst du invalidate() oder postInvalidate() in Ihrer Aktivität mit der mapview?
Ja, nach dem hinzufügen der ItemizedOverlay map Overlays ich invalidate aufrufen...es hilft nicht wenn

InformationsquelleAutor Bostjan | 2010-03-19

Schreibe einen Kommentar