Google Maps API v3 – Géolocalisation basée sur IP

Quelqu'un at-il pu obtenir une géo-localisation basée sur l'IP d'une personne pour fonctionner en utilisant Google Maps API v3 JavaScript?

Il me semble que même l'exemple fourni par google ne fonctionne pas.

Http://gmaps-samples-v3.googlecode.com/svn/trunk/commonloader/clientlocation.html

Question :

  1. Cet exemple fonctionne-t-il pour n'importe qui?

  2. Comment puis-je obtenir une géolocalisation basée sur l'IP d'une personne pour fonctionner à l'aide de Google Maps API v3?

Q1: Il fonctionne à partir d'ici, et probablement de plusieurs autres endroits. Cependant, notez que la géolocalisation à partir d'adresses IP n'est pas une science très fiable. Vous obtiendrez l'emplacement de votre FAI, ce qui peut être assez loin, et en plus, les bases de données IP-to-location ne sont pas toujours à jour avec les dernières modifications, de sorte que vous ne disposez peut-être de données pour une adresse IP particulière Adresse – ce qui est probablement ce qui se passe dans votre cas.

MaxMind, qui offre une populaire base de données IP-to-location, a publié quelques statistiques sur sa base de données:

  • Précision de la ville GeoIP pour certains pays

Q2: la seule façon d'obtenir la géolocalisation à partir d'une adresse IP via l'API Google Maps v3 est en utilisant la même méthode utilisée dans l' exemple que vous avez fourni . Toutefois, si vous constatez que toute autre base de données de géolocalisation, comme MaxMind GeoLite City , est plus précise pour votre pays, vous pouvez effectuer la géolocalisation à partir des adresses IP vous-même, au lieu de la déléguer à Google Maps.

L'API Google Maps Google ne semble pas offrir un service de géolocalisation d'adresse IP (l' exemple fourni suggère d'utiliser la norme de géolocalisation W3C, qui nécessite généralement une action de l'utilisateur).

Toutefois! L' API de géolocalisation des cartes de Google, généralement utilisée sur les clients mobiles, peut être utilisée sur le Web et renvoie une latitude et une longitude en fonction de l'adresse IP du client demandeur.

Voici un exemple rapide de jQuery qui démontre son utilisation:

$.ajax({ url: 'https://www.googleapis.com/geolocation/v1/geolocate?key=YOUR-API-KEY', data: JSON.stringify({ "considerIp": "true" }), type: 'POST', contentType: 'application/json', success: function(data) { if(data.location) { alert(data.location.lat + ', ' + data.location.lng); } else { alert('not found'); } } }); 

Voici l'équivalent en curl :

 curl -H "Content-Type: application/json" -X POST -d '{"considerIp": true}' https://www.googleapis.com/geolocation/v1/geolocate?key=YOUR-API-KEY 

N'oubliez pas d'échanger dans une véritable clé API dans les exemples ci-dessus et d' activer l'API de géolocalisation pour votre projet API Google.