自动填充搜索如何显示城市的不同区域,但我的代码显示特定城市以外的原因

时间:2017-01-17 17:02:07

标签: google-maps

我正在寻找马来西亚的Kuala Lampur。但是当我搜索时,它会向我显示瓜拉兰普尔以外的区域。请帮我。我正在使用带有Javascript的Google地图API。 我尝试了很多东西,但我找不到具体的答案。 我从数据库向西南latlng和东北latlng显示边界检查。

var cityBounds = {
      north: 33.6629104
      south: 33.469683
      east: 72.91419970000001
      west: 73.15187969999999
}
var map = new google.maps.Map(document.getElementById('map'), {
    zoom: 10,
    center: {lat: 3.139003, lng: 101.686855}
});
directionsDisplay.setMap(map);
var options = {
    bounds:cityBounds,
    types: ['establishment'],
    componentRestrictions: {country: 'MY'}
};      
var input = (document.getElementById('searchTextField'));
var autocomplete = new google.maps.places.Autocomplete(input,options);

1 个答案:

答案 0 :(得分:0)

Maps JavaScript API 3.27版(目前(2017年1月)为实验版)在google.maps.places.AutocompleteOptions对象规范中引入了一个新字段:

  

strictBounds 一个布尔值,表示自动完成窗口小部件应仅返回在发送查询时位于自动填充窗口小部件边界内的那些位置。将strictBounds设置为false(这是默认值)将使结果偏向于但不限于边界内包含的位置。

https://developers.google.com/maps/documentation/javascript/3.exp/reference#AutocompleteOptions

您可以加载版本3.27并扩展您的选项,如

var options = {
    bounds:cityBounds,
    types: ['establishment'],
    strictBounds: true,
    componentRestrictions: {country: 'MY'}
};