È possibile utilizzare l'API https://ipinfo.io per questo (è il mio servizio). È gratuito per un massimo di 1.000 req/giorno (con o senza supporto SSL). Ti dà le coordinate, il nome e altro ancora.Ecco un esempio:
curl ipinfo.io
{
"ip": "172.56.39.47",
"hostname": "No Hostname",
"city": "Oakland",
"region": "California",
"country": "US",
"loc": "37.7350,-122.2088",
"org": "AS21928 T-Mobile USA, Inc.",
"postal": "94621"
}
Ecco un esempio che costruisce un coordinate oggetto con la risposta API che corrisponde a quello che si ottiene da getCurrentPosition()
:
$.getJSON('https://ipinfo.io/geo', function(response) {
var loc = response.loc.split(',');
var coords = {
latitude: loc[0],
longitude: loc[1]
};
});
Ed ecco un esempio dettagliato che mostra come si può utilizzare come ripiego per getCurrentPosition()
:
function do_something(coords) {
// Do something with the coords here
}
navigator.geolocation.getCurrentPosition(function(position) {
do_something(position.coords);
},
function(failure) {
$.getJSON('https://ipinfo.io/geo', function(response) {
var loc = response.loc.split(',');
var coords = {
latitude: loc[0],
longitude: loc[1]
};
do_something(coords);
});
};
});
Vedere http://ipinfo.io/developers/replacing-navigator-geolocation-getcurrentposition per maggiori dettagli.
fonte
2016-09-23 17:33:00
Speriamo che non solo interromperanno la funzione senza sostituzione nella versione futura ... –
È probabile che chiudano la funzione senza sostituzione in una versione futura. Questo è esattamente il motivo per cui lo stanno deprecando ora. Preventivo * prevediamo di migrare gradualmente queste funzionalità solo per sicurezza * – MarkJ