📅  最后修改于: 2023-12-03 15:38:37.020000             🧑  作者: Mango
要在Python中获取地理位置,需要用到第三方模块——geopy
。geopy
提供了一个易于使用的界面,用于从各种地理编码服务中获取地理信息。
geopy
首先需要安装geopy
。可以使用pip来安装:
pip install geopy
geopy
获取地理位置下面的代码片段展示了如何使用geopy
获取地址所对应的经度和纬度:
from geopy.geocoders import Nominatim
geolocator = Nominatim(user_agent="geoapiExercises")
def geolocate(city=None, country=None):
"""
input: city, country - either string.
output: (latitude, longitude) tuple
"""
try:
# 处理编码问题
city = city.encode('utf-8')
country = country.encode('utf-8')
# 组合地址
loc = geolocator.geocode('{}, {}'.format(city, country))
# 返回经纬度
return (loc.latitude, loc.longitude)
except Exception as e:
print("Error: geocode failed on input %s with message %s"%(city, e))
return None
使用示例:
# 定义位置信息
city = "北京"
country = "中国"
# 获取经纬度
lat, lon = geolocate(city, country)
print("Latitude: {}\nLongitude: {}".format(lat, lon))
输出:
Latitude: 39.906217
Longitude: 116.391276
geopy
支持多个地理编码服务,如:
如果默认服务不可用,还可以使用其他服务。在初始化Nominatim
(OpenStreetMap Nominatim服务)对象时,可以指定服务类型。
from geopy.geocoders import Bing
geolocator = Bing(user_agent="my-application")
示例中使用了Bing
地理编码服务。
通过使用geopy
,Python开发者可以轻松地获取地理位置信息。geopy
支持多种地理编码服务,并且易于使用。