La geolocalizzazione è una feature che ha dei risvolti molto interessanti nello sviluppo con JavaScript.
I risultati ottenuti tramite queste API variano a seconda del dispositivo usato: su mobile sono molto accurati poiché entra in gioco il GPS, mentre su desktop la loro precisione è molto bassa (nell'ordine di chilometri).
Infatti la geolocalizzazione tramite IP non è completamente affidabile, per cui si raccomanda di utilizzare queste API nello sviluppo mobile. Essenzialmente si tratta dell'invocazione al metodo navigator.geolocation.getCurrentPosition():
'use strict';
const getCoords = () => {
return new Promise((resolve, reject) => {
if(!navigator.geolocation) {
reject({geolocation: 'Not supported'});
}
navigator.geolocation.getCurrentPosition(pos => {
let latitude = pos.coords.latitude;
let longitude = pos.coords.longitude;
let accuracy = pos.coords.accuracy;
resolve({
latitude: latitude,
longitude: longitude,
accuracy: accuracy
});
});
});
};
L'oggetto restituito ci fornisce latitudine, longitudine e precisione. Usando queste API è possibile ad esempio inizializzare una Google Map con la posizione dell'utente.