8

Aktualnie mam mapę, a każde 10 metrów używam LocationListener do odświeżenia mojej lokalizacji i uzyskania nowej szerokości i długości geograficznej. Teraz chciałbym, aby trasa, którą użytkownik wybiera, będzie wyświetlana czerwoną linią. Za każdym razem, gdy wywoływana jest klasa OnLocationChange() z klasy LocationListener, chcę zaktualizować mapę za pomocą linii między ostatnią lokalizacją a nową lokalizacją.Polilinia Android - Dodawanie punktu według punktu

tej pory Dodałem następujące:

private void initializeDraw() { 
    lineOptions = new PolylineOptions().width(5).color(Color.RED); 
    lineRoute = workoutMap.addPolyline(lineOptions); 
} 

podczas OnLocationChanged nazywam to:

drawTrail(); 

teraz co mam wstawić do tej funkcji, tak aby za każdym razem dodaje nowo osiągnął lokalizację jako punkt i narysował linię od ostatniego do nowego punktu.

Dzięki

Odpowiedz

11

Pierwszy tłumaczyć Location do LatLng:

LatLng newPoint = new LatLng(location.getLatitude(), location.getLongitude()); 

Następnie dodać punkt do istniejącej listy punktów:

List<LatLng> points = lineRoute.getPoints(); 
points.add(newPoint); 
lineRoute.setPoints(points);