Come fa l'app Uber a rintracciare i taxi in tempo reale in Android?
Questa è solo la mia ipotesi :)
1.) Tutti i taxi continuano a inviare i dettagli della posizione (lat/lon) ad alcuni brevi intervalli al server.
2.) Quando un utente apre l'app Uber, viene fatta una richiesta HTTP con la posizione geografica dell'utente e il server rimanda indietro solo le informazioni dei taxi che sono presenti entro un certo raggio dalla posizione dell'utente (questo può essere ottenuto creando dinamicamente un Geo-fence intorno alle posizioni dell'utente e trovare tutti i taxi le cui coordinate geografiche intersecano le coordinate del Geo-fence. Tutto questo può accadere mentre l'app sta lanciando O Geo-fence basato sul tempo più basso per raggiungere l'utente). Sulla base di questi dati, l'utente può vedere alcuni taxi in movimento.
3.) L'utente fa richiesta di prenotazione per una particolare destinazione al server.
4.) Il server cerca di contattare tutti gli autisti disponibili / un autista (dipende da vari fattori come la preferenza dell'autista se c'è qualche caratteristica del genere).
5.) Una volta che il conducente accetta la richiesta, viene fatta un'altra richiesta HTTP con il DriverId e i dettagli della posizione geografica.
6.) Il server recupera i dettagli del conducente come l'immagine, il numero di targa e li invia all'app dell'utente, che è dove si possono vedere questi dettagli. Inoltre il server calcola il tempo approssimativo da raggiungere in base alla distanza della posizione del taxi, i dati del traffico, qualsiasi altro utente da prendere se il car pool.
NOTA: Il punto 5 e 6 può anche essere raggiunto inviando i dettagli del conducente (nome, immagine, numero ecc.) dall'app del conducente direttamente al server di caching (In-Memory) e questi dettagli possono essere inviati all'app dell'utente leggendo dalla cache In-Memory. Si possono ottenere migliori prestazioni. Fondamentalmente l'app dell'autista Uber agisce anche come negozio Key-Value. Quindi questo può essere possibile. In modo che non ci sia bisogno di recuperare i dettagli del conducente dal negozio di dati (NoSQL / RDBMS che è applicabile). Qualche servizio in background può sincronizzare dalla cache all'archivio dati simultaneamente in base a qualche notifica di evento se necessario.
7.) L'app dell'utente è bloccata su un taxi e il server inizia a trasmettere i dettagli della posizione geografica del taxi all'app dell'utente al fine di visualizzare il tracking in tempo reale.
8.) Una volta che l'utente sale a bordo del taxi, l'app dell'autista inizia la navigazione verso la destinazione e il contatore di viaggio viene abilitato sul server.
.Articoli simili
- Perché Uber (o altre app di taxi-hailing) non è presente in Ruanda? I taxi sono molto difficili da trovare a Kigali.
- Qual è la migliore società di software al mondo che può sviluppare app di taxi online come Uber e Lyft con il costo più basso?
- Perché le compagnie di taxi non creano un'app come Uber? So che alcune lo hanno fatto in Canada, ma non tutte.
- Come acquistare una vera app di taxi clone di Uber