提问人:Justin Clark 提问时间:8/8/2023 最后编辑:Nick ODellJustin Clark 更新时间:8/8/2023 访问量:22
即使我查询另一个城市,Gmaps 也只能在本地生成结果
Gmaps results only local even when i query another city
问:
我制作了一个 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)
清除缓存和 cookie 也无济于事。对我来说唯一有意义的是我的云控制台中的设置,但我找不到任何可能导致这种情况的原因。
答:
location 参数的文档说,必须将其指定为纬度/经度对:
位置
检索地点信息的点。这必须指定为 。
latitude,longitude
https://developers.google.com/maps/documentation/places/web-service/search-text#location
您需要先对位置进行地理编码,然后才能在查询中使用该位置。
使用指定或显式放置位置的参数。location
latlng
query
不能在参数中使用地址名称。您应该使用的是文档中提到的坐标:location
latlng
"...这必须指定为纬度,经度。
我尝试对您指定的位置(华盛顿州塔科马)进行地理编码。因此,您的查询应如下所示: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”一起放在参数中,而不是包含参数。查询应如下所示:latlng
location
query
https://maps.googleapis.com/maps/api/place/textsearch/json?query=food%20in%20Tacoma%20WA&key=API_KEY
这应该为您提供预期的结果,而不是您所在地区的当地食物。
最可能的原因是您使用的值无效,它使用您当前的位置搜索“食物”。location
我希望这会有所帮助!
评论