rel[name="Rheinisch-Bergischer Kreis"][admin_level=6][boundary=administrative];
out geom;
輸出在德國我的目標區「萊茵 - 貝吉施縣」。使用此代碼
area[name="Rheinisch-Bergischer Kreis"][admin_level=6][boundary=administrative];
rel(area)[boundary="postal_code"];
out geom;
我想獲得那些目標區域內的郵政編碼關係。如果比較兩個輸出,則可以看到第二個查詢中的選定區域大於第一個查詢中的選定區域。 但它應該是相同的大小。
西端有一小部分關係到達我的目標區域,因此它們包含在輸出中。我怎樣才能得到其中心位於我的目標區域內的關係?或者只有完全屬於我的目標區域的關係?
編輯
謝謝MMD。我接受了死衚衕,現在我提出我的「解決方案」(和我的實際問題!),也許這將幫助別人的未來:
我使用這個代碼
[timeout:900];
area[name="Nordrhein-Westfalen"][admin_level=4][boundary=administrative];
rel(area)[admin_level=5][boundary=administrative]; // regierungsbezirke
foreach(
out geom;
map_to_area;
rel(area)[admin_level=6][boundary=administrative]; // kreise
foreach(
out geom;
map_to_area;
rel(area)[boundary="postal_code"];
out geom;
);
);
得到一個OSM文件,首先輸出admin_level 5,然後輸出admin_level 6,然後輸出屬於該admin_level的每個郵政編碼6.我的目標是獲取將郵政編碼映射到admin_level 6到admin_level的字典5.從OSM內部的順序我可以弄清楚這個文件。 不幸的是,上面的代碼在OSM文件中不止一次報告了37個郵政編碼(grep爲標籤 - >打印postal_code(例如awk) - > sort - > uniq -c - > sort -k 1,1)。這就是我對我在最小范例問題中描述的行爲的發現。因此,我現在要做的是過濾手工在OSM文件中出現多次的37個郵政編碼。然後,我可以從OSM文件構建我的字典以獲取該映射。
https://forum.openstreetmap.org/viewtopic.php?id=59661 – mmd
線程是99%,在一個死衚衕了,所以我希望有人堆棧可能知道的重複 – user3182532