python通过经纬度获取海拔
时间: 2024-10-13 10:09:40 浏览: 22
Python中可以利用第三方库如`geopy`和`requests`结合`geocoders`服务(如Google Maps API、Bing Maps API等)来通过经纬度获取海拔信息。首先你需要安装这些库:
```bash
pip install geopy requests
```
然后你可以使用以下示例代码获取海拔高度:
```python
from geopy.geocoders import Nominatim
import requests
def get_elevation(lat, lon):
# 替换成实际的API密钥
api_key = 'your_api_key'
url = f'https://maps.googleapis.com/maps/api/elevation/json?locations={lat},{lon}&key={api_key}'
try:
response = requests.get(url)
data = response.json()
if response.status_code == 200:
elevation = data['results'][0]['elevation']
return elevation
else:
print(f"Error: {response.status_code}, unable to fetch elevation")
return None
except (KeyError, IndexError, requests.exceptions.RequestException) as e:
print(f"Error fetching elevation: {str(e)}")
return None
# 使用经度纬度获取海拔
latitude = 39.9042
longitude = -75.1611 # 这里是费城的一个例子
altitude = get_elevation(latitude, longitude)
if altitude is not None:
print(f"The elevation at ({latitude}, {longitude}) is {altitude} meters.")
else:
print("Failed to retrieve the elevation.")
```
记得替换`'your_api_key'`为你申请的实际地图API密钥。注意并非所有地图API都提供海拔数据,有些只提供基本的地理坐标信息。