Utiliser la géolocalisation de Firefox 3.5 avec Google Map

Publié le 01 juillet 2009 par Dator

La version de Firefox 3.5 est sortie hier dans l’après-midi. Au programme des nouveautés, la possibilité de localiser ses visiteurs simplement.

Explication

La localisation de Firefox 3.5 est faite de manière très simple. C’est à dire qu’avec une seule fonction vous pouvez localiser vos visiteurs. Avant de se faire localiser vous devez accepter le fait d’être localiser, ce qui n’est pas plus mal.

Une fois accepté, Firefox rassemblera les informations sur les points d’accès sans fil alentour et l’adresse IP de votre ordinateur. Alors, Firefox enverra ces informations au fournisseur de service de géolocalisation par défaut, Google Location Services, pour faire une estimation de votre localisation. Cela permettra de récupérer les coordonnées de votre position.

Utilisation

Dans cette exemple, nous allons créer une page HTML qui va localiser le visiteur et le positionner sur une carte Google Map.

Le HTML

view sourceprint? 01.<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> 02.<html xmlns="http://www.w3.org/1999/xhtml"> 03.<head> 04.<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 05.<title>Géolocalisation par Dator.fr 06.<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"> 07.<script src="http://maps.google.com/maps?file=api&;v=2&sensor=false&key=VOTRE_KEY" type="text/javascript"> 08.<script type="text/javascript" src="locate.js"> 09.</head> 10.<body> 11.  <h1>Géolocalisation depuis Firefox par Dator</h1> 12.  <button class="locateMe">Localise moi !</button> 13.  <div id="map" style="width:500px; height:500px;"/> 14. 15.</body> 16.</html>

Cette page est vraiment basique, il y a une div pour la carte et un bouton qui va servir à localiser la personne quand celle-ci cliquera sur le bouton.

Le fichier Javascript locate.js :

view sourceprint? 01.var map = null; 02.var dator_locate = { 03.  initialize: function() { // initialisation 04.  map = new GMap2(document.getElementById("map")); // on créer une carte 05.  map.setCenter(new GLatLng(37.41, -122.08), 1); 06.  map.addControl(new GSmallMapControl()); 07.  map.addControl(new GMapTypeControl()); 08.  }, 09.  // Fonction en cas de réussite 10.  handleLocate: function(a) { 11. 12.  var zoomLevel = 14; // on ajuste le zoom. 13.  if (a.coords.accuracy > 500) 14.  zoomLevel = 10; 15. 16.  // on centre la carte à partir du résultat de la localisation. 17.  map.setCenter(new GLatLng(a.coords.latitude, a.coords.longitude), zoomLevel); 18.  }, 19.  // Fonction en cas d'erreur. 20.  handleError: function(a) { 21.  }, 22. 23.  locateMeOnMap: function() { 24.  // Localisation lancée 25.  navigator.geolocation.getCurrentPosition(this.handleLocate, this.handleError); 26.  } 27. 28.} 29.$(function(){ 30.  dator_locate.initialize(); 31.  $('.locateMe').click(function(){ 32.  dator_locate.locateMeOnMap(); // on clique sur le bouton et on lance la localisation 33.  }); 34.});

Ici on vient de créer une classe en javascript qui va permettre de localiser et mettre en forme le résultat sur une google map.
La méthode qui permet de localiser un visiteur est navigator.geolocation.getCurrentPosition et prend deux fonctions en paramètres, une si la localisation réussi, et l’autre si elle échoue.

Conclusion et Tests

Cette méthode de localisation de Firefox n’est pas forcément fiable à 100% mais elle à marché pour moi ( Localisé à Lyon).
Vous pouvez le tester à cette adresse.
Le site officiel.