{"id":616,"date":"2011-10-17T18:51:17","date_gmt":"2011-10-17T16:51:17","guid":{"rendered":"https:\/\/d-mueller.de\/blog\/?p=616"},"modified":"2011-10-18T12:23:49","modified_gmt":"2011-10-18T10:23:49","slug":"open-streetmap-api-tutorial-umkreissuche","status":"publish","type":"post","link":"https:\/\/d-mueller.de\/blog\/open-streetmap-api-tutorial-umkreissuche\/","title":{"rendered":"Open Streetmap API Tutorial: Umkreissuche"},"content":{"rendered":"<p>F\u00fcr ein Hochschulprojekt (&#8222;Ortsbezogene Freizeitgestaltung&#8220;) gilt es, die Open Streetmap API zum finden von POI&#8217;s in der Umgebung zu verwenden. In Darmstadt ist auf der OSM <a href=\"http:\/\/www.openstreetmap.org\/?minlon=8.64117740631&#038;minlat=49.8627722168&#038;maxlon=8.66117835999&#038;maxlat=49.8827760315\">fast jede Parkbank<\/a> kategorisiert. Also frisch ans Werk!<\/p>\n<h2>API Overflow! &#8211; Kurzvorstellung der einzelnen APIs<\/h2>\n<ul>\n<li>Die <a href=\"http:\/\/wiki.openstreetmap.org\/wiki\/API_v0.6\">eigentliche OSM-Api (aktuell: v0.6)<\/a> fokussiert sich eher auf das Erstellen, Bearbeiten und Auslesen von speziellen Punkten. Weniger hilfreich f\u00fcr den Zweck der Umkreissuche.<\/li>\n<li>Die <a href=\"http:\/\/wiki.openstreetmap.org\/wiki\/Overpass_API\">Overpass (X)API<\/a> macht uns schon gl\u00fccklicher. Per REST geben wir den Typ der zu suchenden Punkte in einem einzugrenzenden Bereich an. Beispiele folgen.<\/li>\n<li>Die <a href=\"http:\/\/wiki.openstreetmap.org\/wiki\/Nominatim\">Nominatim API<\/a> ist am simpelsten zu verwenden: Einfach als Query-Parameter &#8222;Pub, Darmstadt&#8220; angehangen und los gehts. Auch dazu gleich mehr.<\/li>\n<\/ul>\n<h2>Die Noninatim API<\/h2>\n<p>Alle Cafes in Darmstadt gesucht?<\/p>\n<pre data-enlighter-language=\"enlighter\" class=\"EnlighterJSRAW\">http:\/\/nominatim.openstreetmap.org\/search?q=cafe+darmstadt&amp;format=xml&amp;polygon=0&amp;addressdetails=1<\/pre>\n<pre data-enlighter-language=\"xml\" class=\"EnlighterJSRAW\">\r\n&lt;searchresults timestamp=&quot;Mon, 17 Oct 11 12:20:28 -0400&quot; attribution=&quot;Data Copyright OpenStreetMap Contributors, Some Rights Reserved. CC-BY-SA 2.0.&quot; querystring=&quot;cafe darmstadt&quot; polygon=&quot;false&quot; exclude_place_ids=&quot;6854404,1531978,7020825,8296635,12289661,4985586,7174479,5407915,4156862,1062456&quot; more_url=&quot;http:\/\/open.mapquestapi.com\/nominatim\/v1\/search?format=xml&amp;exclude_place_ids=6854404,1531978,7020825,8296635,12289661,4985586,7174479,5407915,4156862,1062456&amp;accept-language=de-DE,de;q=0.8,en-US;q=0.6,en;q=0.4&amp;addressdetails=1&amp;q=cafe+darmstadt&quot;&gt;\r\n\t&lt;place place_id=&quot;6854404&quot; osm_type=&quot;node&quot; osm_id=&quot;634426402&quot; place_rank=&quot;30&quot; boundingbox=&quot;50.0020887756,50.0220925903,8.57511543274,8.59511638641&quot; lat=&quot;50.0120924&quot; lon=&quot;8.5851157&quot; display_name=&quot;cafe, Aschaffenburger Stra\u00dfe, Walldorf, M\u00f6rfelden-Walldorf, Gro\u00df-Gerau, Regierungsbezirk Darmstadt, Hessen, 64546, Bundesrepublik Deutschland (Landmasse)&quot; class=&quot;amenity&quot; type=&quot;cafe&quot; icon=&quot;http:\/\/open.mapquestapi.com\/nominatim\/v1\/images\/mapicons\/food_cafe.p.20.png&quot;&gt;\r\n\t\t&lt;cafe&gt;cafe&lt;\/cafe&gt;\r\n\t\t&lt;road&gt;Aschaffenburger Stra\u00dfe&lt;\/road&gt;\r\n\t\t&lt;suburb&gt;Walldorf&lt;\/suburb&gt;\r\n\t\t&lt;city&gt;M\u00f6rfelden-Walldorf&lt;\/city&gt;\r\n\t\t&lt;county&gt;Gro\u00df-Gerau&lt;\/county&gt;\r\n\t\t&lt;state_district&gt;Regierungsbezirk Darmstadt&lt;\/state_district&gt;\r\n\t\t&lt;state&gt;Hessen&lt;\/state&gt;\r\n\t\t&lt;boundary&gt;64546&lt;\/boundary&gt;\r\n\t\t&lt;country&gt;Bundesrepublik Deutschland (Landmasse)&lt;\/country&gt;\r\n\t\t&lt;country_code&gt;de&lt;\/country_code&gt;\r\n\t&lt;\/place&gt;\r\n\t&lt;place place_id=&quot;1531978&quot; osm_type=&quot;node&quot; osm_id=&quot;307367574&quot; place_rank=&quot;30&quot; boundingbox=&quot;49.8644659424,49.8844697571,8.65217708588,8.67217803955&quot; lat=&quot;49.8744697&quot; lon=&quot;8.6621778&quot; display_name=&quot;Pueblo, 5-7, Erbacher Stra\u00dfe, Mathildenh\u00f6he, Darmstadt, Darmstadt, Stadt, Regierungsbezirk Darmstadt, Hessen, 64283, Bundesrepublik Deutschland (Landmasse)&quot; class=&quot;amenity&quot; type=&quot;pub&quot; icon=&quot;http:\/\/open.mapquestapi.com\/nominatim\/v1\/images\/mapicons\/food_pub.p.20.png&quot;&gt;\r\n\t\t&lt;pub&gt;Pueblo&lt;\/pub&gt;\r\n\t\t&lt;house_number&gt;5-7&lt;\/house_number&gt;\r\n\t\t&lt;road&gt;Erbacher Stra\u00dfe&lt;\/road&gt;\r\n\t\t&lt;suburb&gt;Mathildenh\u00f6he&lt;\/suburb&gt;\r\n\t\t&lt;city&gt;Darmstadt&lt;\/city&gt;\r\n\t\t&lt;county&gt;Darmstadt, Stadt&lt;\/county&gt;\r\n\t\t&lt;state_district&gt;Regierungsbezirk Darmstadt&lt;\/state_district&gt;\r\n\t\t&lt;state&gt;Hessen&lt;\/state&gt;\r\n\t\t&lt;postcode&gt;64283&lt;\/postcode&gt;\r\n\t\t&lt;boundary&gt;64287&lt;\/boundary&gt;\r\n\t\t&lt;country&gt;Bundesrepublik Deutschland (Landmasse)&lt;\/country&gt;\r\n\t\t&lt;country_code&gt;de&lt;\/country_code&gt;\r\n\t&lt;\/place&gt;\r\n\t...\r\n&lt;\/searchresults&gt;\r\n<\/pre>\n<p>Auf der <a href=\"http:\/\/wiki.openstreetmap.org\/wiki\/Nominatim\">Wiki-Seite zu Nominatim<\/a> finden sich alle Parameter.<\/p>\n<p><b>Noch ein Beispiel:<\/b> Wir suchen alle Cafes und Pubs <a href=\"http:\/\/de.wikipedia.org\/wiki\/Geographische_Breite\">im Bereich<\/a> 8.62 , 49.85 , 8.68 , 49.89 (Parameter <i>viewbox<\/i> =  left,top,right,bottom)<\/p>\n<pre data-enlighter-language=\"enlighter\" class=\"EnlighterJSRAW\">http:\/\/nominatim.openstreetmap.org\/search?viewbox=8.62,49.85,8.68,49.89&amp;bounded=1&amp;format=xml&amp;polygon=0&amp;addressdetails=1&amp;q=[cafe][,pub]<\/pre>\n<pre data-enlighter-language=\"xml\" class=\"EnlighterJSRAW\">\r\n&lt;searchresults timestamp=&quot;Mon, 17 Oct 11 12:28:03 -0400&quot; attribution=&quot;Data Copyright OpenStreetMap Contributors, Some Rights Reserved. CC-BY-SA 2.0.&quot; querystring=&quot; [,pub]&quot; polygon=&quot;false&quot; exclude_place_ids=&quot;8064325,1531978,1542766,7020825,1562941,5484206,8296635,3710437,4985586,1545901&quot; more_url=&quot;http:\/\/open.mapquestapi.com\/nominatim\/v1\/search?format=xml&amp;exclude_place_ids=8064325,1531978,1542766,7020825,1562941,5484206,8296635,3710437,4985586,1545901&amp;accept-language=de-DE,de;q=0.8,en-US;q=0.6,en;q=0.4&amp;addressdetails=1&amp;viewbox=8.62%2C49.85%2C8.68%2C49.89&amp;q=+%5B%2Cpub%5D&quot;&gt;\r\n\t&lt;place place_id=&quot;8064325&quot; osm_type=&quot;node&quot; osm_id=&quot;769080882&quot; place_rank=&quot;30&quot; boundingbox=&quot;49.8722135925,49.8922174072,8.64747070313,8.6674716568&quot; lat=&quot;49.8822173&quot; lon=&quot;8.6574715&quot; display_name=&quot;Weinstube Osttangente, Arheilger Stra\u00dfe, Martinsviertel-West, Darmstadt, Stadt, Regierungsbezirk Darmstadt, Hessen, 64289, Bundesrepublik Deutschland (Landmasse)&quot; class=&quot;amenity&quot; type=&quot;pub&quot; icon=&quot;http:\/\/open.mapquestapi.com\/nominatim\/v1\/images\/mapicons\/food_pub.p.20.png&quot;&gt;\r\n\t\t&lt;pub&gt;Weinstube Osttangente&lt;\/pub&gt;\r\n\t\t&lt;road&gt;Arheilger Stra\u00dfe&lt;\/road&gt;\r\n\t\t&lt;suburb&gt;Martinsviertel-West&lt;\/suburb&gt;\r\n\t\t&lt;place&gt;Martinsviertel-West&lt;\/place&gt;\r\n\t\t&lt;county&gt;Darmstadt, Stadt&lt;\/county&gt;\r\n\t\t&lt;state_district&gt;Regierungsbezirk Darmstadt&lt;\/state_district&gt;\r\n\t\t&lt;state&gt;Hessen&lt;\/state&gt;\r\n\t\t&lt;boundary&gt;64289&lt;\/boundary&gt;\r\n\t\t&lt;country&gt;Bundesrepublik Deutschland (Landmasse)&lt;\/country&gt;\r\n\t\t&lt;country_code&gt;de&lt;\/country_code&gt;\r\n\t&lt;\/place&gt;\r\n\t&lt;place place_id=&quot;1542766&quot; osm_type=&quot;node&quot; osm_id=&quot;310264485&quot; place_rank=&quot;30&quot; boundingbox=&quot;49.864874115,49.8848779297,8.64108585358,8.66108680725&quot; lat=&quot;49.8748742&quot; lon=&quot;8.6510865&quot; display_name=&quot;Cafe Espenschied, Mathildenplatz, Stadtzentrum, Darmstadt, Darmstadt, Stadt, Regierungsbezirk Darmstadt, Hessen, 64283, Bundesrepublik Deutschland (Landmasse)&quot; class=&quot;amenity&quot; type=&quot;cafe&quot; icon=&quot;http:\/\/open.mapquestapi.com\/nominatim\/v1\/images\/mapicons\/food_cafe.p.20.png&quot;&gt;\r\n\t\t&lt;cafe&gt;Cafe Espenschied&lt;\/cafe&gt;\r\n\t\t&lt;road&gt;Mathildenplatz&lt;\/road&gt;\r\n\t\t&lt;suburb&gt;Stadtzentrum&lt;\/suburb&gt;\r\n\t\t&lt;city&gt;Darmstadt&lt;\/city&gt;\r\n\t\t&lt;county&gt;Darmstadt, Stadt&lt;\/county&gt;\r\n\t\t&lt;state_district&gt;Regierungsbezirk Darmstadt&lt;\/state_district&gt;\r\n\t\t&lt;state&gt;Hessen&lt;\/state&gt;\r\n\t\t&lt;boundary&gt;64283&lt;\/boundary&gt;\r\n\t\t&lt;country&gt;Bundesrepublik Deutschland (Landmasse)&lt;\/country&gt;\r\n\t\t&lt;country_code&gt;de&lt;\/country_code&gt;\r\n\t&lt;\/place&gt;\r\n\t...\r\n&lt;\/searchresults&gt;\r\n<\/pre>\n<p>Diese Anfrage hat den Vorteil, dass wir nicht den Ortsnamen kennen m\u00fcssen, sondern einfach die Koordinaten reinstecken k\u00f6nnen.<\/p>\n<p>\u00c4hnlich zur <a href=\"https:\/\/d-mueller.de\/blog\/yahoo-placefinder-api-tutorial\/\">hier vorgestellten Yahoo Placefinder API<\/a> lassen sich mit Nominatim auch noch Geo-Lookups betreiben:<\/p>\n<pre data-enlighter-language=\"enlighter\" class=\"EnlighterJSRAW\">http:\/\/nominatim.openstreetmap.org\/reverse?format=xml&amp;lat=49.869074&amp;lon=8.645331&amp;zoom=18&amp;addressdetails=1<\/pre>\n<pre data-enlighter-language=\"xml\" class=\"EnlighterJSRAW\">\r\n&lt;reversegeocode timestamp=&quot;Mon, 17 Oct 11 12:32:36 -0400&quot; attribution=&quot;Data Copyright OpenStreetMap Contributors, Some Rights Reserved. CC-BY-SA 2.0.&quot; querystring=&quot;format=xml&amp;lat=49.869074&amp;lon=8.645331&amp;zoom=18&amp;addressdetails=1&quot;&gt;\r\n\t&lt;result place_id=&quot;53116836&quot; osm_type=&quot;way&quot; osm_id=&quot;54818914&quot; lat=&quot;49.8689123945855&quot; lon=&quot;8.64516022575963&quot;&gt;\r\n\tStudentenwohnheim Neckarstra\u00dfe, Elisabethenstra\u00dfe, Rheintor\/Grafenstra\u00dfe, Darmstadt, Darmstadt, Stadt, Regierungsbezirk Darmstadt, Hessen, 64283, Bundesrepublik Deutschland (Landmasse)\r\n\t&lt;\/result&gt;\r\n\t&lt;addressparts&gt;\r\n\t\t&lt;building&gt;Studentenwohnheim Neckarstra\u00dfe&lt;\/building&gt;\r\n\t\t&lt;road&gt;Elisabethenstra\u00dfe&lt;\/road&gt;\r\n\t\t&lt;suburb&gt;Rheintor\/Grafenstra\u00dfe&lt;\/suburb&gt;\r\n\t\t&lt;city&gt;Darmstadt&lt;\/city&gt;\r\n\t\t&lt;county&gt;Darmstadt, Stadt&lt;\/county&gt;\r\n\t\t&lt;state_district&gt;Regierungsbezirk Darmstadt&lt;\/state_district&gt;\r\n\t\t&lt;state&gt;Hessen&lt;\/state&gt;\r\n\t\t&lt;boundary&gt;64283&lt;\/boundary&gt;\r\n\t\t&lt;country&gt;Bundesrepublik Deutschland (Landmasse)&lt;\/country&gt;\r\n\t\t&lt;country_code&gt;de&lt;\/country_code&gt;\r\n\t&lt;\/addressparts&gt;\r\n&lt;\/reversegeocode&gt;\r\n<\/pre>\n<\/p>\n<h2>Overpass (X)API<\/h2>\n<p>Noch etwas feingranular k\u00f6nnen wir unsere Anfrage mit der <a href=\"http:\/\/wiki.openstreetmap.org\/wiki\/Overpass_API#XAPI_Compability_Layer\">Overpass (X)API<\/a> gestalten, die ebenfalls per REST zu befeuern ist (siehe erg\u00e4nzend auch die Doku <a href=\"http:\/\/wiki.openstreetmap.org\/wiki\/XAPI\">zur XAPI<\/a>).<\/p>\n<p>Wir wollen alle Pubs und Fast-Food-Lokale in der Box 8.62 , 49.85 , 8.68 , 49.89 haben? Kein Problem!<\/p>\n<pre data-enlighter-language=\"enlighter\" class=\"EnlighterJSRAW\">http:\/\/www.overpass-api.de\/api\/xapi?node[bbox=8.62,49.85,8.68,49.89][amenity=fast_food|pub][@meta]<\/pre>\n<pre data-enlighter-language=\"xml\" class=\"EnlighterJSRAW\">\r\n&lt;osm version=&quot;0.6&quot; generator=&quot;Overpass API&quot;&gt;\r\n&lt;note&gt;The data included in this document is from www.openstreetmap.org. It has there been collected by a large group of contributors. For individual attribution of each item please refer to http:\/\/www.openstreetmap.org\/api\/0.6\/[node|way|relation]\/#id\/history &lt;\/note&gt;\r\n&lt;meta osm_base=&quot;2011-10-17T16\\:36\\:02Z&quot;\/&gt;\r\n  &lt;node id=&quot;24924135&quot; lat=&quot;49.8800621&quot; lon=&quot;8.6453454&quot; version=&quot;11&quot; timestamp=&quot;2011-06-13T19:02:36Z&quot; changeset=&quot;8424331&quot; uid=&quot;290680&quot; user=&quot;wheelmap_visitor&quot;&gt;\r\n    &lt;tag k=&quot;addr:city&quot; v=&quot;Darmstadt&quot;\/&gt;\r\n    &lt;tag k=&quot;addr:housenumber&quot; v=&quot;41&quot;\/&gt;\r\n    &lt;tag k=&quot;addr:postcode&quot; v=&quot;64293&quot;\/&gt;\r\n    &lt;tag k=&quot;addr:street&quot; v=&quot;Kahlertstra\u00dfe&quot;\/&gt;\r\n    &lt;tag k=&quot;amenity&quot; v=&quot;pub&quot;\/&gt;\r\n    &lt;tag k=&quot;name&quot; v=&quot;Kneipe 41&quot;\/&gt;\r\n    &lt;tag k=&quot;note&quot; v=&quot;DaLUG Meeting (4st Friday of month 19:30)&quot;\/&gt;\r\n    &lt;tag k=&quot;smoking&quot; v=&quot;no&quot;\/&gt;\r\n    &lt;tag k=&quot;website&quot; v=&quot;http:\/\/www.kneipe41.de\/&quot;\/&gt;\r\n    &lt;tag k=&quot;wheelchair&quot; v=&quot;limited&quot;\/&gt;\r\n  &lt;\/node&gt;\r\n  &lt;node id=&quot;203582455&quot; lat=&quot;49.8716253&quot; lon=&quot;8.6393520&quot; version=&quot;5&quot; timestamp=&quot;2011-06-13T19:04:38Z&quot; changeset=&quot;8424331&quot; uid=&quot;290680&quot; user=&quot;wheelmap_visitor&quot;&gt;\r\n    &lt;tag k=&quot;addr:city&quot; v=&quot;Darmstadt&quot;\/&gt;\r\n    &lt;tag k=&quot;addr:country&quot; v=&quot;DE&quot;\/&gt;\r\n    &lt;tag k=&quot;addr:housenumber&quot; v=&quot;69&quot;\/&gt;\r\n    &lt;tag k=&quot;addr:postcode&quot; v=&quot;64295&quot;\/&gt;\r\n    &lt;tag k=&quot;addr:street&quot; v=&quot;Rheinstra\u00dfe&quot;\/&gt;\r\n    &lt;tag k=&quot;amenity&quot; v=&quot;fast_food&quot;\/&gt;\r\n    &lt;tag k=&quot;cuisine&quot; v=&quot;burger&quot;\/&gt;\r\n    &lt;tag k=&quot;name&quot; v=&quot;McDonald&#039;s&quot;\/&gt;\r\n    &lt;tag k=&quot;website&quot; v=&quot;http:\/\/www.mcdonalds.com\/&quot;\/&gt;\r\n    &lt;tag k=&quot;wheelchair&quot; v=&quot;yes&quot;\/&gt;\r\n  &lt;\/node&gt;\r\n  ...\r\n&lt;\/osm&gt;\r\n<\/pre>\n<p>\nDabei gibt es offensichtlich noch sehr informative Nebenangaben \u00fcber die Rollstuhltauglichkeit und allerlei anderer Sachen. F\u00fcr eine vollst\u00e4ndige Angabe aller suchbaren Einrichtungen (&#8222;Amenity&#8220;) sei <a href=\"http:\/\/wiki.openstreetmap.org\/wiki\/Key:amenity\">hierauf<\/a> verwiesen: Vom <a href=\"http:\/\/wiki.openstreetmap.org\/wiki\/Tag:amenity%3Dcinema\">Kino<\/a> \u00fcber den <a href=\"http:\/\/wiki.openstreetmap.org\/wiki\/Tag:amenity%3Dwaste_basket\">M\u00fclleimer<\/a> gibts alles, was das Herz begehrt. Auch auf die <a href=\"http:\/\/wiki.openstreetmap.org\/wiki\/Nominatim\/Special_Phrases\/DE\">Spezialphrasen<\/a> sei noch verwiesen.\n<\/p>\n<h2>Die native API<\/h2>\n<p>Da wir keine Pl\u00e4tze anlegen m\u00f6chten, sondern nur Daten von OSM beziehen wollen, bietet die native OSM API nur ein n\u00fctzliches Feature f\u00fcr uns: <a href=\"http:\/\/wiki.openstreetmap.org\/wiki\/API_v0.6#Multi_fetch:_GET_.2Fapi.2F0.6.2F.5Bnodes.7Cways.7Crelations.5D\">Die Location-Suche nach ID<\/a>. Wenn wir also zu einer oder mehreren Platz-IDs (wie sie bspw. von der Overpass API bzw. Nominatim in der Antwort geliefert werden) n\u00e4here Informationen erhalten m\u00f6chten, kann folgende Query hilfreich sein:<\/p>\n<pre data-enlighter-language=\"enlighter\" class=\"EnlighterJSRAW\">http:\/\/api.openstreetmap.org\/api\/0.6\/nodes?nodes=307367745,24924135<\/pre>\n<pre data-enlighter-language=\"xml\" class=\"EnlighterJSRAW\">\r\n&lt;osm version=&quot;0.6&quot; generator=&quot;OpenStreetMap server&quot;&gt;\r\n\t&lt;node id=&quot;24924135&quot; lat=&quot;49.8800621&quot; lon=&quot;8.6453454&quot; version=&quot;11&quot; changeset=&quot;8424331&quot; user=&quot;wheelmap_visitor&quot; uid=&quot;290680&quot; visible=&quot;true&quot; timestamp=&quot;2011-06-13T19:02:36Z&quot;&gt;\r\n\t\t&lt;tag k=&quot;name&quot; v=&quot;Kneipe 41&quot;\/&gt;\r\n\t\t&lt;tag k=&quot;wheelchair&quot; v=&quot;limited&quot;\/&gt;\r\n\t\t&lt;tag k=&quot;addr:postcode&quot; v=&quot;64293&quot;\/&gt;\r\n\t\t&lt;tag k=&quot;addr:housenumber&quot; v=&quot;41&quot;\/&gt;\r\n\t\t&lt;tag k=&quot;addr:city&quot; v=&quot;Darmstadt&quot;\/&gt;\r\n\t\t&lt;tag k=&quot;smoking&quot; v=&quot;no&quot;\/&gt;\r\n\t\t&lt;tag k=&quot;addr:street&quot; v=&quot;Kahlertstra\u00dfe&quot;\/&gt;\r\n\t\t&lt;tag k=&quot;amenity&quot; v=&quot;pub&quot;\/&gt;\r\n\t\t&lt;tag k=&quot;website&quot; v=&quot;http:\/\/www.kneipe41.de\/&quot;\/&gt;\r\n\t\t&lt;tag k=&quot;note&quot; v=&quot;DaLUG Meeting (4st Friday of month 19:30)&quot;\/&gt;\r\n\t&lt;\/node&gt;\r\n\t&lt;node id=&quot;307367745&quot; lat=&quot;49.8702344&quot; lon=&quot;8.6507902&quot; version=&quot;7&quot; changeset=&quot;6121669&quot; user=&quot;wheelmap_visitor&quot; uid=&quot;290680&quot; visible=&quot;true&quot; timestamp=&quot;2010-10-21T07:33:35Z&quot;&gt;\r\n\t\t&lt;tag k=&quot;name&quot; v=&quot;Subway&quot;\/&gt;\r\n\t\t&lt;tag k=&quot;wheelchair&quot; v=&quot;yes&quot;\/&gt;\r\n\t\t&lt;tag k=&quot;addr:postcode&quot; v=&quot;64283&quot;\/&gt;\r\n\t\t&lt;tag k=&quot;addr:housenumber&quot; v=&quot;21&quot;\/&gt;\r\n\t\t&lt;tag k=&quot;addr:city&quot; v=&quot;Darmstadt&quot;\/&gt;\r\n\t\t&lt;tag k=&quot;addr:street&quot; v=&quot;Elisabethenstra\u00dfe&quot;\/&gt;\r\n\t\t&lt;tag k=&quot;amenity&quot; v=&quot;fast_food&quot;\/&gt;\r\n\t\t&lt;tag k=&quot;addr:country&quot; v=&quot;DE&quot;\/&gt;\r\n\t\t&lt;tag k=&quot;website&quot; v=&quot;http:\/\/www.subway.com\/&quot;\/&gt;\r\n\t\t&lt;tag k=&quot;cuisine&quot; v=&quot;sandwich&quot;\/&gt;\r\n\t&lt;\/node&gt;\r\n&lt;\/osm&gt;\r\n<\/pre>\n<h2>Das war&#8217;s vorerst<\/h2>\n<p>Wenn ich im Verlaufe des Projekts noch bahnbrechende, neue Erkenntnisse \u00fcber die OSM API erlangen sollte, gibt es einen Follow-Up Post. So far.<\/p>\n<p><b>Update:<\/b> Artikel zur Transformierung von L\u00e4ngenangaben in Geo-Koordinaten ist fertig &#8211; <a href=\"https:\/\/d-mueller.de\/blog\/umkreissuche-latlong-und-der-radius\/\">Umkreissuche: Lat\/Long und der Radius<\/a>.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>F\u00fcr ein Hochschulprojekt (&#8222;Ortsbezogene Freizeitgestaltung&#8220;) gilt es, die Open Streetmap API zum finden von POI&#8217;s in der Umgebung zu verwenden. In Darmstadt ist auf der OSM fast jede Parkbank kategorisiert. Also frisch ans Werk! API Overflow! &#8211; Kurzvorstellung der einzelnen &hellip; <a href=\"https:\/\/d-mueller.de\/blog\/open-streetmap-api-tutorial-umkreissuche\/\">Weiterlesen <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[4,3],"tags":[],"class_list":["post-616","post","type-post","status-publish","format-standard","hentry","category-php","category-webdev"],"_links":{"self":[{"href":"https:\/\/d-mueller.de\/blog\/wp-json\/wp\/v2\/posts\/616","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/d-mueller.de\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/d-mueller.de\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/d-mueller.de\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/d-mueller.de\/blog\/wp-json\/wp\/v2\/comments?post=616"}],"version-history":[{"count":0,"href":"https:\/\/d-mueller.de\/blog\/wp-json\/wp\/v2\/posts\/616\/revisions"}],"wp:attachment":[{"href":"https:\/\/d-mueller.de\/blog\/wp-json\/wp\/v2\/media?parent=616"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/d-mueller.de\/blog\/wp-json\/wp\/v2\/categories?post=616"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/d-mueller.de\/blog\/wp-json\/wp\/v2\/tags?post=616"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}