当我们针对特定国家/地区使用Google自动填充搜索栏时,会显示该国家/地区未显示的所有地址。
示例地址:
Park Hyatt Sydney,Hickson Road,The Rocks NSW,Australia。
我使用以下代码:
var countryRestrict = {'country': 'au'};
function initAutocomplete() {
autocomplete = new google.maps.places.Autocomplete(
(document.getElementById('autocomplete')),
{types: ['geocode'],componentRestrictions: countryRestrict});
autocomplete.addListener('place_changed', fillInAddress);
}
答案 0 :(得分:0)
country
限制不会导致您无法获得任何结果。它是types: ['geocode']
。这背后的原因是因为 Park Hyatt Sydney,Hickson Road,The Rocks NSW,Australia。的地点类型是establishment
而不是geocode
。
如果你愿意的话:
var options = {
types: ['establishment'],
componentRestrictions: {country: 'au'}
};
然后你就可以看到那个地方的结果。
请记住:如果您为自动填充添加了类型限制,那么它只会显示具有该特定类型的结果。在您的情况下,您使用了geocode
并搜索了类型establishment
。 documentation 说明了这一点:
您可以通过传递types参数将地方自动填充请求的结果限制为特定类型。
它也说:
geocode
指示地方自动填充服务仅返回地理编码结果,而不是业务结果。通常,您使用此请求消除指定位置可能不确定的结果的歧义。
希望这能解决你的困惑!