谷歌地点API找不到指定名称的地点。

5
我可以帮助您翻译以下内容:

我有一个应用程序,使用地点API来帮助找到靠近目的地(如伦敦)的地点。我更喜欢使用附近功能,因为它允许我专注于一个区域,并且与文本搜索相比更便宜。

不幸的是,我得到了一些不太合理的答案。例如,如果我搜索:

name=London Eye

我没有获取到任何结果(无论是否用引号包含搜索词)。
但是如果我按关键词搜索:
keyword=ferris wheel

伦敦眼已返回。以下是相关查询: 这是关于编程的问题吗?
2个回答

10

问题在于您使用了错误的参数。

请查看文档,您会发现应该使用keyword而不是name参数。

然后它将是:

https://maps.googleapis.com/maps/api/place/nearbysearch/json?key=[API_KEY]&sensor=false&location=51.52864165,-0.10179430&radius=47022&keyword=%22london%20eye%22

这对我很有效!

编辑:

正如我所说,如果你尝试:

https://maps.googleapis.com/maps/api/place/nearbysearch/json?key=[API_KEY]&sensor=false&location=51.52864165,-0.10179430&radius=47022&keyword=%22london%20eye%22&name=%22london%20eye%22

使用该参数会得到比仅使用这些参数更多且更好的结果。

更新

自2018年起,name参数已被弃用,建议您在请求中只使用keyword参数。目前文档的说明如下:

name - 与Google为该地点索引的所有内容进行匹配的术语。等同于keyword参数。现在不再限于地名。此字段中的值将与keyword字段中的值组合,并作为同一搜索字符串的一部分传递。 我们建议对所有搜索项仅使用keyword参数。

来源:https://developers.google.com/places/web-service/search#PlaceSearchRequests


谢谢您的回复。这里的文档:https://developers.google.com/places/documentation/search 表明关键字和名称都是可选参数。无论如何,我会按照您的方式尝试! - Ken Anderson
你说得对,不同之处在于name以更严格的方式将你的输入与地点名称进行比较。但是你知道,我刚刚使用相同的信息检查了它们两个,它返回了很多结果,所有这些结果都包括name输入在结果中。我现在正在编辑答案。 :) - unmultimedio

0

出于安全和隐私考虑,我已从帖子中删除了API密钥。请不要在公共网站上分享私人API密钥,并确保按照https://developers.google.com/maps/api-key-best-practices#restrict_apikey进行限制。 - Yrll

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接