Мне нужно сделать навигацию с использованием osmdriod maps api. Активность принимает широковещательные от службы определения местоположения, используя следующий приемник:Osmdroid marker обновить
public class ReceiveMessages extends BroadcastReceiver
{
@Override
public void onReceive(Context context, Intent intent)
{
String lat = intent.getStringExtra("Latitude");
String lon = intent.getStringExtra("Longitude");
System.out.println("on recieve called "+lat+lon);
updateUi(Double.parseDouble(lat),Double.parseDouble(lon));
}
}
Ниже updateUi метод:
public void updateUi(Double lat,Double lon) {
gPt1 = new GeoPoint(lat, lon);
Marker endMarker = new Marker(mMapView);
endMarker.setPosition(gPt1);
endMarker.setTitle("Current Position"+lat+" "+lon);
mMapView.getOverlays().add(endMarker);
Polyline pl = new Polyline();
pl.setWidth(5f);
pl.setColor(Color.RED);
List<GeoPoint> pts = new ArrayList<>();
pts.add(gPt0);
pts.add(gPt1);
pl.setPoints(pts);
pl.setGeodesic(true);
mMapView.getOverlayManager().add(pl);
mMapView.invalidate();
}
Теперь то, что происходит в том, что текущие маркеры положения становятся добавлены один над другим, как и когда вызывается широковещательный приемник при изменении текущей позиции, например here, here.
Мне нужен только один маркер текущей позиции, и одна единственная поли линия должна присутствовать между 2-мя маркерами, которые обновляются.
Удалить из списка обновлений? – spy