2

以下代码来自 python 包 geopy ( https://geopy.readthedocs.org/en/1.10.0/ ):

from geopy.geocoders import Nominatim
geolocator = Nominatim()
location = geolocator.reverse("52.509669, 13.376294")
print(location.address)
>>>Potsdamer Platz, Mitte, Berlin, 10117, Deutschland, European Union

它以 lat 和 lon 作为输入并返回地址。但是在我的代码中,我使用 flikcr API 收到了图像的纬度和经度,如下所示

photo_list = flickr.photos.search(api_key=api_key, accuracy = 15, has_geo=1, per_page = 100, extras = 'tags, url_s')

然后我想做以下事情:

for photo in photo_list[0]:
    photo_location = flickr.photos_geo_getLocation(photo_id=photo.attrib['id'])
    lat = photo_location[0][0].attrib['latitude']
    lon = photo_location[0][0].attrib['longitude']

    geolocator = Nominatim()
    location = geolocator.reverse(lat, lon)
    print(location.address)
    >>>Potsdamer Platz, Mitte, Berlin, 10117, Deutschland, European Union

纬度和经度得到了很好的。如果我每次都尝试完美打印它们。此外,我已经在程序顶部导入了 geopy 和所有相关内容。但是我收到错误:

ValueError:必须是坐标对或点。

我是 Python 新手,所以我非常感谢任何帮助!我怎样才能每次都能成功输入纬度和经度。

4

0 回答 0