Er zijn meerdere manieren waarop je OpenStreetMap kunt gebruiken. De meest gebruikte is waarschijnlijk de OSM-dataset als basemap. Anderen hebben misschien al de ArcGIS Editor for OSM<\/A> gebruikt. Maar ik heb geen oplossing gevonden om OSM direct vanuit ArcGIS te queryen. De vraag die beantwoord moest worden was: "Waar zijn bakkerijen in Northumberland?" De Overpass API biedt een geweldige querytool om queries te definiëren en het resultaat op een kaart te krijgen. Ik wilde een vergelijkbare maar gemakkelijk te gebruiken tool in ArcGIS, dus heb ik OSMQuery<\/A> gemaakt. Je kunt OSMQuery gratis gebruiken.<\/P>
<\/P>
(de bovenstaande afbeelding is na één dag al verouderd. Zie het einde van deze post!)<\/P>
De query wordt naar de Overpass API gestuurd die reageert met een JSON-object. Het JSON-object bevat elementen zoals nodes, ways en 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\": \"De gegevens in dit document komen van www.openstreetmap.org. De gegevens worden beschikbaar gesteld onder 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>\\u00"", 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)" }} ]}< </span > << EM O J I _ 38 >> << EM O J I _ 39 >> << EM O J I _ 40 >> << EM O J I _ 41 >> << EM O J I _ 42 >> << EM O J I _ 43 >> << EM O J I _ 44 >> << EM O J I _ 45 >> << EM O J I _ 46 >> << EM O J I _ 47 >> << EM O J I _ 48 >> << EM O J I _ 49 >> << EM O J I _ 50 >> << EM O J I _ 51 >> << EM O J I _ 52 >> << EM O J I _ 53 >> << EM O J I _ 54 >> << EM O J I _ 55 >> << EM O J I _ 56 >> << EM O J I _ 57 >> << EM O J I _ 58 >> </ span ></ span ></ CODE ></ PRE >< P >Bovendien heeft het resultaat geen gedefinieerd datamodel. Elke node kan een heel andere set tags en sleutels hebben. Dus moest ik een unie van tags maken voor elk type featureklasse. Het algoritme voor het toevoegen van velden is het traagste deel in mijn gereedschapskist omdat het aantal tags zo hoog kan zijn als 40...Nadat ik de featureklassen had gemaakt en de velden had toegevoegd volgens de lijst met attributen/tags, kan ik de features uit de Overpass-respons toevoegen.Dit is uiteindelijk vrij eenvoudig, maar het is lastig voor de polylijnen en polygonen omdat ik de lat/lon-attributen voor elke node recursief moest lezen.B maar uiteindelijk: Er zijn 33 bakkerijen in Northumberland, VK volgens de OpenStreetMap-dataset:OSMQuery repo op GitHub..GitHub-gebruiker rastrau, ondersteunt OSMQuery nu ook meerdere queries:
Aangemelde leden kunnen berichten plaatsen, updates volgen en meer. Nieuw hier? Registreer een gratis account.
Find useful guides, FAQs, and documents to help you navigate and make the most of Esri Community.