【地理+python】调用第三方api进行地理编码/逆地理编码
import requests
# 地理编码函数:将地址转换为经纬度
def geocode(address):
api_key = 'YOUR_API_KEY' # 替换为你的API密钥
url = f'https://api.mapbox.com/geocoding/v5/mapbox.places/{address}.json?access_token={api_key}&limit=1'
response = requests.get(url)
if response.status_code == 200:
data = response.json()
if data['features']:
return data['features'][0]['center'] # 返回地理编码结果:经纬度
return None
# 逆地理编码函数:将经纬度转换为地址
def reverse_geocode(coordinates):
api_key = 'YOUR_API_KEY' # 替换为你的API密钥
url = f'https://api.mapbox.com/geocoding/v5/mapbox.places/-74.5%2C40.5.json?access_token={api_key}&limit=1'
response = requests.get(url)
if response.status_code == 200:
data = response.json()
if data['features']:
return data['features'][0]['place_name'] # 返回逆地理编码结果:地址
return None
# 示例使用
address = '1600 Amphitheatre Parkway, Mountain View, CA'
coordinates = (40.7128, -74.0060)
print(geocode(address)) # 地址 -> 经纬度
print(reverse_geocode(coordinates)) # 经纬度 -> 地址
在这个代码示例中,我们定义了两个函数geocode
和reverse_geocode
,分别用于地理编码和逆地理编码。这两个函数使用Mapbox API进行地理位置查询,并返回查询结果。用户需要替换YOUR_API_KEY
为自己的Mapbox API密钥,以便进行正常的API调用。
评论已关闭