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

ada*_*dam 6 autocomplete google-maps-api-3 google-places-api

我试图设置谷歌地方自动完成,以从最近的点排序结果.我有这样的代码......

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 );
Run Code Online (Sandbox Code Playgroud)

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

geo*_*zip 6

看看文档

它指出:

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

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

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

这也是javascript服务中提供的

工作实例

  • 我认为问题在于您期望自动完成结果按距离排序。这是不支持的。自动填充的唯一 [componentRestriction](https://developers.google.com/maps/documentation/javascript/reference#ComponentRestrictions) 是国家/地区 (2认同)