firefox-locate

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

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

</body>
</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 :

var map = null;
var dator_locate = {
	initialize: function() { // initialisation
	        map = new GMap2(document.getElementById("map")); // on créer une carte
	        map.setCenter(new GLatLng(37.41, -122.08), 1);
	        map.addControl(new GSmallMapControl());
	        map.addControl(new GMapTypeControl());
	    },
            // Fonction en cas de réussite
	    handleLocate: function(a) {

	        var zoomLevel = 14; // on ajuste le zoom.
	        if (a.coords.accuracy > 500)
	            zoomLevel = 10;

                // on centre la carte à partir du résultat de la localisation.
	        map.setCenter(new GLatLng(a.coords.latitude, a.coords.longitude), zoomLevel);
	    },
            // Fonction en cas d'erreur.
	    handleError: function(a) {
	    },

	    locateMeOnMap: function() {
                // Localisation lancée
	        navigator.geolocation.getCurrentPosition(this.handleLocate, this.handleError);
	    }

}
$(function(){
	dator_locate.initialize();
	$('.locateMe').click(function(){
		dator_locate.locateMeOnMap(); // on clique sur le bouton et on lance la localisation
	});
});

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.