1

总体目标:将完全未知的 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 更适合我的用例?

4

2 回答 2

2

Google Maps(maps.google.com)Google Maps Platform API是两种不同的产品,有时会表现不同。它们的特征、结果和行为并不总是相同的。

一般来说,Places API请求会根据您提供的参数返回显眼的位置。考虑到与您所在位置的距离,您正在寻找的地方可能不是一个突出的兴趣点。

以您的位置“48.16404, 11.60370”为例,您将在 500 距离内获得预期的“英国花园”。这是一个示例请求:https ://maps.googleapis.com/maps/api/place/附近搜索/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 个结果,分成三个页面。您正在寻找的兴趣点也可能在后续页面中。您可以在另一个搜索请求中使用next_page_token参数来访问其他结果

有关“附近地点”搜索的更多信息,您可以查看此链接:https ://developers.google.com/places/web-service/search#PlaceSearchRequests

于 2020-05-15T08:41:32.163 回答
0

这似乎是最近的一个错误,我很确定我以前见过 thsi 工作。

无论排名参数如何,地图搜索显示的地点集与使用 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 使用与提供的参数不同的中心点返回了不正确的结果。

于 2021-09-14T11:27:34.367 回答