Maison interface Web js tutoriel Comment utiliser la fonction de géolocalisation HTML5_jquery

Comment utiliser la fonction de géolocalisation HTML5_jquery

May 16, 2016 pm 04:01 PM
html5 地理位置定位

HTML5 fournit une fonction de géolocalisation (API de géolocalisation), qui peut déterminer la localisation de l'utilisateur. Nous pouvons utiliser cette fonctionnalité de HTML5 pour développer des applications basées sur des informations de géolocalisation. Cet article utilise des exemples pour partager avec vous comment utiliser HTML5 et utiliser les interfaces Baidu et Google Maps pour obtenir des informations de localisation géographique précises des utilisateurs.

La géolocalisation est une nouvelle fonctionnalité de HTML5, elle ne peut donc fonctionner que sur les navigateurs modernes prenant en charge HTML5, en particulier les appareils portables tels que les iPhones, où la géolocalisation est plus précise. Nous devons d'abord détecter si le navigateur de l'appareil de l'utilisateur prend en charge la géolocalisation et, si c'est le cas, obtenir les informations géographiques. Notez que cette fonctionnalité peut porter atteinte à la vie privée de l'utilisateur. Sauf accord de l'utilisateur, les informations de localisation de l'utilisateur ne sont pas disponibles. Par conséquent, lorsque nous accédons à l'application, il nous sera demandé si nous devons autoriser la géolocalisation. .

 
function getLocation(){ 
  if (navigator.geolocation){ 
    navigator.geolocation.getCurrentPosition(showPosition,showError); 
  }else{ 
    alert("浏览器不支持地理定位。"); 
  } 
} 
Copier après la connexion

Le code ci-dessus permet de savoir que si la machine utilisateur prend en charge la géolocalisation, la méthode getCurrentPosition() est exécutée. Si getCurrentPosition() s'exécute avec succès, un objet coordonnées est renvoyé à la fonction spécifiée dans le paramètre showPosition. Le deuxième paramètre showError de la méthode getCurrentPosition() est utilisé pour gérer les erreurs. Il spécifie la fonction à exécuter en cas d'échec de l'obtention de la position de l'utilisateur. .
Examinons d'abord la fonction showError(), qui stipule certaines méthodes de gestion des codes d'erreur en cas d'échec de l'obtention de la localisation géographique de l'utilisateur :

function showError(error){ 
  switch(error.code) { 
    case error.PERMISSION_DENIED: 
      alert("定位失败,用户拒绝请求地理定位"); 
      break; 
    case error.POSITION_UNAVAILABLE: 
      alert("定位失败,位置信息是不可用"); 
      break; 
    case error.TIMEOUT: 
      alert("定位失败,请求获取用户位置超时"); 
      break; 
    case error.UNKNOWN_ERROR: 
      alert("定位失败,定位系统失效"); 
      break; 
  } 
} 
Copier après la connexion

Regardons à nouveau la fonction showPosition(), appelant la latitude et la longitude des coordonnées pour obtenir la latitude et la longitude de l'utilisateur.

function showPosition(position){ 
  var lat = position.coords.latitude; //纬度 
  var lag = position.coords.longitude; //经度 
  alert('纬度:'+lat+',经度:'+lag); 
} 
Copier après la connexion

Utilisez les interfaces Baidu Maps et Google Maps pour obtenir les adresses des utilisateurs
Ci-dessus, nous avons appris que la géolocalisation de HTML5 peut obtenir la longitude et la latitude de l'utilisateur. Nous devons donc convertir la longitude et la latitude abstraites en informations de localisation géographique lisibles et significatives pour l'utilisateur réel. Heureusement, Baidu Maps et Google Maps fournissent des interfaces à cet égard. Il suffit de transmettre les informations de longitude et de latitude obtenues par HTML5 à l'interface cartographique, et la situation géographique de l'utilisateur sera renvoyée, y compris les informations sur la province et la ville, et même les rues. Numéro de maison et autres informations détaillées de localisation géographique.
Nous définissons d'abord le div pour afficher l'emplacement géographique sur la page, en définissant respectivement id#baidu_geo et id#google_geo. Il suffit de modifier la fonction clé showPosition(). Examinons d'abord l'interaction de l'interface de la carte Baidu. Nous envoyons les informations de latitude et de longitude à l'interface de la carte Baidu via Ajax, et l'interface renverra les informations correspondantes sur la province, la ville et la rue. L'interface cartographique Baidu renvoie une chaîne de données JSON Nous pouvons afficher les informations requises dans div#baidu_geo en fonction de nos besoins. Notez que la bibliothèque jQuery est utilisée ici et que le fichier de la bibliothèque jQuery doit être chargé en premier.

 
function showPosition(position){ 
  var latlon = position.coords.latitude+','+position.coords.longitude; 
   
  //baidu 
  var url = "http://api.map.baidu.com/geocoder/v2/?ak=C93b5178d7a8ebdb830b9b557abce78b&callback=renderReverse&location="+latlon+"&output=json&pois=0"; 
  $.ajax({ 
    type: "GET", 
    dataType: "jsonp", 
    url: url, 
    beforeSend: function(){ 
      $("#baidu_geo").html('正在定位...'); 
    }, 
    success: function (json) { 
      if(json.status==0){ 
        $("#baidu_geo").html(json.result.formatted_address); 
      } 
    }, 
    error: function (XMLHttpRequest, textStatus, errorThrown) { 
      $("#baidu_geo").html(latlon+"地址位置获取失败"); 
    } 
  }); 
}); 
Copier après la connexion

Regardons l'interaction de l'interface Google Maps. De même, nous envoyons les 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 correspondantes. L'interface Google Map 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 cartographique Baidu. Nous pouvons afficher les informations requises dans div#google_geo selon nos besoins.

function showPosition(position){ 
  var latlon = position.coords.latitude+','+position.coords.longitude; 
 
  //google 
  var url = 'http://maps.google.cn/maps/api/geocode/json?latlng='+latlon+'&language=CN'; 
  $.ajax({ 
    type: "GET", 
    url: url, 
    beforeSend: function(){ 
      $("#google_geo").html('正在定位...'); 
    }, 
    success: function (json) { 
      if(json.status=='OK'){ 
        var results = json.results; 
        $.each(results,function(index,array){ 
          if(index==0){ 
          $("#google_geo").html(array['formatted_address']); 
          } 
        }); 
      } 
    }, 
    error: function (XMLHttpRequest, textStatus, errorThrown) { 
      $("#google_geo").html(latlon+"地址位置获取失败"); 
    } 
  }); 
} 
Copier après la connexion

Le code ci-dessus intègre respectivement l'interface cartographique Baidu et l'interface cartographique Google dans la fonction showPosition(), que nous pouvons appeler en fonction de la situation réelle. Bien entendu, il ne s'agit que d'une application simple. Nous pouvons développer de nombreuses applications complexes basées sur cet exemple simple. Il est recommandé d'utiliser un navigateur mobile pour accéder à la démonstration DEMO.

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
2 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Adventure: Comment obtenir des graines géantes
1 Il y a quelques mois By 尊渡假赌尊渡假赌尊渡假赌
Combien de temps faut-il pour battre Split Fiction?
4 Il y a quelques semaines By DDD
Musée à deux points: toutes les expositions et où les trouver
1 Il y a quelques mois By 尊渡假赌尊渡假赌尊渡假赌

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Bordure de tableau en HTML Bordure de tableau en HTML Sep 04, 2024 pm 04:49 PM

Guide de la bordure de tableau en HTML. Nous discutons ici de plusieurs façons de définir une bordure de tableau avec des exemples de bordure de tableau en HTML.

Tableau imbriqué en HTML Tableau imbriqué en HTML Sep 04, 2024 pm 04:49 PM

Ceci est un guide des tableaux imbriqués en HTML. Nous discutons ici de la façon de créer un tableau dans le tableau ainsi que des exemples respectifs.

Marge gauche HTML Marge gauche HTML Sep 04, 2024 pm 04:48 PM

Guide de la marge HTML gauche. Nous discutons ici d'un bref aperçu de la marge gauche HTML et de ses exemples ainsi que de son implémentation de code.

Disposition du tableau HTML Disposition du tableau HTML Sep 04, 2024 pm 04:54 PM

Guide de mise en page des tableaux HTML. Nous discutons ici des valeurs de la mise en page des tableaux HTML ainsi que des exemples et des résultats en détail.

Liste ordonnée HTML Liste ordonnée HTML Sep 04, 2024 pm 04:43 PM

Guide de la liste ordonnée HTML. Ici, nous discutons également de l'introduction de la liste et des types HTML ordonnés ainsi que de leur exemple respectivement.

Déplacer du texte en HTML Déplacer du texte en HTML Sep 04, 2024 pm 04:45 PM

Guide pour déplacer du texte en HTML. Nous discutons ici d'une introduction, du fonctionnement des balises de sélection avec la syntaxe et des exemples à implémenter.

Espace réservé d'entrée HTML Espace réservé d'entrée HTML Sep 04, 2024 pm 04:54 PM

Guide de l'espace réservé de saisie HTML. Nous discutons ici des exemples d'espace réservé d'entrée HTML ainsi que des codes et des sorties.

Bouton HTML onclick Bouton HTML onclick Sep 04, 2024 pm 04:49 PM

Guide du bouton HTML onclick. Nous discutons ici de leur introduction, de leur fonctionnement, des exemples et de l'événement onclick dans divers événements respectivement.

See all articles