Obtenir le nom de la ville à l'aide de géolocalisation
J'ai réussi à obtenir à l'utilisateur de la latitude et de la longitude à l'aide de géolocalisation html5.
//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 la seule façon de le faire est d'utiliser un reverse de l'api de géolocalisation. J'ai lu de google documents pour inverser la géolocalisation, mais je ne sais pas comment pour obtenir le résultat sur mon site.
Je ne sais pas comment aller de l'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.
Ce qui est le standard de la façon de le faire?
- Si vous n'envisagez pas d'utiliser les cartes, vous SAVEZ que c'est à l'encontre de Google de service de droit? Point 10.4 ici developers.google.com/maps/terms Pas d'utilisation de Contenu sans une carte Google map. À moins que les Maps Api Documentation expressément vous le permet, vous ne pourrez pas utiliser le Contenu dans un Maps API de mise en Œuvre sans un correspondant de Google map. Par exemple, vous pouvez afficher des images Street View sans carte de Google, parce que les Maps Api Documentation autorise expressément cette utilisation.
- Oui, @PirateApp a un bon point. Il peut y avoir de meilleurs services. J'ai travaillé avec SmartyStreets avant et je sais qu'ils ont beaucoup plus ouvert Termes de Service. La plupart de ces services ne font pas le géocodage inversé, cependant. Je sais que la Texas A&M est un service gratuit mais ils ont CGU avertissement que vous ne pouvez pas collecter des données sur d'autres personnes, et ils ont eu le temps de disponibilité et la précision des questions de avant de.
Vous devez vous connecter pour publier un commentaire.
Vous ferais quelque chose comme ça à l'aide de l'API Google.
Veuillez noter que vous devez inclure les cartes google maps de la bibliothèque pour que cela fonctionne. Google geocoder renvoie un grand nombre de composantes de l'adresse si vous devez faire une supposition éclairée quant à qui on aura la ville.
"administrative_area_level_1" est généralement ce que vous cherchez, mais parfois localité est de la ville, vous êtes après.
De toute façon - plus de détails sur google types de réponse peuvent être trouvés ici et ici.
Ci-dessous est le code qui devrait faire l'affaire:
Une autre approche est d'utiliser mon service, http://ipinfo.io, qui renvoie la la ville, la région et le pays à partir du nom de l'utilisateur actuel de l'adresse IP. Voici un exemple simple:
Voici une vue plus détaillée de JSFiddle exemple qui imprime aussi la réponse complète de l'information, de sorte que vous pouvez voir tous les détails disponibles: http://jsfiddle.net/zK5FN/2/
JS:
HTML:
À l'aide de géolocalisation html5 nécessite l'autorisation de l'utilisateur. Dans le cas où vous ne voulez pas cela, optez pour un externe locator comme https://geoip-db.com IPv6 est pris en charge. Pas de restrictions et un nombre illimité de demandes de permis.
Exemple
Pour un pur exemple en javascript, sans l'aide de jQuery, découvrez cette réponse.
Ici est mis à jour en version de travail pour moi qui permettront à la Ville, Il semble que certains champs sont modifiés dans la réponse json. Se référant précédentes réponses à cette questions. ( Merci à Michal & encore une référence : Lien
Vous pouvez obtenir le nom de la ville, le pays, nom de rue et d'autres données géographiques à l'aide de Google Maps API de Géocodage
et afficher ces données sur la page à l'aide de jQuery
geolocator.js peut le faire. (Je suis l'auteur).
Obtenir Le Nom De La Ville (Limité Adresse)
Obtenir L'Adresse Complète De L'Information
Exemple ci-dessous va d'abord essayer de Géolocalisation HTML5 API pour obtenir les coordonnées exactes. Si échoue ou rejetée, elle se replie sur Geo-IP look-up. Une fois qu'il obtient les coordonnées, il sera inverse de géocodage les coordonnées dans une adresse.
Utilise cette Api Google interne (pour la recherche d'adresse). Donc, avant cet appel, vous devez configurer geolocator avec votre clé API Google.
Geolocator prend en charge la géo-localisation (via HTML5 IP ou de recherches), de géocodage d'adresses (look-up (géocodage inversé), la distance & des durées, des informations de fuseau horaire et beaucoup plus de fonctionnalités...
Après quelques recherches et reconstituer un couple de différentes solutions avec mes propres trucs, je suis venu avec cette fonction:
Vous pouvez utiliser https://ip-api.io/ pour obtenir le Nom de la ville. Il prend en charge IPv6.
Comme un bonus, il permet de vérifier si l'adresse ip est un nœud tor, public proxy ou un spammeur.
Code Javascript:
Code HTML
Sortie JSON
Voici un autre aller à elle .. en Ajoutant plus à la accepté de répondre peut-être plus complet .. et bien sûr, de cas de commutateur rendra l'air élégante.
Comme @PirateApp mentionné dans son commentaire, il est explicitement à l'encontre de Google Maps API de Licence pour utiliser l'API des Cartes comme vous le souhaitez.
Vous avez un certain nombre de solutions de rechange, y compris le téléchargement d'un Geoip base de données et l'interrogation localement ou à l'aide d'un tiers de service API, comme mon service ipdata.co.
ipdata vous donne la géolocalisation, l'organisation, la monnaie, le fuseau horaire, le code appelant, du pavillon et de l'état du Nœud de Sortie Tor de données à partir de n'importe quel adresse IPv4 ou IPv6.
Et est évolutive avec 10 points de terminaison de chaque mesure de gérer >10 000 demandes par seconde!
JS:
HTML:
Le violon; https://jsfiddle.net/ipdata/6wtf0q4g/922/