如何在Python中获取地理位置?
在本文中,我们将讨论如何在输入任何位置名称时获取地理定位,它会提供所有有用的信息,例如邮政编码、城市、州、国家/地区等,以及纬度和经度(特定坐标),反之亦然。反之亦然,我们提供坐标以获取位置名称。
这可以使用Python中的 GeoPy 库来完成。这个库没有内置到Python中,因此需要显式安装。
安装
在您的终端中,只需运行给定的命令:
pip install geopy
方法一:从位置名称获取坐标
使用提供的位置,可以使用 geopy 提取坐标,表示其纬度和经度。因此,它可以用来表示坐标的位置。
方法
- 导入模块
- 从 geopy 导入 Nominatim - Nominatim 是一项免费服务或工具,或者可以作为 API 调用,无需密钥即可在提供名称和地址后为您提供数据,反之亦然。
- 在调用接受user_agent参数的提名工具时,您可以提供任何名称,因为它认为它是为其提供服务的应用程序的名称。
- geocode()函数接受位置名称并返回一个包含所有详细信息的地理数据框,因为它是一个数据框,我们可以通过使用给定的语法简单地调用它来获取地址、纬度和经度
句法:
variablename.address
variablename.latitude
variablename.longitude.
例子:
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(latitude,longitude)
方法
- 导入模块
- 调用提名工具
- 将纬度和经度传递给 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)
输出: