2012-07-16 33 views
4

我也在SO的GIS部分發布了這個問題。由於我不確定這是不是一個'純粹'的python問題,我還會在這裏再次提出。柵格:如何使用python獲取lat/long的高程?

我不知道是否有人在從光柵獲得的高程數據,而不使用ArcGIS一些經驗,而得到的信息爲Python listdict

我得到我的XY數據作爲元組列表。

我想遍歷列表或將其傳遞給函數或類方法以獲取xy對的相應高程。

我做了一些關於該主題的研究,並且gdal API聽起來很有希望。任何人都可以告訴我如何去處理事情,陷阱,示例代碼?其他選項?

感謝你的努力,LarsVegas

回答

3

我建議您查看Google Elevation API

這是非常簡單的使用方法:

http://maps.googleapis.com/maps/api/elevation/json?locations=39.7391536,-104.9847034&sensor=true_or_false

{ 
    "results" : [ 
     { 
     "elevation" : 1608.637939453125, 
     "location" : { 
      "lat" : 39.73915360, 
      "lng" : -104.98470340 
     }, 
     "resolution" : 4.771975994110107 
     } 
    ], 
    "status" : "OK" 
} 

注意,免費版本限制每天2500個請求。

+1

其實我想用我自己的高程數據(其中有0.5x0.5m的分辨率)。 – LarsVegas 2012-07-16 14:02:11

1

我們用這個代碼來獲得提升對於給定的緯度/經度(包裝注意:我們只要求打印擡高,和圓形lat和長值)。

import urllib.request 
import json 
lati = input("Enter the latitude:") 
lngi = input("Enter the longitude:") 

# url_params completes the base url with the given latitude and longitude values 
ELEVATION_BASE_URL = 'http://maps.googleapis.com/maps/api/elevation/json?' 
URL_PARAMS = "locations=%s,%s&sensor=%s" % (lati, lngi, "false") 
url=ELEVATION_BASE_URL + URL_PARAMS 
with urllib.request.urlopen(url) as f: 
response = json.loads(f.read().decode())  
status = response["status"] 
result = response["results"][0] 
print(float(result["elevation"])) 
print(float(result["location"]["lat"])) 
print(float(result["location"]["lng"])) 
相關問題