Google Places API - 附近搜索不如地图准确?
Posted
技术标签:
【中文标题】Google Places API - 附近搜索不如地图准确?【英文标题】:Google Places API - Nearby Search not as accurate as Maps? 【发布时间】:2020-08-28 13:18:11 【问题描述】:总体目标:将一个完全未知的 GPS 坐标列表映射到最近的兴趣点(我不知道坐标是否指的是商店、山脉、博物馆等)。
Google Place API,也就是附近的搜索 (https://developers.google.com/places/web-service/search?hl=de#PlaceSearchRequests),理论上可以解决我的问题:我可以传递 GPS 坐标和半径并返回“地点”列表。 不幸的是,结果并不准确。但是,如果我在地图中“谷歌”相同的坐标,我会得到非常令人满意的结果。
示例:
48.12429、11.56774: 地图显示商店“Kenneth Kobonpue”真的很近; 半径为 10/50/100 的 API 调用根本没有提到这家店
48.15100、11.57964: 地图显示慕尼黑大学; 半径为 10/50/100 的 API 调用只是提到了一些特殊的大学房间
48.16404、11.60370: 地图显示“英国花园”(慕尼黑公园); 半径为 10/50/100 的 API 调用一次未提及此公园
等等
问题:是否可以使用此 API 获得更好的结果?还有其他 (Google) API 更适合我的用例吗?
【问题讨论】:
【参考方案1】:Google Maps(maps.google.com) 和 Google Maps Platform APIs 是两种不同的产品,有时会有不同的行为。它们的特征、结果和行为并不总是相同的。
一般情况下,Places API 请求会根据您提供的参数返回著名地点。考虑到与您所在位置的距离,您正在寻找的地点可能不是一个突出的兴趣点。
获取位置“48.16404, 11.60370”的样本,您将在 500 距离内获得预期的“英式花园”。这是一个样本请求:https://maps.googleapis.com/maps/api/place/nearbysearch/json?location=48.16404%2C%2011.60370&radius=500&key=YOUR_API_KEY
另一种选择是使用 "rankby" 参数并将其设置为 "distance"。这将根据它们与给定位置的距离对结果产生偏差。但是,您需要指定以下一个或多个参数:关键字、名称或类型(如果结果按距离排序,则为必需参数)。这是另一个例子:https://maps.googleapis.com/maps/api/place/nearbysearch/json?location=48.16404%2C%2011.60370&keyword=garden&rankby=distance&key=YOUR_API_KEY
此外,默认情况下,每个附近搜索仅在每次查询时最多返回 20 个建立结果。但是,每次搜索可以返回多达 60 个结果,分成三个页面。您正在寻找的兴趣点也可能在后续页面中。您可以在对access additional results 的另一个搜索请求中使用next_page_token 参数。
有关“附近地点”搜索的更多信息,您可以查看此链接:https://developers.google.com/places/web-service/search#PlaceSearchRequests
【讨论】:
谢谢!问题是:我的总体目标是将完全未知的 GPS 点映射到 POI(“用户现在在哪里?”)。因此,我无法添加任何指定参数,例如“keyword=garden”或扫描所有返回的观察结果(因为我不知道我在寻找什么)。但是,如果我将这些 GPS 数据插入地图,结果相当不错。【参考方案2】:这似乎是最近的一个错误,我很确定我以前看到过这个问题。
Maps search 显示 very different set of places 与 使用 APi,不管排名参数https://maps.googleapis.com/maps/api/place/nearbysearch/json?keyword=grocery&radius=5000&location=51.5183332%2C-0.2752538&key=[YOUR_KEY_HERE]
在这种情况下,很明显平台 API 使用与提供的参数不同的中心点返回了不正确的结果。
【讨论】:
以上是关于Google Places API - 附近搜索不如地图准确?的主要内容,如果未能解决你的问题,请参考以下文章
使用适用于 android 的 google places api 网络服务搜索特定的附近地点
使用 Google Places API 获得 20 多个结果
Google Places API 结果与 Google 搜索不匹配
需要一个类似于 Yelp 和 Google Places 的良好商业搜索 API
Google 的 Places API 和 JQuery 请求 - Access-Control-Allow-Origin 不允许来源 http://localhost