You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Google Maps API查询异地城市却返回本地结果问题求助

问题排查与解决

核心问题:location参数格式不符合API要求

Google Places API(不管是Text Search还是Nearby Search)的location参数只接受纬度,经度格式的字符串(比如"47.2529,-122.4443"),不支持"Tacoma WA"这类文本地址。当你传入文本地址时,API无法解析该参数,会自动 fallback 到请求发起IP对应的地理位置(也就是你所在的明尼阿波利斯),这就是结果不对的原因。

修正方案

方案1:先将文本地址转成经纬度(推荐)

调用Geocoding API把地址转换成经纬度,再传入location参数,同时可以搭配radius参数限定搜索范围:

def get_geocode(address):
    geocode_params = {"address": address, "key": GOOGLE_API_KEY}
    resp = requests.get("https://maps.googleapis.com/maps/api/geocode/json", params=geocode_params)
    results = resp.json().get("results", [])
    if results:
        loc = results[0]["geometry"]["location"]
        return f"{loc['lat']},{loc['lng']}"
    return None

def get_places(query, location):
    lat_lng = get_geocode(location)
    if not lat_lng:
        return []
    
    parameters = {
        "query": query,
        "location": lat_lng,
        "radius": 50000,  # 50公里范围,可按需调整
        "key": GOOGLE_API_KEY
    }
    
    all_results = []
    response = requests.get(ENDPOINT, params=parameters)
    results = response.json().get("results", [])
    all_results.extend(results)
    return all_results

方案2:直接在查询中包含地点(适合Text Search)

如果使用的是Places Text Search API,可以把地点合并到query参数里,再搭配region参数辅助限定范围:

def get_places(query, location):
    full_query = f"{query} {location}"
    parameters = {
        "query": full_query,
        "region": "us",  # 限定美国地区,可按需调整
        "key": GOOGLE_API_KEY
    }
    
    all_results = []
    response = requests.get("https://maps.googleapis.com/maps/api/place/textsearch/json", params=parameters)
    results = response.json().get("results", [])
    all_results.extend(results)
    return all_results

Cloud Console相关排查

  • 确认你使用的API服务(比如Places Text Search、Nearby Search)已在Cloud Console中启用,未启用会直接返回错误,但不会导致位置偏移。
  • API密钥的IP限制只会影响是否能调用API,不会改变返回结果的地理位置。不存在所谓的“默认地理位置”配置项,所以问题和Cloud Console设置无关。

测试建议

直接在浏览器中构造API请求测试(替换你的密钥):

https://maps.googleapis.com/maps/api/place/textsearch/json?query=cafe&location=47.2529,-122.4443&key=YOUR_API_KEY

如果返回塔科马的结果,说明参数逻辑没问题,再把代码对齐即可。

内容的提问来源于stack exchange,提问作者Justin Clark

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.13 16:33:34