EN
← Înapoi la blog

Optical App Dev

Urmărirea live pe hartă: cum arată într-o aplicație de servicii

Cum funcționează urmărirea live a echipajului pe hartă: poziția din telefon, serverul în timp real, ce vede clientul, permisiunile și datele de localizare.

Redacția Optical Design · redactor app & tehnic3 min de citit

Urmărirea live înseamnă trei lucruri legate: telefonul echipajului trimite poziția pe măsură ce se mișcă, serverul o dă mai departe pe loc, iar clientul vede pe hartă un punct care se apropie. Pentru client, ea răspunde la singura întrebare care contează după ce a comandat: „cât mai durează?”. Pentru firmă, înseamnă mai puține telefoane de tipul „unde sunteți?”.

Cele trei bucăți

1. Telefonul echipajului. În browser, poziția vine din Geolocation API. Funcția watchPosition() anunță aplicația de fiecare dată când se schimbă poziția dispozitivului. API-ul merge doar pe pagini securizate (HTTPS), iar omul trebuie să dea permisiunea explicit, la prima cerere. Browserul folosește cea mai bună metodă pe care o are telefonul, de exemplu GPS-ul.

2. Serverul. Primește pozițiile și le trimite imediat mai departe. Pentru asta se folosesc de obicei conexiuni WebSocket: o sesiune deschisă în ambele sensuri între browser și server, prin care clientul primește mesaje fără să tot întrebe „s-a schimbat ceva?”.

3. Ecranul clientului. Harta, punctul care se mișcă, ora estimată și starea comenzii.

Un exemplu: o aplicație de tractări

La o aplicație de tractări și asistență rutieră, omul spune ce s-a întâmplat, vede prețul înainte să comande și urmărește echipajul pe hartă până ajunge la el. În spate sunt de obicei trei aplicații legate în timp real: una pentru client, una pentru firmele partenere și una pentru șoferi. Toate pot merge din browserul telefonului, fără instalare.

Într-o aplicație ca asta, harta e partea care se vede, dar munca grea e în stări: cine a primit comanda, cine a acceptat-o, cine e pe drum, ce se întâmplă dacă nu e nimeni liber.

Ce vede clientul

  • Stări clare, în cuvinte: comandă primită, echipaj alocat, pe drum, ajuns. Harta vine abia după ce există un echipaj pe drum.
  • O oră estimată, actualizată pe măsură ce echipajul înaintează. Un interval cinstit e mai bun decât un minut exact care se tot schimbă.
  • Cine vine: numele firmei și un buton „Sună”, pentru momentul în care omul nu găsește adresa.
  • Nimic în plus. Clientul nu are nevoie de traseul complet, doar de punctul de acum și de ora estimată.

Permisiuni și baterie

Pe web, permisiunea de localizare se cere când e nevoie de ea, cu o propoziție care spune de ce: „Ca să vadă clientul când ajungi”.

Dacă firma vrea ca telefonul șoferului să trimită poziția și cu ecranul stins, discuția se schimbă. Pe Android, localizarea în fundal e o permisiune separată, iar de la Android 11 omul trebuie să o activeze singur din setări („Permite tot timpul”). Google cere să explici de ce ai nevoie de ea și să lași aplicația să meargă și dacă omul refuză. Am explicat diferențele dintre aplicația din browser și cea instalată în articolul despre PWA.

Bateria contează și ea: poziția se trimite mai rar când echipajul e departe și mai des când se apropie.

Datele de localizare sunt date personale

Regulamentul GDPR trece datele de localizare printre elementele după care o persoană poate fi identificată. Pentru șofer, asta înseamnă reguli clare:

  1. Poziția se urmărește doar cât e activă o comandă, nu toată ziua.
  2. Se colectează doar ce trebuie pentru scop (principiul reducerii la minimum a datelor).
  3. Traseele nu se păstrează mai mult decât e nevoie.
  4. Șoferul știe când e urmărit, de exemplu dintr-un indicator vizibil în aplicație.

Dacă vrei o aplicație cu dispecerat și hartă live, vezi cum lucrăm.

Surse

  1. Geolocation API, MDN Web Docs`watchPosition()`, contextul securizat (HTTPS), permisiunea explicită, folosirea GPS-ului
  2. WebSocket API (WebSockets), MDN Web Docssesiunea în ambele sensuri, mesaje primite fără interogări repetate
  3. Request background location, Android Developerspermisiunea separată, „Allow all the time” din setări de la Android 11, aplicația merge și la refuz
  4. Regulamentul (UE) 2016/679 (GDPR), EUR-Lexart. 4 pct. 1 (datele de localizare) și art. 5 alin. (1) lit. (c) și (e)

Verificat: surse Xenia Pușcașu · editare Nora Vlăsceanu · SEO Mihnea Tăbăcaru

Vrei asta pentru firma ta?

Spune-ne în două rânduri ce ai nevoie. Revenim cu un plan și o ofertă.