我目前在谷歌的AJAX API上失去了一些头发。我所做的是将结构化位置数据转换为Google本地搜索API查询,以便为用户提供替代的地点结果列表。

例如:

http://ajax.googleapis.com/ajax/services/search/local?v=1.0&key=XXX&hl=en_US&mrt=localonly&rsz=large&q=pizza+Neustadt+DE

然而,API有时表现得非常奇怪,通常没有考虑我传递给它的某些参数。例如:

如果我搜索“术语罗马罗马IT”,在Google地图上,它会按预期在罗马找到所有条款。如果我在API上重复相同的搜索,我得到零结果(我必须删除'罗马'或'罗马'才能工作 - 罗马是这里的行政区域,罗马是城市名称。)

为什么?

另一个例子。在德国有20个不同的城镇,城镇和自治市镇。现在,当我在谷歌地图上搜索时,它只找到一个,除非我指定一个额外的限定符,如区域或其他。

现在,在API级别上,我有点期望当传递lat / lon参数以及Neustadt的查询时,通过查看地理编码来选择正确的Neustadt将足够聪明。但这不会发生,它总是选择相同的Neustadt并忽略地理数据。

q=pizza+Neustadt+DE&sll=48.8053,11.7579

我在进行边界框搜索时遇到了类似的问题。边界框似乎完全被忽略了,因为我仍然得到一百公里的结果数据:

q=pizza+Neustadt+DE&sll=48.8053,11.7579&sspn=0.00001,0.00001

最后的结果甚至不在同一个城市;这个微小的边界框不应该导致任何数据吗?我甚至可以通过一个零大小的BBox,我仍然会得到结果。

我知道本地搜索API实际上有相当广泛的文档,但它从未详细说明在何时以及如何构建和评估查询时使用哪些参数,这使得很难得到合适的结果

您是否有任何关于如何掌握Google Local搜索的提示,提示和建议?

<强>更新 我刚发现了一些非常奇怪的东西。有人可以访问这个网站:

http://code.google.com/apis/ajaxsearch /documentation/localsearch/index.html

打开firebug,并在输入此搜索查询时监控HTTP流量:

test Rome Roma IT

你会在地图上得到一堆结果。现在复制通过AJAX联系的URL,并在命令行上向它发送请求:

curl "http://www.google.com/uds/GlocalSearch?key=internal-sample&v=1.0&rsz=large&sll=41.97684819454683%2C12.486648559570312&sspn=0.204185%2C0.549316&q=test%20Rome%20Roma%20IT&lssrc=lsc&lscstyle=final&start=0&callback=_callbacks_._5g139yfuc"

现在我得到ZERO结果。怎么可能呢?它绝对不是关键或回调算法,我删除它们而不改变查询的结果。

当查询来自其中一台服务器时,Google会扩展搜索结果吗?

有帮助吗?

解决方案

我遇到了同样的问题,这似乎归结为许可问题的组合,以及谷歌通过其API公开的内容以及它在地图/谷歌搜索页面中显示的内容是不同搜索的组合(搜索,地图,基地,数据等。)

在许可问题上,与通过API调用的请求(理论上可以自动化)相比,Google可以在用户通过浏览器时显示更多信息。

请参阅此处示例

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top