Google Places API不会将结果限制为给定的radius参数

时间:2019-09-17 13:42:07

标签: node.js google-maps google-api google-places

我正在NodeJS中使用以下代码来检索结果:

return googleMaps.places({
              language: 'en',
              query: keywords,
              location: [loc.lat, loc.lng],
              radius: 5000
            })

如您所见,最大限制为5000米。出于某种原因,我从另一个城市(距那个经纬度约50公里)获得了结果(有些结果在相关距离内,一半不在。)

有什么想法吗?

1 个答案:

答案 0 :(得分:1)

您似乎正在使用Google的地方文字搜索服务。 documentation指出:

  

半径-定义偏向放置的距离(以米为单位)   结果。允许的最大半径为50 000米。里面的结果   该地区的排名将高于该地区以外的排名   搜索圈但是,搜索之外的突出结果   半径可能包括在内。

     

您可以通过传递一个位置和一个   半径参数。这将指示Google地方信息服务执行以下操作:   希望在该圈子内显示结果。 结果超出了定义   区域可能仍会显示。对区域或圆形的偏向结果为   建议改善结果的相关性,否则会造成歧义   查询。

因此,这似乎是API的预期行为。无法将文本搜索结果完全限制在给定位置/半径内。

希望这会有所帮助!