Existuje několik způsobů, jak můžete použít OpenStreetMap. Nejčastěji používaným může být dataset OSM jako základní mapa. Někteří jiní již mohli použít ArcGIS Editor for OSM<\/A>. Ale nenašel jsem řešení, jak přímo dotazovat OSM z ArcGIS. Otázka, na kterou bylo třeba odpovědět, byla: "Kde jsou pekárny v Northumberlandu?" Overpass API nabízí skvělý nástroj pro definování dotazů a získání výsledku na mapě. Chtěl jsem mít srovnatelný, ale snadno použitelný nástroj v ArcGIS, takže jsem vytvořil OSMQuery<\/A>. OSMQuery můžete používat zdarma.<\/P>
<\/P>
(výše uvedený obrázek je po jednom dni již zastaralý. Viz konec tohoto příspěvku!)<\/P>
Dotaz je odeslán na Overpass API, které odpovídá JSON objektem. JSON objekt obsahuje prvky jako nodes, ways a relations.<\/P>
{\n \"version\": 0.6,\n \"generator\": \"Overpass API 0.7.55.4 3079d8ea\",\n \"osm3s\": {\n \"timestamp_osm_base\": \"2018-08-29T08:10:02Z\",\n \"copyright\": \"Data obsažená v tomto dokumentu pocházejí z www.openstreetmap.org. Data jsou zpřístupněna pod licencí ODbL.\"\n },\n \"elements\": [\n {\n \"type\": \"node\",\n \"id\": 2496059820,\n \"lat\": 51.0703208,\n \"lon\": 4.9863343\n },\n {\n \"type\": \"node\",\n \"id\": 2496059823,\n \"lat\": 51.0703401,\n \"lon\": 4.9865653\n },\n ... ,\n {\n \"type\": \"node\",\n \"id\": 2496059818,\n \"lat\": 51.0702779,\n \"lon\": 4.9863413\n },\n {\n \"type\": \"way\",\n \"id\": 242035363,\n \"nodes\": [2496059820, 2496059823, ..., 2496059818, 2496059820],\n \"tags\": {\n \"OnroerendErfgoed:criteria\": \"M\",\n \"addr:city\": \"Veerle\",\n \"amenity\": \"place_of_worship\",\n \"building\": \"house\",\n \"denomination\": \"roman_catholic\",\n \"description\": \"Parochiekerk\",\n \"heritage\": \"4\",\n \"heritage:operator\": \"OnroerendErfgoed\",\n \"heritage:website\": "https:\/\/inventaris.onroerenderfgoed.be\/dibe\/relict\/41142<\/A>", "image": " target="_blank">https://commons.wikimedia.org/wiki/File:Veerle_-_Onze-Lieve-Vrouw-in-de-Wijngaardkerk.jpg", "name": "Onze-Lieve-Vrouw-in-de-Wijngaardkerk", "ref:OnroerendErfgoed": "41142", "religion": "christian", "source": "AGIV", "wikimedia_commons": "Category:OLV in de Wijngaardkerk (Veerle)" }} ]}> {<<emojI38>>}<<emojI39>>}>}<<emojI41>>}>}<<emojI43>>}>}<<emojI45>>}>}<<emojI47>>}>}<<emojI49>>}>}<<emojI51>>}>}<<emojI53>>}>}<<emojI55>>}>}<<emojI57>>}>> Dále výsledek nemá definovaný datový model. Každý uzel může mít velmi odlišnou sadu tagů a klíčů. Proto jsem musel vytvořit sjednocení tagů pro každý typ třídy prvků. Algoritmus přidávání polí je nejpomalejší částí mého nástroje, protože počet tagů může být až 40... Poté, co jsem vytvořil třídy prvků a přidal pole podle seznamu atributů/tagů, mohu přidat prvky z odpovědi Overpass. Nakonec je to docela jednoduché, ale je to otravné u polyliní a polygonů, protože jsem musel rekurzivně číst atributy lat/lon pro každý uzel. Ale nakonec: Podle datasetu OpenStreetMap je v Northumberlandu ve Velké Británii 33 pekáren: Zde je porovnaný dataset v Overpass API: Pokud chcete nástroj testovat/stahovat/vyvíjet, pokračujte a použijte repozitář OSMQuery na GitHubu. Zde je krátké video o použití: Díky podpoře uživatele GitHub rastrau nyní OSMQuery podporuje i více dotazů:
Přihlášení členové mohou přispívat, sledovat aktualizace a další. Nový zde? Zaregistrujte si bezplatný účet.
Find useful guides, FAQs, and documents to help you navigate and make the most of Esri Community.