J'ai réussi à obtenir la latitude et la longitude de l'utilisateur en utilisant la géolocalisation HTML.
//Check if browser supports W3C Geolocation API
if (navigator.geolocation) {
navigator.geolocation.getCurrentPosition(successFunction, errorFunction);
}
//Get latitude and longitude;
function successFunction(position) {
var lat = position.coords.latitude;
var long = position.coords.longitude;
}
Je veux afficher le nom de la ville, il semble que le seul moyen de l'obtenir soit d'utiliser une API de géolocalisation inversée. J'ai lu la documentation de Google pour la géolocalisation inversée mais je ne sais pas comment obtenir la sortie sur mon site.
Je ne sais pas comment utiliser ceci: "http://maps.googleapis.com/maps/api/geocode/json?latlng='+lat+','+long+'&sensor=true"
pour afficher le nom de la ville sur la page.
Comment puis-je atteindre cet objectif?
javascript
html
geolocation
lisovaccaro
la source
la source
Réponses:
Vous feriez quelque chose comme ça en utilisant l'API Google.
Veuillez noter que vous devez inclure la bibliothèque google maps pour que cela fonctionne. Le géocodeur Google renvoie un grand nombre de composants d'adresse, vous devez donc faire une estimation éclairée de celui qui aura la ville.
"administrative_area_level_1" est généralement ce que vous recherchez, mais parfois la localité est la ville que vous recherchez.
Quoi qu'il en soit - plus de détails sur les types de réponse Google peuvent être trouvés ici et ici .
Voici le code qui devrait faire l'affaire:
la source
Une autre approche consiste à utiliser mon service, http://ipinfo.io , qui renvoie le nom de la ville, de la région et du pays en fonction de l'adresse IP actuelle de l'utilisateur. Voici un exemple simple:
Voici un exemple JSFiddle plus détaillé qui imprime également les informations de réponse complètes, afin que vous puissiez voir tous les détails disponibles: http://jsfiddle.net/zK5FN/2/
la source
L'utilisation de la géolocalisation html5 nécessite l'autorisation de l'utilisateur. Au cas où vous ne le souhaiteriez pas, optez pour un localisateur externe tel que https://geolocation-db.com IPv6 est pris en charge. Aucune restriction et demandes illimitées autorisées.
Exemple
Pour un exemple purement javascript, sans utiliser jQuery, consultez cette réponse.
la source
Vous pouvez obtenir le nom de la ville, du pays, du nom de la rue et d'autres données géographiques à l'aide de l'API de géocodage de Google Maps
et d'afficher ces données sur la page en utilisant jQuery
la source
Voici une version de travail mise à jour pour moi qui obtiendra City / Town.Il semble que certains champs soient modifiés dans la réponse json. Se référant aux réponses précédentes pour ces questions. (Merci à Michal et une autre référence: Lien
la source
geolocator.js peut le faire. (Je suis l'auteur).
Obtenir le nom de la ville (adresse limitée)
Obtenir des informations d'adresse complètes
L'exemple ci-dessous essaiera d'abord l'API de géolocalisation HTML5 pour obtenir les coordonnées exactes. En cas d'échec ou de rejet, il reviendra à la recherche Geo-IP. Une fois qu'il a obtenu les coordonnées, il géocodera les coordonnées en une adresse.
Cela utilise les API Google en interne (pour la recherche d'adresse). Donc, avant cet appel, vous devez configurer le géolocalisateur avec votre clé API Google.
Geolocator prend en charge la géolocalisation (via HTML5 ou recherches IP), le géocodage, les recherches d'adresses (géocodage inversé), la distance et les durées, les informations de fuseau horaire et bien d'autres fonctionnalités ...
la source
Après avoir cherché et assemblé quelques solutions différentes avec mes propres trucs, j'ai trouvé cette fonction:
la source
Vous pouvez utiliser https://ip-api.io/ pour obtenir le nom de la ville. Il prend en charge IPv6.
En prime, il permet de vérifier si l'adresse IP est un nœud tor, un proxy public ou un spammeur.
Code Javascript:
Code HTML
Sortie JSON
la source
Comme @PirateApp l'a mentionné dans son commentaire, il est explicitement contraire à la licence d'API Maps de Google d'utiliser l'API Maps comme vous le souhaitez.
Vous avez un certain nombre d'alternatives, y compris le téléchargement d'une base de données Geoip et l'interrogation localement ou l'utilisation d'un service API tiers, tel que mon service ipdata.co .
ipdata vous donne la géolocalisation, l'organisation, la devise, le fuseau horaire, le code d'appel, l'indicateur et les données d'état du nœud de sortie Tor à partir de n'importe quelle adresse IPv4 ou IPv6.
Et est évolutif avec 10 points de terminaison globaux capables chacun de gérer plus de 10 000 requêtes par seconde!
Le violon; https://jsfiddle.net/ipdata/6wtf0q4g/922/
la source
Voici un autre essai ... Ajouter plus à la réponse acceptée peut-être plus complète .. bien sûr, le boîtier de commutation le rendra élégant.
la source
Voici une fonction simple que vous pouvez utiliser pour l'obtenir. J'ai utilisé axios pour faire la demande d'API, mais vous pouvez utiliser n'importe quoi d'autre.
la source