De nombreuses applications et sites pour mobile, utilisent la géolocalisation en se basant sur les informations transmises par le téléphone. . Cependant, pour les personnes consultant un site à partir d'un ordinateur fixe, le seul moyen de récupérer des données est la localisation IP, c’est à dire la localisation du point de connexion Internet auquel est connecté votre ordinateur (ce qui est plus ou moins précis).
- L'api Google API loader( qui sert par exemple accéder à plusieurs librairie de scripts ) propose par défaut une fonction qui permet de connaître
- la latitude,
- la longitude,
- la ville
- la région,
- et le pays de connexion de l'utilisateur
Pour utiliser cette API, rendez-vous sur le site de Google api loader, et enregistrez votre site pour obtenir une clé d'API (c'est ici) http://code.google.com/intl/fr/apis/loader/signup.html
Pour l'utiliser il faut charger le script google api loader entre les balise de votre page :
On écrit ensuite le code qui vas afficher les infos de géolocalisation :
<script src="https://www.google.com/jsapi?key=votre cle google api" type="text/javascript"></script>
<script type="text/javascript">
function initialize() {
var adr = "ta latitude : " + google.loader.ClientLocation.latitude +"<br>";
adr += "ta longitude : " + google.loader.ClientLocation.longitude +"<br>";
adr += "ta ville : " + google.loader.ClientLocation.address.city +"<br>";
adr += "ta region : " + google.loader.ClientLocation.address.region +"<br>";
adr += "ton pays : " + google.loader.ClientLocation.address.country +"<br>";
document.getElementById("test_gloader").innerHTML = adr;
}
</script>
</head>
<body onload="initialize()">
<div id="test_gloader">Patientez...</div>
</body>
comme on peut le voir dans l'exemple, on obtient la région, la ville et le pays...
c'est pas magnifique ça ?
Oui mais vous auriez aussi voulu le code postal, le département et qu'en plus ça cause français aulieu d'anglais pour le nom de la région ?
Et bien c'est possible, pour cela nous allons utilisé la célébre Api de google map qui est capable de faire du géocodage inversé, c'est a dire donnée les coordonées postales d'un lieu en fonction de sa latitude et sa longitude.
Le principe est donc le suivant :
on récupère la latitude et la longitude avec les fonction de google api loader.
On les injecte dans l'api google map
<script src="https://www.google.com/jsapi?votre cle google api" type="text/javascript"></script>
<script type="text/javascript"src="http://maps.google.com/maps/api/js?sensor=true">
</script>
<script type="text/javascript">
function initialize() {
var adr2 ="";
var lat=google.loader.ClientLocation.latitude;
var longi=google.loader.ClientLocation.longitude;
var latlng = new google.maps.LatLng(lat, longi);
var geocoder = new google.maps.Geocoder();
geocoder.geocode({'latLng': latlng}, function(results, status) {
if (status == google.maps.GeocoderStatus.OK) {
if (results[0]) {
var elt = results[0].address_components;
for(i in elt){
if(elt[i].types[0] == 'postal_code')
gmap_cp=elt[i].long_name;
if(elt[i].types[0] == 'locality')
gmap_ville=elt[i].long_name;
if(elt[i].types[0] == 'administrative_area_level_1')
gmap_region=elt[i].long_name;
if(elt[i].types[0] == 'administrative_area_level_2')
gmap_departement=elt[i].long_name;
if(elt[i].types[0] == 'country')
gmap_pays=elt[i].long_name;
}
adr2 += "ta ville : " + gmap_ville +"<br>";
adr2 += "ton code postal : " + gmap_cp +"<br>";
adr2 += "ton département : " + gmap_departement +"<br>";
adr2 += "ta région : " + gmap_region +"<br>";
adr2 += "ton pays : " + gmap_pays +"<br>";
document.getElementById("test_gloader_gmap").innerHTML = adr2;
}
}
});
}
</script>
</head>
<body onLoad="initialize()">
<div id="test_gloader_gmap" >teoo..</div>
</body>
Vous pouvez voir dans l'exemple qu'on obtient le nom de la ville, du département, de la région, et le code postal (le tout dans la langue d'origine tu pays ou l'on se trouve).
Et qu'est ce qu'on fait avec tout ça ?
Et bien on peut maintenant imaginer plein de services liés à la géolocalisation sur son site, comme par exemple :
- Simplifier le remplissage d'un formulaire en pré remplissant les champs de ville et de département
- Proposer une liste de point de vente à proximité de l'utilisateur
- Proposer un point de départ pour un itinéraire à partir du point de connexion.
- Proposer la météo sur la région ou on se connecte.
Les exemples sont ici : http://passeurs-de-savoirs.fr/lab/google-api-geolocalisation.html