A propos de la géolocalisation en HTML 5

Google Maps peut maintenant Localiser mon emplacement avec street precision avec L'aide de Firefox.

Je comprends que c'est une nouvelle fonctionnalité des navigateurs compatibles HTML 5 et que l'emplacement est récupéré en utilisant une sorte de fonctionnalité du réseau WiFi connecté (j'espère que je ne fais pas d'hypothèses stupides).

Ce que j'ai l'intention de savoir, c'est comment tout ce processus fonctionne exactement:

  • Pourquoi seulement en HTML 5?
  • Pourquoi / Comment Firefox me demande-t-il de partager ma position avec Google Cartes?
  • Quelle est la précision normale sur laquelle on peut compter?
  • Comment puis-je implémenter cette fonctionnalité dans mes sites Web?

Merci d'avance!

27
demandé sur mjv 2010-02-12 01:52:09

3 réponses

Comment ça fonctionne?

Lorsque vous visitez un site web géolocalisé dans Firefox, le navigateur vous demandera si vous souhaitez partager votre position.

Si vous y consentez, Firefox recueille des informations sur les points d'accès sans fil à proximité et l'adresse IP de votre ordinateur, et obtiendra une estimation de votre position en envoyant ces informations à Google Location Services (le service de géolocalisation par défaut dans Firefox). Cette estimation de l'emplacement est ensuite partagée avec le demandeur site. (Source)

Quelle est la précision des localisations?

La précision varie considérablement d'un endroit à l'autre. Dans certains endroits, les fournisseurs de services de géolocalisation peuvent être en mesure de fournir un emplacement à quelques mètres. Cependant, dans d'autres domaines, il pourrait être beaucoup plus que cela. Tous les emplacements doivent être considérés comme des estimations car il n'y a aucune garantie sur l'exactitude des emplacements fournis. (Source)

Dans mon cas, Firefox signale que je suis sur le point 10 km de mon emplacement réel.

Comment puis-je utiliser cette fonctionnalité dans mon site web?

Vous feriez quelque chose comme ceci:

if (navigator.geolocation) { 
    navigator.geolocation.getCurrentPosition(function(position) {  

        alert(position.coords.latitude + ", " + position.coords.longitude);

        // Use the latitude and location as you wish. You may set a marker
        // on Google Maps, for example.
    }); 
} 
else {
    alert("Geolocation services are not supported by your browser.");
}  

Vous pouvez voir une démo en ligne ici: Firefox HTML 5 Geolocation Demo (nécessite un navigateur géolocalisé comme Firefox 3. 1b3.)

35
répondu Daniel Vassallo 2010-02-13 23:58:56

HTML5 fournitures une API {[9] } qui permet au navigateur web (et donc au serveur d'une application web) d'interroger l'emplacement et les informations connexes telles que la vitesse (le cas échéant), de manière standard et uniforme.

L'hôte et son navigateur Web fournissent les "périphériques" qui calculent/estiment la géolocalisation en soi

Pour que cette API soit utile, il faut que l'hôte et le navigateur web sous-jacents
  a) permettre le partage de ces informations (notez le problème de la confidentialité) et
  b) être quelque peu équipés (soit localement, soit par le réseau auquel ils sont raccordés) pour lire ou estimer la géolocalisation.

Les techniques et les dispositifs impliqués dans le calcul de l'emplacement réel impliquent une combinaison des éléments suivants (tous ne s'appliquent pas bien sûr), et sont indépendants de la norme HTML 5 :

  • appareil GPS (beaucoup de téléphones les ont maintenant)
  • informations de routage au niveau du téléphone cellulaire réseau
  • adresse IP / informations de routage ISP
  • wifi routeur info
  • données fixes, entrées manuellement (pour les PC qui sont à un emplacement fixe)
  • ...

Par conséquent...
- HTML5 seul ne peut pas comprendre la géolocalisation: la mise à niveau vers un navigateur Web plus récent, en soi, ne sera pas suffisante pour obtenir des fonctionnalités de géolocalisation dans vos applications, etc.
- Les données de géolocalisation peuvent être partagées en dehors de L'API HTML5, permettant Les téléphones prêts à la géolocalisation exposent les données de géolocalisation dans d'autres API.

14
répondu mjv 2010-02-11 23:28:08

L'API de géolocalisation HTML5 utilise certaines fonctionnalités, telles que le système de Positionnement Global (GPS), l'adresse de protocole Internet (IP) d'un périphérique, les tours de téléphonie mobile les plus proches et l'entrée d'un utilisateur, dans le périphérique des utilisateurs pour récupérer l'emplacement des utilisateurs. L'emplacement des utilisateurs récupéré à l'aide de L'API de géolocalisation est presque précis en fonction du type de source utilisé pour récupérer l'emplacement.

Il y a une très bonne démo de la géolocalisation HTML5 ici ( http://html5demos.com/geo ). chaque fois qu'un site Web tente de récupérer votre emplacement en utilisant l'une des API mentionnées ci-dessous, le navigateur me demandera votre permission avant d'invoquer L'API pour partager votre emplacement.

L'API de géolocalisation fournit les méthodes suivantes:

  • GetCurrentPosition(successCallback, errorCallback, options)

    Utilisé pour récupérer l'emplacement géographique actuel d'un utilisateur.

  • WatchPosition(successCallback, errorCallback, options)

    La fonction renvoie un watchId et appelle successCallback avec les coordonnées mises à jour. Il continue à retourner la position mise à jour lorsque l'utilisateur se déplace (comme le GPS dans une voiture).

  • ClearWatch(watchId)

    Arrête la méthode watchPosition () basée sur watchId fourni.

Exemple De Code:

if (navigator.geolocation) {
  navigator.geolocation.getCurrentPosition(userPositionSuccess, userPositionError);
} else {
  alert("Your browser does not support geolocation.");
}

function userPositionSuccess(position) {
  alert("Latitude: " + position.coords.latitude + " Longitude: " + position.coords.longitude);
}

function userPositionError() {
  alert("There was an error retrieving your location!");
}
0
répondu Manish Chhabra 2013-12-22 23:58:05