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


Python中有很多库提供地理位置服务,其中最值得注意的是geopy模块,它允许程序员对地址和地点进行地理编码和反向地理编码。geopy包简化了计算两点之间距离的过程,还提供了两点之间距离的计算。

Python中有一些库允许操作地理数据,包括GeoDjango、GeoPandas和PyProj。这些库简化了程序员操作地理数据(如点、线和多边形)的过程,从而可以开发需要地图和空间分析的应用程序。

可以使用geopy库在Python中获取地理位置。以下步骤指导您如何在Python中获取地理位置:

算法

  • 在命令提示符或终端中,输入pip install geopy来安装Geopy库。

  • 导入所需的Geopy库模块。地理编码需要Nominatim类,表示地理点的Point类也是必需的。

from geopy.geocoders import Nominatim
from geopy.point import Point
  • 创建一个Nominatim类对象,这将允许您执行地理编码。您可以传入用户代理字符串来标识您的程序。

  • 要对地址或位置进行地理编码,请使用Nominatim类的geocode方法。此方法接受您要进行地理编码的位置的字符串。

语法

geolocator = Nominatim(user_agent="my_app")
location = geolocator.geocode("1600 Amphitheatre Parkway, Mountain View, CA")
  • geocode函数返回一个Location对象,其中包含有关地理编码位置的信息。可以通过Point对象的latitude和longitude属性访问位置的纬度和经度坐标。

语法

point = Point(location.latitude, location.longitude)

方法一:从名称获取位置信息

示例1

可以使用geopy提取给定地点的坐标或纬度和经度。它可以用来用坐标表示位置。

# importing geopy library
from geopy.geocoders import Nominatim

# calling the Nominatim tool
loc = Nominatim(user_agent="Get Prayagraj")

# entering the location name
getLoc = loc.geocode("Civil Lines Prayagraj")

# printing address
print(getLoc.address)

# printing latitude and longitude
print("Latitude = ", getLoc.latitude, "\n")
print("Longitude = ", getLoc.longitude)

输出

Civil Lines Prayagraj , Uttar Pradesh , 211001 , India
Latitude =25.454479
Longitude = 81.8338255

方法二:使用纬度和经度识别位置

此方法与上述方法完全相同;唯一的区别是,我们将使用reverse()方法替换geocode函数,该方法接收坐标(纬度和经度)作为参数。此方法在接收到坐标后返回地址。

示例2

# importing modules
from geopy.geocoders import Nominatim

# calling the nominatim tool
geoLoc = Nominatim(user_agent="GetPrayagraj")

# passing the coordinates
locname = geoLoc.reverse("26.7674446, 81.109758")

# printing the address/location name
print(locname.address)

输出

Vinayak City Centre , Tashkant Marg , Civil Lines , Prayagraj , Uttar Pradesh , 211001 , India

结论

在Python中获取地理位置数据,Google Maps API是最受欢迎和最友好的方法之一,但还有其他选择。通过安装googlemaps库并提供有效的API密钥,我们可以快速获取任何地址的经度和纬度坐标。其他选择包括OpenStreetMap API和GeoPy库。

安全性以及灵活性。通过几个简单的步骤,开发人员可以定义自定义装饰器并将其应用于视图,以修改其行为或强制执行访问控制。

更新于:2023年7月21日

7000+ 次浏览

启动你的职业生涯

完成课程获得认证

开始学习
广告