从 gps 坐标确定城市

determine the city from gps coordinates

我正在尝试使用 gps 坐标查找城市 我的数据框看起来像那样

        tripId  latitude    longitude
    0   1828765 50.126219   8.767003
    1   1828765 50.126173   8.766984
    ... ... ... ...
    497 1828714 53.680520   10.428270
    498 1828714 53.680497   10.428355
    499 1828714 53.680484   10.428431

我试过这段代码:

 import numpy as np
    df['location']=np.nan
from geopy.geocoders import Nominatim
geolocator = Nominatim(user_agent="geoapiExercises")
    for i in range(df.shape[0]): 
        df['location'][i] =  geolocator.reverse(str(df['latitude'][i])+","+str(df['longitude'][i]))

但是没用! init() 缺少 3 个必需的位置参数:'address'、'point' 和 'raw' 你们中有人知道如何解决这个问题吗? 谢谢

代码如下,希望对你有帮助:

from geopy.geocoders import Nominatim
import numpy as np

geolocator = Nominatim(user_agent='your_app_name')

coordinates = np.array([
    [50.126219,8.767003],
    [50.126173,8.766984],
    [53.680520,10.428270],
    [53.680497,10.428355],
    [53.680484,10.428431]
])

addresses = []

for coordinate in coordinates:
    addresses.append(geolocator.reverse(coordinate).address)

print(addresses)

# output:
['20, Willmannstraße, Fechenheim, Ost, Frankfurt am Main, Hessen, 60386, Deutschland',
 '20, Willmannstraße, Fechenheim, Ost, Frankfurt am Main, Hessen, 60386, Deutschland',
 'Pöhlen, Schönberg, Sandesneben-Nusse, Herzogtum Lauenburg, Schleswig-Holstein, 22929, Deutschland',
 'Pöhlen, Schönberg, Sandesneben-Nusse, Herzogtum Lauenburg, Schleswig-Holstein, 22929, Deutschland',
 'Pöhlen, Schönberg, Sandesneben-Nusse, Herzogtum Lauenburg, Schleswig-Holstein, 22929, Deutschland']

你唯一的错误是你试图制作格式化打印,而你只需要传递两个坐标。

我让该代码仅保存地址,但如果您需要更多详细信息,可以进入循环并排除 .address 方法。

希望对您有所帮助。祝你好运,伙计。