Ich habe eine googlemap App, die zwei Elemente (itemizedoverlay Klasse) anzeigt, und ich habe eine Update-Schaltfläche. Wenn ich die Aktualisierungsschaltfläche drücke, möchte ich die Elemente aus der Karte entfernen und dieselben Elemente mit den neuen Breiten- und Längenwerten erneut einfügen (ich habe einen Dienst, der die Breiten- und Längengradfelder aktualisiert, die ich in sharedPreferences habe, und auch ich empfange die andere Position durch ein Bündel)Wie aktualisiere ich die Positionen der Elemente in einer googlemap?
was mache ich falsch? wenn ich meinen Code versuchen, nicht die Elemente der Karte nicht entfernt werden .... nur neue Objekte erscheinen ... aber ich mag die alten
updateButton.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
mapOverlays.clear();
updateMyPosition();
updateFriendPosition();
}
});
und das sind meine beiden Funktionen entfernen:
private void updateFriendPosition()
{
Bundle bundle = this.getIntent().getExtras();//get the intent & bundle passed by X
userText.setText(bundle.getString("user"));
permissionText.setText(bundle.getString("permission"));
lastUpdateText.setText(bundle.getString("lastupdate"));
String coordinates[] = {bundle.getString("lat"), bundle.getString("lon")};
lat = Double.parseDouble(coordinates[0]);
lng = Double.parseDouble(coordinates[1]);
p = new GeoPoint((int) (lat * 1E6), (int) (lng * 1E6));
OverlayItem overlayitem1 = new OverlayItem(p, bundle.getString("user"), "Hi Friend!");
itemizedoverlay.addOverlay(overlayitem1);
mapOverlays.add(itemizedoverlay);// dibujo la estrella con la posicion actual del friend
mc.animateTo(p); ///nos centra el mapa en la posicion donde esta nuestro amigo
mc.setZoom(10); /// ajusta el zoom a 10
}
private void updateMyPosition()
{
String coordinates[] = {settings.getString("mylatitude", null),settings.getString("mylongitude", null)};
lat = Double.parseDouble(coordinates[0]);
lng = Double.parseDouble(coordinates[1]);
p = new GeoPoint((int) (lat * 1E6), (int) (lng * 1E6));
OverlayItem overlayitem1 = new OverlayItem(p, "Me", "My Position");
itemizedoverlay2.addOverlay(overlayitem1);
mapOverlays.add(itemizedoverlay2);//dibujo mi icono para mostrarme a mi
}
i auch mit invalidate() auf der mapview tryed aber es funktioniert nicht ... noch die alten Gegenstände malen ...
Dank! hehe gelöst vielleicht kannst du mir auch bei dieser Frage helfen? http://stackoverflow.com/questions/4216231/how-to-actualice-the-positions-of-the-items-in-a-googlemap – NullPointerException
Froh, dass es funktioniert hat. Dein Link zu deiner anderen Frage verweist jedoch auf diesen! – NickT
oh sorry, überprüfen Sie dies: http://stackoverflow.com/questions/4217090/why-this-thread-doesnt-work – NullPointerException