2011-01-10 17 views
8

¿Cuál podría ser la mejor forma de obtener la ubicación de un código postal determinado? ¿Funcionaría para los países fuera de los Estados Unidos/Canadá .¡AGRADECEiOS Buscar ubicación (Latitud, longitud) desde Código postal

+0

Puede encontrar la ubicación, proporcionando la dirección de ese lugar – Aditya

+0

para futuras peticiones de referencia se refieren a aquí: - http://stackoverflow.com/questions/9606031/ios-mkmapview-place-annotation-by -using-address-instead-of-lat-long – StuartM

Respuesta

6

uso de la API de Google geolocalizar (probarlo en google.com/maps):

Entrada para un código postal suizo por ejemplo: CH-9014

o un ser francés: FR-34000

o alemán: de-12101

o US: nos -90210

o Canadá: ca-J5Z 1A1

o China: cn-100000

para example:

rendimientos

{ 
    "status": "OK", 
    "results": [ { 
    "types": [ "postal_code" ], 
    "formatted_address": "9014 St Gallen, Switzerland", 
    "address_components": [ { 
     "long_name": "9014", 
     "short_name": "9014", 
     "types": [ "postal_code" ] 
    }, { 
     "long_name": "St Gallen", 
     "short_name": "St Gallen", 
     "types": [ "locality", "political" ] 
    }, { 
     "long_name": "Sankt Gallen", 
     "short_name": "SG", 
     "types": [ "administrative_area_level_1", "political" ] 
    }, { 
     "long_name": "Switzerland", 
     "short_name": "CH", 
     "types": [ "country", "political" ] 
    } ], 
    "geometry": { 
     "location": { 
     "lat": 47.4082855, 
     "lng": 9.3323890 
     }, 
     "location_type": "APPROXIMATE", 
     "viewport": { 
     "southwest": { 
      "lat": 47.3991076, 
      "lng": 9.3180504 
     }, 
     "northeast": { 
      "lat": 47.4199564, 
      "lng": 9.3543340 
     } 
     }, 
     "bounds": { 
     "southwest": { 
      "lat": 47.3991076, 
      "lng": 9.3180504 
     }, 
     "northeast": { 
      "lat": 47.4199564, 
      "lng": 9.3543340 
     } 
     } 
    } 
    } ] 
} 

lo tanto, el código postal suizo 9014 corresponde aprox. a esta ubicación:

"lat": 47.4082855, 
"lng": 9.3323890 

Véase mi respuesta en la API de geolocalizar aquí:
How to get GLatLng object from address string in advance in google maps?

+0

¿Es gratis? –

+0

@Jagdish: ¿Mi código? Sí. El google-api para fines de intranet comercial: no. –

1

GeoNames ofrece una serie de diferentes servicios de geocodificación código postal, incluyendo la búsqueda de la ubicación de un código postal determinado. Ellos son compatibles con varios países diferentes.

Es probable que los más interesados ​​en la API Placename Lookup for postalcode service

+0

Acabo de encontrar este [sitio] (http://download.geonames.org/export/zip/) en GeoNames. Ofrece archivos para diferentes países con el mapeo del código postal a los valores lan/long. Ahora, puedo crear un proceso por lotes y almacenar todos los valores requeridos en mi base de datos, pudiendo cursar valores lat/long para un código postal dado. Gracias :) – kon

1

de Google viene con algunas restricciones bastante desagradables. Es mejor utilizar fuentes abiertas como GeoNames por sugerencia de @Claus Broch.

Estoy agregando esta respuesta para señalar también que MapQuest ha puesto recientemente una API a los datos de OpenStreetMap. No hace (por lo que puedo decir) la búsqueda de código postal, pero los nombres de las ubicaciones, las direcciones, la altitud, etc. son todos libremente consultables. Recientemente lo descubrí y planeo reemplazar mis llamadas a la API de Google Maps tan pronto como pueda.

http://developer.mapquest.com/web/products/open

+0

¿Puedes aclarar a qué te refieres con "restricciones bastante desagradables"? –

+0

Hay límites en la cantidad de llamadas que puede hacer en un día, es una. Lo más importante es que solo puedes usar su API junto con mostrar un mapa de Google.Por lo tanto, usarlo puramente en segundo plano como herramienta de recolección de datos no está permitido. –

Cuestiones relacionadas