Voglio tracciare la mia traccia utilizzando il GPS su un dispositivo Android.Come visualizzare una traccia mobile sul dispositivo Android
Non ho alcun problema a visualizzare un percorso completato ma trovo difficile mostrare la traccia mentre mi sto spostando.
Finora, ho trovato 2 modi diversi per farlo, ma nessuno dei due è particolarmente soddisfacente.
METODO 1
PolylineOptions track = new PolylineOptions();
Polyline poly;
while (moving) {
Latlng coord = new LatLng(lat,lng); // from LocationListener
track.add(coord);
if (poly != null) {
poly.remove();
}
poly = map.addPolyline(track);
}
cioè costruire la polilinea di rimuoverla prima di aggiungere le nuove coordinate e poi aggiungerlo indietro.
Questo è tremendamente lento.
METODO 2
oldcoord = new LatLng(lat,lng);;
while (moving) {
PolylineOptions track = new PolylineOptions();
LatLng coord = new (LatLng(lat,lng);
track.add(oldcoord);
track.add(coord);
map.addPolyline(track);
oldcoord = coord;
}
cioè tracciare una serie di singole polilinee.
Mentre questo rende molto più veloce del Metodo 1, sembra piuttosto frastagliato, in particolare a livelli di zoom inferiori perché ogni polilinea è squadrata e sono solo gli angoli che effettivamente toccano.
C'è un modo migliore e, in caso affermativo, di cosa si tratta?
Grazie per la risposta. Alla fine mi sono inventato questo (il mio metodo 1). Il problema che stavo avendo era che quando eseguivo un'iterazione attraverso una lista di coordinate Array che costruiva e rimuoveva la polilinea, l'elaborazione richiedeva per sempre. Tuttavia, quando ho scaricato l'elaborazione su onChangeListener, ha funzionato come un incantesimo. –
@PeteH Può piacere di farmelo sapere, che cos'è mapPoint nel metodo routePoints.add (mapPoint); – Keshav1234
un mapPoint è semplicemente un singolo oggetto LatLng, ovvero uno dei punti desiderati per la visualizzazione della mappa – PeteH