Autore Topic: Consiglio per tracciare posizione utente  (Letto 624 volte)

Offline array81

  • Utente junior
  • **
  • Post: 64
  • Respect: 0
    • Mostra profilo
    • MartinZone
  • Dispositivo Android:
    OnePlus One, Nexus S
  • Play Store ID:
    MartinZone
  • Sistema operativo:
    Windows 7
Consiglio per tracciare posizione utente
« il: 30 Maggio 2014, 19:17:36 CEST »
0
Mi serve un consiglio su come impostare il seguente problema.
Nella mia app ho una mappa, l'utente tramite le impostazioni può scegliere se visualizzare o meno la posizione dell'utente.
Per fare questo ho preferito crearmi un servizio che attiva la localizzazione e tramite un timer controllo ogni secondo e mezzo la posizione dell'utente. Potevo usare anche il "sistema" fornito direttamente da Android di cui non ricordo il nome ma per intenderci quello che mostra il pallino blu sulla mappa come dell'applicazione Maps ma in questo caso preferisco un sistema fai da te.

Ora vorrei aggiungere anche la possibilità di centrare la mappa sempre sull'utente, ovvero avere il marker dell'utente sempre al centro della mappa, sarà infatti la mappa che verrà centrata in maniera opportuna. Per fare questo,sempre nello stesso timer ho provveduto a cambiare la camera della mappa in modo che l'utente sia centrato.

Il problema è che così facendo, dato che questa operazione viene ripetuta ogni secondo e mezzo, può capitare (e capita spesso) che se l'utente prova a cambiare lo zoom della mappa il livello dello zoom venga ripristinato subito dopo dalla funzione che sposta la camera presente nel timer.

Capisco che non è semplicissimo da capire ma in sostanza se l'utente modifica lo zoom tramite i tasti sulla mappa dato che questa modifica non è istantanea ma graduale, se nel frattempo viene eseguito il codice nel timer questo cambia di nuovo la camera ma andrà ad utilizzare l'ultimo livello di zoom ovvero quello precedente alla modifica manuale dell'utente.

Avete qualche idea su come possa evitarlo?

Offline bigpea

  • Nuovo arrivato
  • *
  • Post: 34
  • Respect: +2
    • Mostra profilo
  • Dispositivo Android:
    Samsung Galaxy S5
  • Sistema operativo:
    Windows 7
Re:Consiglio per tracciare posizione utente
« Risposta #1 il: 09 Luglio 2014, 15:57:29 CEST »
0
Ciao, con quale metodo centri la posizione dell'utente?
se utilizzi semplicemente il  moveCamera con il  newLatLng dovrebbe solo centrare la mappa senza cambiare il livello di zoom.

Post unito: 09 Luglio 2014, 16:02:27 CEST
ho riletto il post e forse non sono stato molto chiaro..
in sostanza se usi questo metodo non dovrebbe modificarti il livello di zoom:
Codice (Java): [Seleziona]
map.moveCamera(CameraUpdateFactory.newLatLng(CENTER_POINT));
se invece usi questo, ovviamente lo modifichi:
Codice (Java): [Seleziona]
map.moveCamera(CameraUpdateFactory.newLatLngZoom(CENTER_POINT,18));
Fammi sapere se funziona  ;-)
« Ultima modifica: 09 Luglio 2014, 16:02:27 CEST da bigpea, Reason: Merged DoublePost »