Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/scala/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Google maps 谷歌定位API与地图:为什么相同的查询会产生不同的结果?_Google Maps_Geolocation_Google Api_Google Local Search - Fatal编程技术网

Google maps 谷歌定位API与地图:为什么相同的查询会产生不同的结果?

Google maps 谷歌定位API与地图:为什么相同的查询会产生不同的结果?,google-maps,geolocation,google-api,google-local-search,Google Maps,Geolocation,Google Api,Google Local Search,目前,我对谷歌的ajaxapi有些担心。我所做的是将结构化的位置数据转换为Google本地搜索API查询,以便为用户提供一个位置的替代结果列表 例: 然而,API有时表现得非常奇怪,通常没有考虑我传递给它的某些参数。例如: 如果我在谷歌地图上搜索“term Roma IT”,它会像预期的那样找到罗马的所有术语。如果我在API上重复相同的搜索,结果为零(我必须删除“Roma”或“Rome”才能让它工作——Roma是这里的行政区域,Rome是城市名称) 为什么呢 另一个例子。德国大约有20个不同的城

目前,我对谷歌的ajaxapi有些担心。我所做的是将结构化的位置数据转换为Google本地搜索API查询,以便为用户提供一个位置的替代结果列表

例:

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

如果我在谷歌地图上搜索“term Roma IT”,它会像预期的那样找到罗马的所有术语。如果我在API上重复相同的搜索,结果为零(我必须删除“Roma”或“Rome”才能让它工作——Roma是这里的行政区域,Rome是城市名称)

为什么呢

另一个例子。德国大约有20个不同的城镇、城市和自治区,称为纽斯塔特。现在,当我在谷歌地图上搜索时,它只会找到一个,除非我指定一个额外的限定符,比如一个地区或其他什么

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

q=pizza+Neustadt+DE&sll=48.8053,11.7579
在进行边界框搜索时,我也遇到了类似的问题。边界框似乎被完全忽略了,因为我仍在获取距离100公里的结果数据:

q=pizza+Neustadt+DE&sll=48.8053,11.7579&sspn=0.00001,0.00001
最后的结果不在同一个城市;小小的边界框不应该产生任何数据吗?我甚至可以通过一个零尺寸的BBox,我仍然可以得到结果

我知道本地搜索API实际上有一个相当广泛的文档,但它从来没有详细说明在什么时候以及如何构造和计算查询时使用了哪些参数,这使得获得良好的结果非常困难

你对如何使用谷歌本地搜索有什么建议吗

更新: 我只是发现了一些很奇怪的事情。请有人访问此网站:

打开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"
现在我得到的结果是零。这怎么可能呢?这肯定不是键或回调参数,我删除了它们,而没有对查询结果进行任何更改


当一个查询来自谷歌的一个服务器时,谷歌是否会扩展他们的搜索结果?

我遇到了完全相同的问题,这似乎是由许可问题和谷歌通过其API公开的内容以及它在地图/谷歌搜索页面中显示的内容是不同搜索的组合造成的(搜索、地图、数据库、数据等)

在授权问题上,谷歌似乎可以在用户通过浏览器访问时显示更多信息,而不是通过API调用(理论上可以自动执行)的请求


请参阅示例。

谢谢您的指针。您对被忽略的bbox参数有何看法?我提供了sll参数或address元素作为“q”术语的一部分,但不是同时提供。我刚刚用另一个非常奇怪的观察结果更新了我的问题。您能确认吗?谢谢Dave。
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"