【问题标题】:Geopy Returns HTTP Error 400: Bad RequestGeopy 返回 HTTP 错误 400:错误请求
【发布时间】:2020-10-04 20:30:40
【问题描述】:

我正在使用 geopy 包来获取位置地理编码,但总是运行到 HTTP Error 400: Bad Request

下面是我的代码,遵循官方文档https://geopy.readthedocs.io/en/stable/

from geopy.geocoders import ArcGIS
geolocator = ArcGIS(scheme="http")
loc_home = geolocator.geocode("175 5th Avenue NYC")

以下是错误:

geopy.exc.GeocoderQueryError: HTTP Error 400: Bad Request

请提前帮助和感谢!

【问题讨论】:

    标签: python google-maps geopy


    【解决方案1】:

    您需要使用https 方案,我猜http 被ArcGIS 阻止了。

    from geopy.geocoders import ArcGIS
    geolocator = ArcGIS(scheme="https")
    
    geolocator.geocode("175 5th Avenue NYC")
    
    #Location(175 5th Ave, New York, 10010, (40.741110006692395, -73.98968797828522, 0.0))
    

    【讨论】:

    • 感谢您的评论。是的,我尝试使用 https 并收到 SSL 证书错误:geopy.exc.GeocoderServiceError: [SSL: CERTIFICATE_VERIFY_FAILED] 证书验证失败:无法获取本地颁发者证书 (_ssl.c:1076)。我认为这与我们的内部设置有关,但是错误请求的 http 错误是有线的。我可以使用 http 连接 ArcGIS,因为之后我可以打印出地理定位器对象,但只是得到这个错误 400,这看起来与传递给地理编码函数的无效参数值有关。
    • 如果 https 有效但 http 无效,则 geopy 包装器存在错误或 ArcGIS 阻止了不安全的请求。你试过stackoverflow.com/questions/27835619/… 吗?
    • 他们也提供了自己的包装器,你试过了吗? developers.arcgis.com/python/guide/install-and-set-up
    • 感谢您的建议。经过额外的调试,我们发现这是因为从我们的服务器到 geopy API 的连接被阻止了。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-07-28
    相关资源
    最近更新 更多