目前Google Places API不支持componentRestrictions
,因此您无法将Places API搜索限制在特定国家/地区。这可能会产生各种意想不到的行为,例如搜索在美国(River Vale)而不是新加坡(Rivervale)找到的“rivervale”(见Codepen)。
我目前的解决方案是通过将国家/地区附加到搜索字符串(例如,“rivervale singapore”)来依赖区域偏差。但是,这种方法也不是万无一失的,因为任何名称中包含国家/地区名称的位置也可能会出现在目标国家/地区之外的结果中。
是否有另一种方法可靠地禁止Places API搜索以仅查找指定国家/地区内的位置?
更新:我知道您可以通过地方自动填充功能小部件添加componentRestrictions
,例如:
var autocomplete = new google.maps.places.Autocomplete(input, {
componentRestrictions: {
country: 'SG'
}
}
这确实限制了自动完成下拉列表以在新加坡找到Rivervale,但是如果用户在没有从自动完成列表中选择的情况下按Enter键,则会返回美国River Vale的标记。