【问题标题】:How to get latitude and longitude of place based on specific country?如何根据特定国家/地区获取地方的纬度和经度?
【发布时间】:2021-04-22 12:33:38
【问题描述】:

我正在研究获取特定地点的纬度和经度的项目,但结果不正确,因为我在“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('---------------------------------------------------')

请问有什么帮助吗?

【问题讨论】:

  • 这似乎与谷歌地图无关

标签: python python-3.x geopy nominatim


【解决方案1】:

在您的地理编码请求中,您可以使用以下语法指定国家/地区列表:geocode(countries = your_list)。可以通过两个字母的国家/地区代码 (ISO 3166-1) 指定国家/地区。

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

例如

mycountries = [US,]
loc = geolocator.geocode(line, countries = mycountries)

【讨论】:

    【解决方案2】:

    试试这个:

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

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

    Documentation

    【讨论】:

      猜你喜欢
      • 2017-02-22
      • 1970-01-01
      • 2016-04-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多