2011-07-31 24 views
10

Estoy tratando de obtener el código postal de una dirección genérica como "los angeles, ca". Cuando hago esto:¿Cómo obtener fácilmente un código postal desde una dirección genérica con la API de Google Maps?

gcode = new google.maps.Geocoder() 
gcode.geocode({'address': 'Los Angeles, CA'}, function(results, status) { log(results); }); 
>> [Object { address_components=[4], formatted_address="Los Angeles, CA, USA", geometry={...}, more...}] 

consigo un objeto devuelto que no tiene un código postal ... Sin embargo, si a continuación, tomar el lugar objeto devuelto por eso, entonces me pongo acceso a un código postal:

gcode.geocode({'latLng': results[0].geometry.location}, function(results, status) { log(results[0].address_components[7].long_name) }); 
>> "90012" 

.. Pero esto parece un desperdicio ya que tengo que hacer dos llamadas a la API para hacer esto ... ¿Hay alguna manera de obligar a Google a darme inicialmente un código postal?

+0

LA es una gran ciudad. Supongo que LA tiene más de un código postal y que el lat/long es solo un punto que han definido que sucede en LA. Si este es el caso, el comportamiento que describió tiene sentido. –

+0

Pero incluso el uso de una ciudad más pequeña como "Beverly Hills, CA" no devuelve un código postal ... ¿No es posible decirle a Google que solo me proporcione un código postal estimado sin realizar dos viajes a la API? – patrick

+0

Todavía hay varios para Beverly Hills. Creo que la API de Google no proporcionará la información del código postal casi de manera uniforme, ya que casi siempre hay varios códigos postales por ciudad. Tendrá que lidiar con ese caso, ya sea que algunos casos más pequeños den o no el código postal. Parece que tendrás que hacer múltiples llamadas ... –

Respuesta

11

Por qué no usar (por ejemplo 1600 + Anfiteatro + Parkway, + Montaña + vista es su dirección)

http://maps.googleapis.com/maps/api/geocode/json?address=1600+Amphitheatre+Parkway,+Mountain+View,+CA&sensor=true_or_false 

Y luego analizar el JSON para

"long_name": "94043", 
    "short_name": "94043", 
    "types": [ "postal_code" ] 
} ] 

ver aquí ->http://code.google.com/apis/maps/documentation/geocoding/

+1

Pero, como dije en mi pregunta, necesito obtener un código postal para una ubicación genérica como "Beverly Hills, CA". No es una dirección específica ... – patrick

+0

No creo que esta respuesta deba haber sido downvoted, ya que el cartel original parece haber sido mal informado sobre cómo funcionan los códigos postales en los EE. UU. Los últimos dos dígitos de un código postal de 5 dígitos generalmente determinan el área de la ciudad, no la ciudad en sí misma como él quería. Los primeros tres dígitos se corresponderán con el estado y la región. Obtiene un código postal de su segunda consulta porque está introduciendo coordenadas en una región de la que la API de Google puede determinar un código postal. – Bill

+0

Esta no es la respuesta. A veces, el código postal está incluido en una dirección que no tiene un '" tipo ": [" postal_code "]' – mitra

Cuestiones relacionadas