En utilisant un code JavaScript relativement simple, vous pouvez créer des applications Web qui peuvent déterminer les détails de l'emplacement géographique de l'utilisateur, y compris la latitude et la longitude et l'altitude. Certaines applications Web peuvent même fournir des fonctions de navigation en surveillant le mouvement des emplacements des utilisateurs au fil du temps, qui intègre également les systèmes MAP tels que l'API Googlemaps.
HTML5 fournit une API de géolocalisation pour déterminer l'emplacement de l'utilisateur. Nous pouvons utiliser cette fonctionnalité de HTML5 pour développer des applications en fonction des informations de géolocalisation. Cet article combine des exemples à partager avec vous comment utiliser HTML5 et utiliser les interfaces Baidu et Google Map pour obtenir des informations de localisation géographique précises des utilisateurs.
La géolocalisation est une nouvelle fonctionnalité de HTML5, il est donc possible de fonctionner sur des navigateurs modernes qui prennent en charge HTML5, en particulier des appareils portables tels que les iPhones, où la géolocalisation est plus précise. Tout d'abord, nous devons détecter si le navigateur du périphérique utilisateur prend en charge la géolocalisation et, dans l'affirmative, obtenir des informations géographiques. Notez que cette fonctionnalité peut porter atteinte à la confidentialité de l'utilisateur. À moins que le consentement de l'utilisateur ne soit, les informations de localisation de l'utilisateur sont indisponibles, donc lorsque nous accéderons à l'application, nous vous inviterons à autoriser la géolocalisation, et bien sûr, nous pouvons choisir d'autoriser.
- functiongetLocation () {
- if (navigator.geolocation) {
- Navigator.Geolocation.getCurrentPosition (showPosition, Showerror);
- }autre{
- alerte (le navigateur ne prend pas en charge la géolocalisation.);
- }
- }
Le code ci-dessus montre que si le périphérique utilisateur prend en charge la géolocalisation, exécutez la méthode GetCurrentPosition (). Si GetCurrentPosition () s'exécute avec succès, un objet coordonné est renvoyé à la fonction spécifiée dans la mise en vedette des paramètres. Le deuxième paramètre de la méthode GetCurrentPosition () est utilisé pour gérer l'erreur, qui spécifie la fonction qui s'exécute lorsque l'emplacement de l'utilisateur ne parvient pas.
Regardons d'abord la fonction Downsror (), qui spécifie la gestion de certains codes d'erreur lors de l'obtention de l'emplacement géographique de l'utilisateur:
- FunctionShowerRor (erreur) {
- commutateur (error.code) {
- CaseError.Permission_denided:
- alerte (l'échec de la localisation, l'utilisateur refuse de demander la géolocalisation);
- casser;
- CaseError.Position_unavailable:
- alerte (la localisation a échoué, les informations de localisation ne sont pas disponibles);
- casser;
- CaseError.Timeout:
- alerte (localisation a échoué, demandant d'obtenir un délai d'emplacement de l'utilisateur);
- casser;
- CaseError.unknown_error:
- alerte (l'échec de la localisation, le système de positionnement a échoué);
- casser;
- }
- }
Regardons la fonction showPosition () et appelons la latitude et la longitude des coords pour obtenir la latitude et la longitude de l'utilisateur.
- fonctionshowPosition (position) {
- varlat = position.coords.Latitude; // latitude
- varlag = position.coords.longitude; // longitude
- alert ('lat:' + lat + ', longitude:' + lag);
- }
Utilisez les interfaces Baidu Maps et Google Maps pour obtenir des adresses utilisateur
Comme nous comprenons que la géolocalisation de HTML5 peut obtenir la latitude et la longitude de l'utilisateur, ce que nous devons faire est de convertir les informations de localisation géographique réelle et de localisation réelle significative. Heureusement, les cartes Baidu et Google Maps fournissent des interfaces à cet égard. Nous n'avons qu'à transmettre les informations de latitude et de longitude obtenues par HTML5 à l'interface MAP, et elle renverra l'emplacement géographique de l'utilisateur, y compris les informations provinciales, municipales et régionales, et même des informations détaillées sur l'emplacement géographique telles que les rues et les numéros de maison.
Nous définissons d'abord le div pour afficher l'emplacement géographique sur la page et définissons respectivement l'ID # baidu_geo et id # google_geo. Nous avons juste besoin de modifier la fonction Key Fonction ShowPosition (). Examinons d'abord l'interaction d'interface Baidu Map. Nous envoyons les informations de latitude et de longitude à l'interface de carte Baidu via Ajax, et l'interface renverra les informations provinciales, municipales et de rue correspondantes. L'interface Baidu Map Renvoie une chaîne de données JSON, et nous pouvons afficher les informations requises pour Div # baidu_geo en fonction de nos besoins. Notez que la bibliothèque JQuery est utilisée ici et que le fichier de bibliothèque JQuery doit être chargé en premier.
- fonctionshowPosition (position) {
- varlatlon = position.coords.Latitude + ',' + position.coords.longitude;
- // baidu
- varurl = http: //api.map.baidu.com/geocoder/v2/? ak = c93b5178d7a8ebdb830b9b557abce78b & callback = renderReverse & location = + latlon + & output = json & pois = 0;
- $ .ajax ({
- Type: Get,
- Type de données: JSONP,
- URL: URL,
- beforesend: function () {
- $ (# baidu_geo) .html ('localiser ...');
- },
- Succès: fonction (JSON) {
- if (json.status == 0) {
- $ (# baidu_geo) .html (json.result.formatted_address);
- }
- },
- Erreur: fonction (xmlHttpRequest, TextStatus, Errorthrown) {
- $ (# baidu_geo) .html (latlon + l'emplacement d'adresse a échoué);
- }
- });
- });
Examinons l'interaction interface Google Maps. De même, nous envoyons des informations de latitude et de longitude à l'interface Google Maps via Ajax, et l'interface renverra les détails de la province, de la ville et de la rue correspondants. L'interface Google Maps renvoie également une chaîne de données JSON. Ces données JSON sont plus détaillées que celles renvoyées par l'interface Baidu Maps. Nous pouvons afficher les informations requises pour Div # Google_Geo en fonction de nos besoins.
- fonctionshowPosition (position) {
- varlatlon = position.coords.Latitude + ',' + position.coords.longitude;
- varurl = 'http: //maps.google.cn/maps/api/geocode/json? latlng =' + latlon + '& linguisse = cn';
- $ .ajax ({
- Type: Get,
- URL: URL,
- beforesend: function () {
- $ (# google_geo) .html ('localiser ...');
- },
- Succès: fonction (JSON) {
- if (json.status == 'ok') {
- varresults = json.results;
- $ .each (résultats, fonction (index, array) {
- if (index == 0) {
- $ (# google_geo) .html (array ['formatted_address']);
- }
- });
- }
- },
- Erreur: fonction (xmlHttpRequest, TextStatus, Errorthrown) {
- $ (# google_geo) .html (latlon + emplacement d'adresse a échoué);
- }
- });
- }
Le code ci-dessus intègre respectivement l'interface MAP BAIDU et l'interface de la carte Google dans la fonction de fonction (), et nous pouvons l'appeler selon la situation réelle. Bien sûr, ce n'est qu'une simple application. Nous pouvons développer de nombreuses applications complexes en fonction de cet exemple simple. Il est recommandé d'utiliser un navigateur mobile pour accéder à la démonstration de démonstration.