Je suis un peu confus quant à la raison pour laquelle je choisirais d'utiliser l'accès limité API Google Maps Geolocation sur le libre et (apparemment) illimité navigator.geolocation
fonctionnalité de HTML5?
Pour autant que je sache, le seul avantage de la version Google est son support accru pour les navigateurs tels que IE8. Suis-je en train de manquer quelque chose d'important ici? Ou y a-t-il peu de différence?
Après une enquête plus approfondie, nous avons remarqué que lorsque nous avons utilisé navigator.geolocation
in Chrome il fait en fait un appel à l'API Google pour obtenir les informations ( sauvegardé par cette réponse d'il y a 6 ans ). Cela pose donc la question , est-il encore limité? Si oui de combien pendant quelle période?
L'API de géolocalisation Google Maps est un point de terminaison HTTP qui accepte les données JSON fournies par l'utilisateur sur les réseaux Wifi et les tours de cellules à proximité et produit une estimation de l'emplacement de l'utilisateur.
Le HTML5 navigator.geolocation
objet fournit une API de navigateur qui effectue un ensemble d'opérations et produit ensuite une estimation de l'emplacement de l'utilisateur. À partir de spécification de géolocalisation W3C :
L'API elle-même est indépendante des sources d'informations de localisation sous-jacentes. Les sources courantes d'informations de localisation comprennent le système de positionnement mondial (GPS) et l'emplacement déduit des signaux réseau tels que l'adresse IP, les adresses MAC RFID, WiFi et Bluetooth et les identifiants de cellule GSM/CDMA, ainsi que les entrées des utilisateurs.
Le navigator.geolocation
La fonction peut utiliser toutes les informations disponibles dans l'application du navigateur, y compris les informations provenant du matériel GPS de l'appareil, le cas échéant. Bien sûr, il peut également utiliser toutes les API Web tierces (y compris, éventuellement, l'API de géolocalisation Google Maps) qui peuvent être atteintes. Il n'y a pas d'approche ou d'intrants requis spécifiés qui doivent ou doivent être utilisés; le navigateur peut tout faire pour estimer la position. Cela peut faire un travail meilleur ou pire que l'approche de Google, selon leurs implémentations particulières, ou le navigateur peut (comme vous le suggérez) utiliser directement l'API de Google.
En bref, l'API de Google est un moyen de demander: "Sur la base de cette cellule et des informations Wifi, dites-moi où je suis." L'API HTML5 est un moyen de dire au navigateur: "Vous avez accès à Internet et à toutes les entrées physiques disponibles sur mon appareil; découvrez où je suis, en quelque sorte."
Je ne suis pas surpris d'apprendre qu'en l'absence de GPS, le navigateur pourrait sous-traiter son travail de géolocalisation à un service tiers comme Google. Les fournisseurs de navigateurs sont généralement intéressés à créer des navigateurs , et non à écrire un service robuste pour résoudre le problème difficile de la transformation des données cellulaires/Wifi en informations de localisation. En outre, il nécessite une énorme quantité de données géospatiales sur l'emplacement des différentes tours et SSID Wifi. Cela gonflerait le navigateur pour conserver toutes les informations localement, et toute tentative pour le fournisseur d'héberger les informations à distance serait fonctionnellement de mettre en place un concurrent au service déjà connu de Google.
L'API HTML5 va déclencher une fenêtre contextuelle modale pour demander à l'utilisateur de donner sa permission par rapport à l'API Google Maps Geolocation va contourner cela. Les méthodes elles-mêmes pour collecter l'emplacement sont très similaires bien que l'étendue soit là pour que HTML5 approfondisse en fonction de la façon dont le navigateur l'implémente.
Exemple HTML5 - https://developer.mozilla.org/en-US/docs/Web/API/Geolocation/Using_geolocation
Exemple de géolocalisation Google Maps - http://webkay.robinlinus.com/
Réf: https://developers.google.com/maps/articles/geolocation