web-dev-qa-db-fra.com

Obtenir le pays de latitude longitude

J'aimerais savoir comment obtenir le nom du pays à partir de la latitude et de la longitude à l'aide de JavaScript. Je suis ouvert à l’utilisation de l’API JavaScript de Google Maps. Puis-je aussi obtenir city et zip?

Edit: / Mon but est de remplir le champ d'adresse automatiquement, pas de l'afficher sur une carte.

45
aWebDeveloper

Je ne sais pas si cela fonctionne avec Google Maps, mais il existe un service Web qui renvoie un code de pays et prend comme paramètres lat et long.

Voici un exemple:
http://api.geonames.org/countryCodeJSON?lat=49.03&lng=10.2&username=demo

Renvoie une donnée JSON: {"languages":"de","distance":"0","countryCode":"DE","countryName":"Germany"}

J'ai aussi trouvé une petite description:

Le code pays ISO d'un point donné.

  • Type de service Web: REST
  • URL: ws.geonames.org/countryCode?
  • Paramètres: lat, lng, type, lang, radius (tampon en km pour le pays le plus proche dans les zones côtières)
  • Résultat: renvoie le code pays ISO pour la latitude/longitude donnée

Avec le paramètre type=xml, ce service renvoie un document XML avec le code pays ISO et le nom du pays. Le paramètre facultatif lang peut être utilisé pour spécifier la langue dans laquelle le nom du pays doit figurer. La sortie JSON est générée avec type=JSON

Voir le docs

Edit: Veuillez noter que demo est juste un utilisateur de démonstration et vous devez créer un compte utilisateur sur http://www.geonames.org/login pour pouvoir utiliser le service. 

58
Christian

L'API de géocodage de Google fournit ces résultats dans le format JSON. C'est gratuit mais vous devrez peut-être payer pour un accès illimité.

Essayez le lien ci-dessous 

http://maps.googleapis.com/maps/api/geocode/json?latlng=11.2742848,75.8013801
11
Nishad Up
<form id="form1" runat="server">
<div>
    <script type="text/javascript" src="http://j.maxmind.com/app/geoip.js" ></script>
    <br />Country Code:
    <script type="text/javascript">document.write(geoip_country_code());</script>
    <br />Country Name:
    <script type="text/javascript">document.write(geoip_country_name());</script>
    <br />City:
    <script type="text/javascript">document.write(geoip_city());</script>
    <br />Region:
    <script type="text/javascript">document.write(geoip_region());</script>
    <br />Region Name:
    <script type="text/javascript">document.write(geoip_region_name());</script>
    <br />Latitude:
    <script type="text/javascript">document.write(geoip_latitude());</script>
    <br />Longitude:
    <script type="text/javascript">document.write(geoip_longitude());</script>
    <br />Postal Code:
    <script type="text/javascript">document.write(geoip_postal_code());</script>

</div>
</form>
9
Krishna Patel

Si une bibliothèque autonome (c'est-à-dire sans connexion serveur/Internet, et rapide) est souhaitable et que seules les informations sur les pays sont requises, la bibliothèque suivante basée sur les données openstreetmap peut être utile - https://github.com/hlaw/ codegrid-js

<script type="text/javascript" src="[path]/codegrid.js"></script>
grid = codegrid.CodeGrid(); // initialize

grid.getCode (lat, lng, function (err, code) { ... });

Le rappel est appelé avec code, le code de pays pour la fin.

6
headuck

Oui, vous pouvez utiliser Google Maps pour trouver le pays pour des latitudes et longitudes données. Utilisez le service de géocodage reverse .

Vous pouvez obtenir le pays, la ville, le code postal et l'adresse complète à partir de la réponse fournie par le serveur. Vérifiez l'exemple à partir du lien pour plus de détails;)

5
aniri

Si vous utilisez golang, vous pouvez utiliser l'une de ces 2 bibliothèques pour obtenir le pays. Vous n'avez même pas besoin de faire un appel à l'API, car le jeu de données est intégré et illimité.

https://github.com/SocialHarvest/geobed

https://github.com/bradfitz/latlong

0
pyros2097