为什么我的地理定位不起作用?

2024-10-04 05:33:26 发布

您现在位置:Python中文网/ 问答频道 /正文

我的职责是计算从我的公司到任何地址的距离(最后(打印功能)我放了一个地址的例子)。我不知道它为什么不起作用,它说明了回溯错误。在

函数的第一部分,从地址转换为坐标。 第二部分计算距离。在

这是代码

import math
from geopy.geocoders import Nominatim

def Distancia(direccion_domicilio):
    geolocator = Nominatim(user_agent="specify_your_app_name_here")
    location = geolocator.geocode(direccion_domicilio)
    latylon=(location.latitude, location.longitude)


    rad=math.pi/180
    dif_lat = 20.6072848-(latylon[0])
    dif_long = -103.4160099-(latylon[1])
    radio=6372.795477598
    a=(math.sin(rad*dif_lat/2))**2 + math.cos(rad*location.latitud)*math.cos(rad*20.6072848)*(math.sin(rad*dif_long/2)**2)
    distancia=2*radio*math.asin(math.sqrt(a))
    return distancia

print(Distancia("Avenida Guadalupe, Real Guadalupe, Jardines de Chapalita, Zapopan, Jalisco, 45030, México"))

这是错误消息

^{pr2}$

Tags: import距离地址错误locationmathlatrad
1条回答
网友
1楼 · 发布于 2024-10-04 05:33:26

您没有执行整个安装过程。回溯告诉你发生了什么。它表示SSL证书有问题。geopy库从web检索数据(在您的例子中是nomitiam)。 请看一下这个文档:https://geopy.readthedocs.io/en/stable/#geopy.geocoders.options和名为default_ssl_context的选项。 您应该在代码的开头使用此代码(来自上述文档):

  • 要使用SSL,请使用:
    import ssl
    import certifi
    import geopy.geocoders
    ctx = ssl.create_default_context(cafile=certifi.where())
    geopy.geocoders.options.default_ssl_context = ctx
  • 要禁用SSL(不推荐,甚至可能对某些地理位置提供程序不起作用):
^{pr2}$

相关问题 更多 >