我正在尝试使用谷歌places textSearch来发现特定品牌的所有商店(比如说李维斯),所以我将使用next_page_token迭代结果,但我似乎遇到了返回的最大60个结果的问题。这个结果能以某种方式提升吗?或者有人知道有其他服务可以提供这种结果?
发布于 2013-04-17 19:39:20
遗憾的是,除了在textsearch上巧妙地轮询之外,没有其他方法可以绕过60个条目的限制,并且结果不能排序。您最好的解决方案是nearbySearch。API参数和textsearch几乎一样,只有三点不同:
radius将自动设置为50km
rankby=distance
允许您按距location
的距离对结果进行排序(您将看到为什么 is location
,而不再是真正的谷歌地图搜索参数-只是的关键字列表
返回的结果类似于textSearch
返回-而且它们都有一个惟一的ID,这也会派上用场。
如何扫描所有内容
扫描一个区域非常简单。每个查询最多只能得到60个结果--所以我们要做的是按距离排序,这样我们就可以确定集合中的最后一个结果也是最远的。这允许您为您的请求构建一个最大可能半径-并在此基础上进行下一次搜索。
这是在photoshop上的模拟结果。我根据法国的一个点运行了一个随机请求,并使用绿色圆圈绘制了搜索的半径:
绿色圆圈表示结果。这允许我制定三个新的查询,所有三个都在当前区域的边缘(但在它内部):
您将注意到,第一个查询被第二个查询完全覆盖。这使您可以在重叠尽可能少的区域中获得完整的结果,并按ID有效地对它们进行排序(这样您就知道不会有重复的结果)。
警告:50 max半径(最大)将需要1次查询。95公里半径需要四个。140公里的半径需要13。它很快就会上升--所以如果我是你,我会把结果缓存在某个地方。
API字段保证是唯一的-- reference
绑定到您的id
密钥。有什么不同?reference
允许您触发一个地点详细信息请求,以获取有关地点的更新信息(some info here)。
希望这能帮你理清一些事情。
https://stackoverflow.com/questions/16058324
复制相似问题