首页 > 解决方案 > 我想要与谷歌搜索特定查询时相同的查询结果

问题描述

我正在使用 Google Place API 根据我的查询获取地点列表,但我没有得到与谷歌给出的相同列表。事实上,我很困惑是否应该在 Google Place API 中使用附近搜索或文本搜索。

正如我所提到的,我得到的结果与谷歌地图为查询提供的结果不同。我也提供了位置。

https://maps.googleapis.com/maps/api/place/textsearch/json?location=22.258651999999998,71.1923805&query=cafe&key=API_KEY

与 Google 搜索相比,此 API 调用给了我不同的结果,并且给定的位置是我在 Google 中搜索的当前位置。因此,如果我经过我当前的位置,那么我认为两者的结果应该是相同的,但我没有得到它。

标签: javascriptc#web-servicesgoogle-places-api

解决方案


Google Places API 不会返回与使用 Google 地图进行搜索相同的结果。我假设这就是您所说的“在 Google 中搜索”的意思。我们不确定谷歌地图的搜索算法是什么,他们也不会告诉我们。

Places API 响应由请求类型(查找地点、附近、文本)和您提供的参数决定。我也一直在努力寻找正确的组合来获得与谷歌地图相同的结果。

我使用您指定的纬度/经度和附近的咖啡馆在 Google 地图上进行了搜索。通过以下地点请求,我能够获得几乎相同的咖啡馆列表:

https://maps.googleapis.com/maps/api/place/nearbysearch/json?location=22.258651999999998,71.1923805&keyword=cafe&rankby=distance&key=API_KEY

对此请求的前 6 个响应列出了 Google 地图所做的相同业务,并且顺序相同。其余的回复都是咖啡馆类型的企业,与谷歌地图列出的相同,但顺序不同。Places 响应排除了出现在 Google Maps 列表中的餐厅类型企业,这是一个更好的响应。

请注意,我使用“附近”搜索来获取这些结果。它更适合您的用例。在进行不明确的地址查询时,根据 Places API 文档的文本搜索是最有用的。


推荐阅读