2010-12-21 53 views
40

Me gustaría saber cómo puedo obtener el nombre del país de latitud & longitud mediante JavaScript. Abro al uso de la API de JavaScript de Google Maps. ¿Puedo obtener ciudad y zip también?Obtener el país de latitud longitud

Editar: Mi objetivo es rellenar el campo de dirección automáticamente, no para mostrarlo en un mapa.

+0

http://code.google.com/apis/maps/documentation/geocoding/ – deceze

+2

Ver también ** [Dadas las coordenadas de latitud/longitud, ¿cómo podemos saber el ciudad/país?] (http://stackoverflow.com/questions/6159074/given-the-lat-long-coordinates-how-can-we-find-out-the-city-country) ** – hippietrail

Respuesta

51

No sé si funciona con los mapas de Google, pero hay un servicio web que devuelve un código de país y toma como parámetros el lat y el largo.

Aquí se muestra un ejemplo: http://api.geonames.org/countryCodeJSON?lat=49.03&lng=10.2&username=demo

También encontré una pequeña descripción: código del país

El iso de cualquier punto dado.

  • Tipo de servicio web: Resto
  • Url: ws.geonames.org/countryCode?
  • Parámetros: lat, lng, type, lang, radius (tampón en km de país más cercano en las zonas costeras)
  • Resultado: Devuelve el país iso código para la latitud/longitud dada

Con el parámetro type=xml este servicio devuelve un documento xml con el código de país ISO y el nombre del país. El parámetro opcional lang se puede utilizar para especificar el idioma del nombre del país debe estar en la salida JSON se produce con type=JSON

Ver la docs

Editar:. Tenga en cuenta que demo es sólo un usuario de demostración y debe crear una cuenta de usuario en http://www.geonames.org/login para utilizar el servicio.

+0

¿cómo hago yo? lea estos datos en javascript – aWebDeveloper

+0

geonames.org +1. También consulte http://www.maxmind.com/. –

+0

geonames.org +1 –

5

Sí, puede utilizar los mapas de Google para encontrar el país para determinadas latitudes y longitudes. Use el reverse geocoding service.

Puede obtener el país, la ciudad, el código postal y la dirección completa de la respuesta que obtiene del servidor. Compruebe el ejemplo desde el enlace para más detalles;)

9
<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> 
5

Si una biblioteca autónomo (es decir, sin conexión con el servidor/Internet, y rápido) es deseable, y sólo se requiere información del país, la siguiente biblioteca basada en OpenStreetMap datos pueden ser útiles - 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) { ... }); 

la devolución de llamada se llama con code, el código de país para el LatLng.

+0

¿Cómo puede hacer que esto funcione sin un servidor cuando el javascript no puede leer los archivos json localmente? – CodeCabin

10

Google Geocoding API proporciona estos resultados en formato JSON. Es gratis, pero puede que necesites pagar por acceso ilimitado.

Trate enlace de abajo

http://maps.googleapis.com/maps/api/geocode/json?latlng=11.2742848,75.8013801 
+0

simplemente simple e inteligente. gracias –

+0

¿Qué quiere decir con acceso ilimitado? – CENT1PEDE

+0

La API de geocodificación de Google Maps tiene algunas limitaciones para el uso gratuito. como máximo de solicitudes gratuitas por día es de 2.500. y la solicitud gratuita máxima por segundo es 10. para obtener más detalles, puede visitar https://developers.google.com/maps/documentation/geocoding/usage-limits –

Cuestiones relacionadas