2017-01-18 28 views
2

我嘗試下載法國的國家邊界(幾十個州,而不是大數據)。事實上,我在我的postgres數據庫中尋找可以上傳的邊界來本地化POI。 OpenStreetMap的似乎是很好的數據源,所以我曾試圖學習立交橋QL但似乎比我想象的更難做...一些維基閱讀後,我來到了這一點:獲取立交橋的行政邊界QL

way["name:en"="France"]; 
way["type"="boundary"]; 
way["boundary"="administrative"]; 
way["admin_level"="4"]; 

但查詢無盡的奔跑...我不確定我提出的問題,這是不錯的語法?由於

回答

3

有幾個問題與您的查詢:

  1. 行政邊界經常建模爲關係,而不是OSM的方式。所以查詢方式way[...]不會返回您正在查找的結果。
  2. 要獲取具有多個標籤的元素,您需要將它們合併爲[key1=value1][key2=value2]。您當前的查詢將以type=boundary查詢全球所有方式,然後再以全球方式查詢admin_level=4。顯然,這是非常昂貴的,而不是你想要的。
  3. out聲明必須返回一些結果。在你的情況下,查詢實際上會運行,但它永遠不會返回任何東西。

我的建議是使用下面的查詢,而不是:

rel["ISO3166-2"~"^FR"] 
    [admin_level=4] 
    [type=boundary] 
    [boundary=administrative]; 
out geom; 

嘗試在立交橋渦輪:http://overpass-turbo.eu/s/lnv

+0

非常感謝,這是我需要什麼 –

+0

我推一點點前進,並試圖從法國獲得所有的城市界限。根據你告訴我的狀態,我嘗試了同樣的方式,但是對於城市來說,level_admin = 8。但是沒有用於城市邊界的ISO3166標籤,在admin_level 8邊界中根本沒有國家標籤。我如何搜索特定國家的所有城市邊界?謝謝! rel [「ISO3166-2」〜「^ FR」] [admin_level = 8] [type = boundary] [boundary = administrative]; out geom; –

+0

@ThomasPerrin你解決了嗎?我正在尋找一種方法來做同樣的工作 – David