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