从 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 方法。
希望对您有所帮助。祝你好运,伙计。
我正在尝试使用 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 方法。
希望对您有所帮助。祝你好运,伙计。