7
votes

Code postal de géolocalisation

J'utilise le code suivant pour obtenir l'emplacement et la ville, mais je ne peux pas l'obtenir pour me donner le code postal si la personne me donne la permission. S'il vous plaît laissez-moi savoir si cela est possible de faire avec ce code. Tout ce qu'il fait est de remplir un champ de texte si l'autorisation est donnée à l'accès.

<script type="text/javascript">
  if(navigator.geolocation) {
    navigator.geolocation.getCurrentPosition(function(position) {
     $("#location").val(position.address.city+", "+position.address.region);
  });
 }


0 commentaires

3 Réponses :


8
votes

regarder le dernier API de géolocalisation HTML5 , je ne vois pas le support pour Position.Address.City , Position.Address.Région ou Position.Address.City . Donc, je devais dire que cela n'est pas actuellement pris en charge.


mise à jour:

La recherche d'adresse semble être prise en charge dans Firefox par @gaby Aka G. Petrioli Réponse


0 commentaires

10
votes

Essayez position.Address.postalcode

Voir la démo ci-dessous que j'ai faite pour voir ce qui est supporté par votre navigateur / périphérique

https://jsfiddle.net/gaby/sx5cj/


3 commentaires

(Index): 78 [Déprécation] GetCurrentPosition () et Watchposition () ne fonctionnent plus sur des origines non sécurisées. Pour utiliser cette fonctionnalité, vous devez envisager de changer votre application sur une origine sécurisée, telle que HTTPS dans la console.


@Azimuth utilise simplement la version https: // de Jsfiddle. Ont également mis à jour la réponse.


Ne fonctionne pas en chrome. position.Address est indéfini.



5
votes

Il n'y a pas de support pour l'adresse dans l'API de géolocalisation HTML 5, mais vous pouvez y parvenir de la combinaison avec Google Maps API: Voici un exemple Obtenir le code-zip mais vous pouvez l'utiliser pour obtenir l'adresse complète:

if(navigator.geolocation) {
    navigator.geolocation.getCurrentPosition(function(position) {
        var lat = position.coords.latitude;
        var long = position.coords.longitude;
        var point = new google.maps.LatLng(lat, long);
        new google.maps.Geocoder().geocode(
            {'latLng': point},
            function (res, status) {
                var zip = res[0].formatted_address.match(/,\s\w{2}\s(\d{5})/);
                $("#location").val(zip);          
            }
        );
    });
}


3 commentaires

$ ("# endroit"). Val (zip); devrait être $ ("# Emplacement"). Val (Zip [1]); Sinon, il retournerait le contenu de l'ensemble du tableau.


Pas mauvaise idée, mais Google API est-il intégré aux navigateurs modernes?


@Kevindanikowski Non, vous incluez Google Maps API en tant que CDN