2013-04-17 42 views
0

我想用谷歌的地方textSearch发现某些品牌的所有商店(可以说Levi's),所以我会通过使用next_page_token遍历结果,但我似乎遇到了最大60个结果的问题返回的。 这个结果可以以某种方式解除,或者是否有人知道可以提供这种结果的另一项服务?谷歌地图全球搜索

回答

1

除了在textsearch上进行智能轮询之外,很遗憾没有办法解决60条目限制,并且结果无法排序。您的最佳解决方案将在nearbySearch。 API参数几乎相同的文本搜索,有三点不同:

  • 你的半径将自动设置50公里
  • rankby=distance允许您通过距离的计算结果,从排序的location(你会发现为什么这很重要)
  • query变得keywords,并不再是真正的谷歌地图搜索参数 - 只是一个关键字

也说回来类似于结果列表返回 - 并且它们带有一个唯一的ID,它也会派上用场。

如何扫描所有内容

扫描区域非常简单。每个查询限制为60个结果 - 所以我们要做的是按距离排序,以便我们确定我们知道该集合的最后结果也是最远的。这可以让你为你的请求建立一个最大可能的半径,并在你的下一个搜索的基础上。

这是一个关于photoshop的模拟结果。我跑了一个随机的请求,基于在法国一个点,用绿色圆圈映射搜索半径:

The first query

绿色圆圈表示的结果。这让我制订了三个新的查询,所有这三个在当前区域的边缘(但里面):

Second round of queries

你会发现,第一个查询完全由第二覆盖。这可以让你在一个尽可能少重叠的区域得到整个结果,并通过ID有效地对它们进行排序(所以你知道你没有重复)。

警告:50公里半径(最大)将需要1个查询。一个95公里的半径需要四个。一个140公里的半径需要13个。它会迅速增加 - 所以如果我是你,我会在某处缓存结果。

id返回字段保证唯一 - reference绑定到您的API密钥。区别? reference允许您触发地点详细信息请求以获取某个地点的更新信息(some info here)。

希望这有助于清除一些东西。

+0

我打算为此创建一个小提琴,但Google Places不提供任何JSONP/CORS替代品......所以您必须自己尝试。 :-( –

+0

真的很失望,没有办法(或另一种服务),但优秀的答案。 – tix3