提问者:小点点

Google Places API无法按名称查找地方


我有一个应用程序,它使用places API来帮助查找目的地附近的地方(比如伦敦)。我更喜欢使用Neight,因为它可以让我专注于一个领域,而且与文本搜索相比,它也更便宜。

不幸的是,我得到的答案没有太多意义。例如,如果我搜索:

name=London Eye

我得到零结果(不管周围有没有引号)。

但如果我按关键字搜索:

keyword=ferris wheel

伦敦眼回来了。下面是相关的查询:

  • https://maps.googleapis.com/maps/api/place/nearbysearch/json?key=[API_KEY]&sensor=false&location=51.52864165,-0.10179430&radius=47022&name=%22伦敦%20eye%22
  • https://maps.googleapis.com/maps/api/place/nearbysearch/json?key=[API_KEY]&sensor=false&location=51.52864165,-0.10179430&radius=47022&keyword=ferris%20wheel

这有什么道理吗?


共1个答案

匿名用户

问题是你使用了错误的参数。

查看文档,您将看到应该使用的参数是keyword,而不是name

那将是:

https://maps.googleapis.com/maps/api/place/nearbysearch/json?key=[API_KEY]&sensor=false&location=51.52864165,-0.10179430&radius=47022&keyword=%22london%20eye%22

这对我有用!

编辑:

正如我所说,如果你尝试:

https://maps.googleapis.com/maps/api/place/nearbysearch/json?key=[API_KEY]&sensor=false&location=51.52864165,-0.10179430&radius=47022&keyword=%22london%20eye%22&name=%22london%20eye%22

与单独使用这些参数相比,您可以获得更好的返回结果。

更新

从2018年开始,name参数被弃用,而改为keyword参数,因此从现在开始,建议您在请求中只使用keyword参数。

文档当前内容如下

名称-一个术语,以匹配的所有内容,谷歌已索引为这个地方。相当于关键字。名称字段不再仅限于地名。此字段中的值与关键字字段中的值组合,并作为同一搜索字符串的一部分传递。我们建议对所有搜索项仅使用关键字参数。

来源:https://developers.google.com/places/web-service/search#placeSearchRequests