簡體   English   中英

OSM API 立交橋

[英]OSM API Overpass

我正在嘗試拉動在給定國家/地區輸入 OSM 的所有冰川,但我注意到我只拉動了可用冰川的一小部分。 例如,當我運行以下代碼時:

import overpass from shapely.geometry 
import shape, Polygon
api = overpass.API()
api = overpass.API(endpoint="https://overpass.myserver/interpreter")
api = overpass.API(timeout=600)
query = 'area["ISO3166-1"="IS][admin_level=2];(way["natural"="glacier"](area););'
result = api.get(query, verbosity='geom')
import geopandas
results = geopandas.GeoDataFrame.from_features(result['features'])

結果有 132 個特征,如下所示:

冰島冰川

我知道這缺少一個大型冰川(Vatnajökull),它確實出現在 OSM 中的 osm id 406429 下。

關於為什么我的查詢沒有出現這種情況的任何想法?

在編寫 Overpass 查詢時,OSM Wiki 標記文檔是一個有用的起點。 這是natural=glacier的文檔。 標簽/值基於文檔應用於節點和封閉方式,並且似乎也應用於基於社區偏好的關系(即使在文檔中不鼓勵這樣做)。

要查詢節點、方式和關系,可以使用縮寫nwr代替 union (node[natural=glacier];way[natural=glacier];relation[natural=glacier];); . 作為旁注,您可以刪除admin_level=2因為 ISO3166-1 代碼是唯一標識符。

這是 Python 請求:

query = 'area["ISO3166-1"="IS"];nwr[natural=glacier](area);out geom;'
response = api.get(query)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2025 STACKOOM.COM