即使我查询另一个城市,Gmaps 也只能在本地生成结果

Gmaps results only local even when i query another city

提问人:Justin Clark 提问时间:8/8/2023 最后编辑:Nick ODellJustin Clark 更新时间:8/8/2023 访问量:22

问:

我制作了一个 python 程序,它采用业务类型和位置,然后在该位置输出结果。在双子城中,输出始终是本地的。

def get_places(query, location):
    parameters = {"query": query, "location": location, "key": GOOGLE_API_KEY}

    all_results = []
    response = requests.get(ENDPOINT, params=parameters)
    results = response.json().get("results", [])
    all_results.extend(results)

结果打印确认它应该在华盛顿州塔科马搜索,但相反,我不断得到我住的地方明尼阿波利斯的结果: https://maps.googleapis.com/maps/api/place/textsearch/json?query=food&location=tacoma%2C+WA&key=xxxxxxxxxKEYxxxxxxxxxx&pagetoken=AUacShjNDU-_ibehFFVXMZseXVaF3h2S6P4DAXaIwWpJHgPuDvcCF95vgMiYjBmPiQOtiEcJvmLuFNWuoQBWEw1RYH8FKlPi7h4-jUsq2oYdpeEsoT00YojkdA7GofRggFd9KMCoRM_r-lyXnD7P4ZD6ylkeM029ycQ-9v6jdt6qobrmIq3Y6gikuRxOxHINMaFpnu-EMK5JvGkX46L_tEqz_dbur-rio4ivQPLvygqKcAjMfdMFrQWPsGzKMC7FtTVTCpwoGKKlEOIAr4cxNHtzGBgjTkUH4idJNKlCWpS1NJi15s-J40A1wJ0Wg5oFGV3OrCh5rUHR_ym28B98w8dnrMxibECfdljveS89MWJRR7BxIrQeLSYheNgu-_-_T0rmFNA

清除缓存和 cookie 也无济于事。对我来说唯一有意义的是我的云控制台中的设置,但我找不到任何可能导致这种情况的原因。

python 函数 google-places-api jsonresult

评论


答:

0赞 Nick ODell 8/8/2023 #1

location 参数的文档说,必须将其指定为纬度/经度对:

位置

检索地点信息的点。这必须指定为 。latitude,longitude

https://developers.google.com/maps/documentation/places/web-service/search-text#location

您需要先对位置进行地理编码,然后才能在查询中使用该位置。

0赞 Yrll 8/8/2023 #2

使用指定或显式放置位置的参数。locationlatlngquery

不能在参数中使用地址名称。您应该使用的是文档中提到的坐标:locationlatlng

"...这必须指定为纬度,经度。

我尝试对您指定的位置(华盛顿州塔科马)进行地理编码。因此,您的查询应如下所示:47.25248908430412, -122.44652831940736

https://maps.googleapis.com/maps/api/place/textsearch/json?query=food&location=47.25248908430412,%20-122.44652831940736&key=API_KEY

执行此操作的另一种方法是在查询参数本身中显式提及位置。文档中参数描述下的注释也是这样说的:location

"如果查询包含显式位置(如 Market in Barcelona),则 location 参数可能会被覆盖。在查询周围使用引号也可能影响为位置半径赋予的权重。"

这意味着,您可以只将“Tacoma WA”与字符串“food”一起放在参数中,而不是包含参数。查询应如下所示:latlnglocationquery

https://maps.googleapis.com/maps/api/place/textsearch/json?query=food%20in%20Tacoma%20WA&key=API_KEY

这应该为您提供预期的结果,而不是您所在地区的当地食物。

最可能的原因是您使用的值无效,它使用您当前的位置搜索“食物”。location

我希望这会有所帮助!