我正在使用Google Place Autocomplete通过郊区名称检索邮政编码。我当前使用的代码效果很好,并且确实检索了我需要的所有内容,但是,它仅适用于某些郊区,而其他郊区则不提供邮政编码。
例如:
- 澳大利亚维多利亚州拉弗顿(良好)
- 澳大利亚维多利亚墨尔 native 场(良好)
- 澳大利亚维多利亚州墨尔本(无邮政编码)
- 澳大利亚维多利亚州里士满(无邮政编码)
- 等等
HTML
<input id="supplier-area" type="text">
JS
var autocomplete;
function initialize() {
autocomplete = new google.maps.places.Autocomplete(
(document.getElementById('supplier-area')),
{
types: ['(cities)'],
componentRestrictions: {
country: 'au'
}
}
);
google.maps.event.addListener(autocomplete, 'place_changed', function() {
var place = autocomplete.getPlace();
alert(JSON.stringify(place));
});
}
initialize();
最佳答案
由于墨尔本是一个城市,它跨越许多邮政编码。同样,里士满是一个跨越多个邮政编码的郊区(西北地区为 3067,大多数其他地方为 3121)。
您需要更具体地查询才能获取邮政编码。
如果您需要邮政编码,可以输入 reverse geo-code从 getPlace()
返回的纬度/经度。谷歌通常会返回您查询的区域的逻辑中心(市中心/CBD等)。由于纬度/经度是一个精确的点,而不是一个区域,因此没有歧义,并且它将有一个邮政编码。
Google 做出这种假设是不合适的,因为它并非在所有情况下都正确,但如果这是您的应用需要的行为,那么您可以“故意”做出该决定。
关于javascript - 使用 Google 地方信息获取郊区的邮政编码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26568444/