如何根据特定国家/地区获取地点的纬度和经度?

问题描述

我正在研究获取特定地点的纬度和经度的项目,但结果不正确,因为我想要的“x 国家/地区”中的地点与“y 国家/地区”中的名称相同。 我想在搜索结果添加国家/地区属性

我正在使用此代码

from geopy.geocoders import Nominatim

with open('C:/Users/UI UX/Desktop/test.txt') as f:
    lines = f.readlines()

# print(lines)

for line in lines:
    print(line.replace('\n',''))
    geolocator = Nominatim(user_agent="my_user_agent")
    loc = geolocator.geocode(line)
    print("latitude is :",loc.latitude,"\nlongtitude is:",loc.longitude)
    # print(loc.raw)
    print('Location Address: ' + loc.address)
    print('---------------------------------------------------')

请问有什么帮助吗?

解决方法

在您的地理编码请求中,您可以使用以下语法指定国家/地区列表:>>> from pathlib import Path >>> file_list = Path('foo').glob('*.txt') >>> sum(1 for f in file_list if f.name.endswith('.txt') and f.name != 'a.txt') 2 。国家/地区可以由两个字母的国家/地区代码 (ISO 3166-1) 指定。

请参阅 geopy 文档 here 和国家/地区代码列表 here

例如

geocode(countries = your_list)
,

试试这个:

loc = geolocator.geocode(line,exactly_one=False)

它返回与您的查询匹配的位置列表。您可以在返回的列表中找到您的特定国家/地区。

Documentation