Sve*_*sel 4 python latitude-longitude geopy
有可能的?
我试过:
from geopy.point import Point
from geopy import geocoders
[...]
p = Point(Latitude, Longitude)
lat, lon, altitude = p
height_metres = altitude
Run Code Online (Sandbox Code Playgroud)
但是height_metres总是0.
请注意,使用地址解析器,您将需要一个Google海拔API密钥,该密钥现在需要一个启用了结算功能的项目(截至2018年7月)。
或者,您可以使用开放式海拔公共API。这是返回标高的示例函数(注意python 3.6用于字符串格式化):
import requests
import pandas as pd
# script for returning elevation from lat, long, based on open elevation data
# which in turn is based on SRTM
def get_elevation(lat, long):
query = ('https://api.open-elevation.com/api/v1/lookup'
f'?locations={lat},{long}')
r = requests.get(query).json() # json object, various ways you can extract value
# one approach is to use pandas json functionality:
elevation = pd.io.json.json_normalize(r, 'results')['elevation'].values[0]
return elevation
Run Code Online (Sandbox Code Playgroud)
请注意,API将来可能会更改,我无法评论数据的准确性,但是目前它是Google的不错选择,抽查表明它可以正常工作。
小智 6
地理编码器可能没有geopy:
# pip install geocoder
>>> import geocoder
>>> g = geocoder.elevation('<address or [lat,lng]>')
>>> print (g.meters)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5313 次 |
| 最近记录: |