Google自动填充搜索栏问题

时间:2018-06-07 12:47:22

标签: javascript google-maps-api-3

当我们针对特定国家/地区使用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);
}

1 个答案:

答案 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指示地方自动填充服务仅返回地理编码结果,而不是业务结果。通常,您使用此请求消除指定位置可能不确定的结果的歧义。

希望这能解决你的困惑!