27 votes

À propos de la géolocalisation en HTML 5

Google Maps peut maintenant identifier mon emplacement de la rue de précision avec l'aide de Firefox.

Je comprends que c'est une nouvelle fonctionnalité de HTML 5 pour les navigateurs compatibles et que l'emplacement est récupérée en utilisant une sorte de fonction de l'appareil raccordé réseau WiFi (j'espère que je suis pas idiot hypothèses).

Ce que je veux savoir, c'est comment ce processus fonctionne exactement:

  • Pourquoi uniquement en HTML 5?
  • Pourquoi / comment est-ce que Firefox me demander de partager ma localisation avec Google Maps?
  • Quelle est la précision, on peut compter sur?
  • Comment puis-je mettre en œuvre cette fonctionnalité dans mon site web?

Merci à l'avance!

35voto

Daniel Vassallo Points 142049

Comment ça fonctionne?

Lorsque vous visitez un système de géolocalisation site dans Firefox, le navigateur vous demandera si vous voulez partager votre localisation.

Si vous y consentez, Firefox rassemble les informations relatives à proximité de points d'accès sans fil et l'adresse IP de votre ordinateur, et obtenir une estimation de votre situation par l'envoi de ces informations à des Services de Localisation de Google (le service de géolocalisation par défaut dans Firefox). Cette estimation de localisation est ensuite partagée avec le site web demandeur. (Source)

Quelle est la précision des localisations?

La précision varie grandement d'un endroit à l'autre. Dans certains endroits, le service de géolocalisation de santé peut ê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 sont à considérer comme des estimations comme il n'y a aucune garantie sur l'exactitude de l'emplacement prévu. (Source)

Dans mon cas, Firefox signale que je suis à 10 km environ de mon emplacement réel.

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

Vous faites quelque chose comme cela:

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 de la Géolocalisation Démo (Nécessite une géolocalisation-conscient navigateur tel que Firefox 3.1b3.)

14voto

mjv Points 38081

HTML5 fournitures d'une API

ce qui permet au navigateur web (et puis d'où le côté serveur de l'application web) pour demander l'emplacement et les informations connexes, telles que la vitesse (le cas échéant), dans un standard, uniforme, de la mode.

L'hôte et son navigateur web offre les "appareils" qui calculer/estimer la géolocalisation par se

Pour cette API pour être utile, il faut que le sous-jacent de l'hôte et navigateur web
a) permettre le partage de ces infos (note de la question de la vie privée) et
b) être un peu équipé (soit localement ou par le biais du réseau auquel il est relié à) la lecture ou de l'estimation de la géolocalisation.

Les techniques et les dispositifs impliqués dans le calcul de l'emplacement réel implique une combinaison de ce qui suit (pas tous bien sûr), et est indépendant du standard HTML 5:

  • Le dispositif de GPS (beaucoup de téléphones ont maintenant leur)
  • Routage info au niveau du réseau de téléphonie Cellulaire
  • Adresse IP / FAI information de routage
  • Routeur Wifi info
  • Données fixes, l'entrée manuelle (pour les pc qui sont à un emplacement fixe)
  • ...

Donc...
- HTML5 seul ne peut pas comprendre la géolocalisation: la mise à niveau à la plus récente du navigateur web, 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 GPS-prêt ou de Géolocalisation-prêt téléphones exposer les données de géolocalisation à l'intérieur d'autres Api.

0voto

Manish Chhabra Points 1865

HTML5 API de Géolocalisation utilise certaines fonctionnalités, comme le Système de Positionnement Global (GPS), le Protocole Internet (IP) de l'adresse du périphérique, le plus proche de les tours de téléphonie mobile, et l'entrée en provenance de l'utilisateur, dans les utilisateurs d'un dispositif pour récupérer les utilisateurs de l'emplacement. Les utilisateurs d'un emplacement récupérées en utilisant l'API de Géolocalisation est presque exacte selon le type de source utilisé pour récupérer l'emplacement.

Il y a vraiment une bonne démo de Géolocalisation HTML5 ici (http://html5demos.com/geo). Chaque fois qu'un site web tente d'extraire votre emplacement à l'aide de l'une des opérations suivantes mentionnées Api, le navigateur va me demander votre autorisation avant d'appeler l'API de partager votre localisation.

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

  • getCurrentPosition(successCallback, errorCallback, options)

    Utilisé pour récupérer le courant de l'emplacement géographique de l'utilisateur.

  • watchPosition(successCallback, errorCallback, options)

    La fonction retourne un watchId et les appels successCallback avec la mise à jour des coordonnées. Elle continue à renvoyer à jour de la position que l'utilisateur se déplace (comme le GPS dans une voiture).

  • clearWatch(watchId)

    Les arrêts de la watchPosition() méthode basée sur la 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!");
}

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X