如何使用google maps api从通用地址轻松获取邮政编码?

pat*_*ick 11 google-maps geolocation

我正在尝试获取通用地址的邮政编码,例如"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...}]
Run Code Online (Sandbox Code Playgroud)

我得到一个没有邮政编码的对象返回...但是,如果我然后从那里返回的位置对象,那么我可以访问一个zipcode:

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

..但这似乎很浪费,因为我不得不两次打电话给API来做这件事.有没有办法强迫谷歌最初给我一个邮政编码?

Joh*_*nGa 11

为什么不使用(例如1600 + Amphitheatre + Parkway,+ Mountain + View是您的地址)

http://maps.googleapis.com/maps/api/geocode/json?address=1600+Amphitheatre+Parkway,+Mountain+View,+CA&sensor=true_or_false
Run Code Online (Sandbox Code Playgroud)

然后解析JSON

"long_name": "94043",
  "short_name": "94043",
  "types": [ "postal_code" ]
} ]
Run Code Online (Sandbox Code Playgroud)

请参阅此处 - > http://code.google.com/apis/maps/documentation/geocoding/

  • 但是,正如我在问题中指出的那样,我需要获取通用位置(例如“加利福尼亚州贝弗利山庄”)的邮政编码。没有特定的地址。 (2认同)