Google会自动填充 - 位置和半径不起作用

时间:2012-08-04 17:57:22

标签: google-maps-api-3 autocomplete google-places-api

我正在尝试设置Google地方自动填充功能,以便从最近的点对结果进行排序。我有这样的代码...

var defaultPlace = new google.maps.LatLng(49.227463, 16.546097);

var optionsAuto = {
    location: defaultPlace,
    radius: 20000,
    types: ['geocode'],
    componentRestrictions: {
        country: 'cz'
    }
};

var autocomplete = new google.maps.places.Autocomplete( inputStart, optionsAuto );

类型和组件限制很有效,但位置和半径似乎不起作用。

3 个答案:

答案 0 :(得分:6)

查看documentation

它声明:

  

半径|定义返回Place结果的距离(以米为单位)。允许的最大半径为50 000米。请注意,如果指定了rankby = distance(在下面的可选参数下描述),则不得包括半径。

听起来你想要可选参数:rankby = distance:

  

rankby |距离。此选项按距离指定位置的距离按升序对结果进行排序。按距离排名结果将设置固定的搜索半径为50km。需要一个或多个关键字,名称或类型。

javascript service

中也提供了哪些内容

Working Example

答案 1 :(得分:0)

可能有人可能不同意我但在我的情况下我定义了没有引号的半径,如下所示

{{theDate | date:'MMM d'}}

所以它没有对半径产生任何影响并且显示结果与半径无关但是当我在其上应用引号时,radius参数似乎正在工作

 var request = {
    location: pyrmont,
        bounds: map.getBounds(),
    radius: 2000,
    zoom: 15,
    types: ['restaurant']
  };

答案 2 :(得分:0)

要返回半径范围内的位置,您需要将 strictbounds 设置为true。

我现在面临的主要问题是Autocomplete没有rankBy。 见here

相关问题