📜  如何在Python中获取地理位置?

📅  最后修改于: 2022-05-13 01:55:41.811000             🧑  作者: Mango

如何在Python中获取地理位置?

在本文中,我们将讨论如何在输入任何位置名称时获取地理定位,它会提供所有有用的信息,例如邮政编码、城市、州、国家/地区等,以及纬度和经度(特定坐标),反之亦然。反之亦然,我们提供坐标以获取位置名称。

这可以使用Python中的 GeoPy 库来完成。这个库没有内置到Python中,因此需要显式安装。

安装

在您的终端中,只需运行给定的命令:

方法一:从位置名称获取坐标

使用提供的位置,可以使用 geopy 提取坐标,表示其纬度和经度。因此,它可以用来表示坐标的位置。

方法

  • 导入模块
  • 从 geopy 导入 Nominatim - Nominatim 是一项免费服务或工具,或者可以作为 API 调用,无需密钥即可在提供名称和地址后为您提供数据,反之亦然。
  • 在调用接受user_agent参数的提名工具时,您可以提供任何名称,因为它认为它是为其提供服务的应用程序的名称。
  • geocode()函数接受位置名称并返回一个包含所有详细信息的地理数据框,因为它是一个数据框,我们可以通过使用给定的语法简单地调用它来获取地址、纬度和经度

句法:

例子:

Python3
# importing geopy library
from geopy.geocoders import Nominatim
  
# calling the Nominatim tool
loc = Nominatim(user_agent="GetLoc")
  
# entering the location name
getLoc = loc.geocode("Gosainganj Lucknow")
  
# printing address
print(getLoc.address)
  
# printing latitude and longitude
print("Latitude = ", location.latitude, "\n")
print("Longitude = ", location.longitude)


Python3
# importing modules
from geopy.geocoders import Nominatim
  
# calling the nominatim tool
geoLoc = Nominatim(user_agent="GetLoc")
  
# passing the coordinates
locname = geoLoc.reverse("26.7674446, 81.109758")
  
# printing the address/location name
print(locname.address)


输出:

方法二:从经纬度获取地名

在这个方法中,所有的东西都和上面一样,唯一的区别是我们现在使用reverse()方法,它接受坐标(纬度和经度)作为参数,而不是使用地理编码函数,这个方法给出了地址为它提供坐标。

句法:

方法

  • 导入模块
  • 调用提名工具
  • 将纬度和经度传递给 reverse()
  • 打印位置名称

例子:

蟒蛇3

# importing modules
from geopy.geocoders import Nominatim
  
# calling the nominatim tool
geoLoc = Nominatim(user_agent="GetLoc")
  
# passing the coordinates
locname = geoLoc.reverse("26.7674446, 81.109758")
  
# printing the address/location name
print(locname.address)

输出: