osmdriod maps apiを使用してナビゲーションを実装する必要があります。活性は、以下の受信機を使用して、ロケーションサービスから放送を受信する。続いOsmdroidマーカーが更新されない
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のように現在の位置が変化したときに放送受信機が呼び出されると、
ただ1つの現在の位置マーカーが必要で、更新される2つのマーカーの間に1本のポリラインが存在する必要があります。
更新プログラムの1つを削除しますか? – spy