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
Ja, nach dem hinzufügen der ItemizedOverlay map Overlays ich invalidate aufrufen...es hilft nicht wenn
InformationsquelleAutor Bostjan | 2010-03-19
Schreibe einen Kommentar Antworten abbrechen
Du musst angemeldet sein, um einen Kommentar abzugeben.
überprüfen Sie dieses Beispiel Projekt es hilft. fügen Sie mehrere addOverlay()N auf ur mehrere Male
InformationsquelleAutor Praveen
Ich habe ein funktionierendes Programm, das fast genauso aussieht wie deiner, ausser das ich nicht nennen, setLastFocusedIndex in meinem addOverlay Funktion. Versuchen Sie, kommentieren Sie es aus und sehen, ob es funktioniert.
InformationsquelleAutor Mark Borgerding
Habe ich endlich eine Antwort gefunden. Ich bin ganz beschämt, es zugeben zu müssen, aber das problem war nicht in den Artikel nicht zeichnen, aber in mir nicht sehen, wie Sie auf dem Bildschirm....Die Standorte für die 2 items wurden soll fast identisch sein...aber einer von Ihnen berechnet wurde, mit einem bug und wurde verschoben auf halbem Weg um die Welt.
Also ich habe nie die Mühe gemacht, zu schauen oder zu verkleinern...wenn ich Tat, ich fand meine anderen Markierer sitzen somewehre in der Öden ' s Meer 🙂 vielen Dank an alle, die versucht haben mir zu helfen...ach ja, und der obige code funktioniert 🙂
InformationsquelleAutor Bostjan