Questi sistemi funzionano all'incontrario di come lo hai descritto:
1) ogni veicolo invia, con una certa regolarita' (una volta al secondo/10 secondi/60 secondi... ecc) la sua posizione GPS ad un sistema centrale.
2) il TUO sistema interroga il sistema centrale per conoscere la posizione di TUTTI i veicoli e fare le opportune elaborazioni.
Tra l'altro, in questo modo, il sistema centrale ha tutte le informazioni per visualizzare la posizione dei veicoli sulla mappa, e, partendo dalle informazioni GPS, sapere in che direzione stanno andando, a che velocita', se si sono fermati, se c'e' un incidente, ecc...
NON SEI tu ad interrogare i singoli veicoli, SONO i veicoli che dicono a TE dove sono!
Piu' che a te, al sistema centrale.
Implementare un'architettura del genere e' abbastanza banale:
1) crei un'app (Android, Windows Mobile, iOS) che interroga il GPS del cellulare e invia le info ad un web service che imlementi e pubblichi da qualche parte (un qualunque PC visibile da Internet)
2) il ws non fa altro che ricevere le informazioni ed inserirle in un database
3) il tuo sistema interroga il DB per fare quello che deve fare
Le informazioni lette dal GPS sono informazioni di test che seguono lo standard NMEA 0183
https://en.wikipedia.org/wiki/NMEA_018
Queste sono banali stringhe ASCII opportunamente formattate.
Ma questo ti serve relativamente a poco/praticamente a nulla, visto che ogni SDK per cellulare ha le API dedicate per la lettura delle coordinate.
Tra l'altro, queste API sono anche piu' intelligenti perche' sono in grado di dedurre la posizione del cel anche senza GPS, ma basandosi sul database delle posizioni delle torri cellulari e sulla potenza del segnale che il cel sta' ricevendo (errore circa 100m).
Per quanto riguarda tempi di percorrenza, percorsi, conversione coordinate cartografiche -> indirizzo, sono tutti servizi forniti da Google Map
https://developers.google.com/maps
Eventualmente puoi provare con Nokia Here
https://developer.here.com
oppure Bing Map
https://www.microsoft.com/maps/choose-your-bing-maps-API.aspx
In prima approssimazione, tu puoi contattare un cellulare SOLO mediante SMS, NON via TCP.
I sistemi tipo wathsapp, facebook, ... funzionano all'incontrario: i messaggi per un certo cellulare vengono inviati ad un sistema centrale, ed il cel, MEDIANTE POLLING, con un'opportuna frequenza, interroga il sistema per sapere se e' arrivato qualcosa per lui.
Essendo questa infrastruttura predefinita, dal tuo punto di vista e' come se to inviassi una richiesta ad un cellulare e questo rispondesse.
In ogni caso, il paradigma di programmazione che devi utilizzare e' quello della programmazione per messaggi.