Как легко получить zipcode из общего адреса с Google Maps api?
Я пытаюсь получить почтовый код общего адреса, такого как "los angeles, ca". Когда я это делаю:
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...}]
Я получаю возвращенный объект, у которого нет zipcode... Однако, если я затем возьму возвращаемый из него объект местоположения, тогда я получаю доступ к zipcode:
gcode.geocode({'latLng': results[0].geometry.location}, function(results, status) { log(results[0].address_components[7].long_name) });
>> "90012"
.. Но это кажется расточительным, поскольку мне нужно сделать два обращения к API для этого. Есть ли способ заставить Google первоначально дать мне почтовый индекс?
Ответы
Ответ 1
Почему бы не использовать (например, 1600 + Amphitheatre + Parkway, + Mountain + View - ваш адрес)
http://maps.googleapis.com/maps/api/geocode/json?address=1600+Amphitheatre+Parkway,+Mountain+View,+CA&sensor=true_or_false
Затем проанализируйте JSON для
"long_name": "94043",
"short_name": "94043",
"types": [ "postal_code" ]
} ]
см. здесь → http://code.google.com/apis/maps/documentation/geocoding/