Hier das Ergebnis einer Übersprungshandlung:
Alle Flugplätze mit Hotel in einem bestimmten Umkreis. Im Beispiel werden Hotels, Pensionen und Fremdenzimmer in 1000m Umkreis um einen Flugplatz mit ICAO-Kennung angezeigt.
Den Umkreis kann man bei "around" ändern. Wenn man [icao] auskommentiert, werden auch alle UL-Plätze angezeigt. Zusaetzlich kann man auch (unzuverlässig) nach Hotel-Standard filtern. Bei Restaurants mit Michelin-Stern geht das leider nicht, die sind oft nicht einmal als Gaststätte eingetragen (= interessante Studie zur schicht- oder milieuspezifischen unbewußten Filterung der Umgebung).
Zur Benutzung: den unten stehenden Quelltext in https://overpass-turbo.eu/ einsetzen, aber unbedingt den Ausschnitt zoomen oder über das foto-Icon "Kartenausschnitt manuell wählen" verkleinern, sonst dauert die Abfrage Minuten.
Hier mal ein Beispiel mit kleinem Kartenausschnitt
Mag jemand, der im Gegensatz zu mir die C-Syntax beherrscht, den Code vielleicht noch hübsch machen?
Edit 3.2.2020: Quelltext zusätzlich als formatierte Textdatei zum einkopieren in overpass-turbo.eu angehängt.
[
[out:json][timeout:800];
/* Das Script liefert alle Flughäfen, in deren Umgebung ein Hotel liegt.
1. Die Entfernung in Metern Luftline kann in der Gruppe vor ")->.matchinghotels;" jeweils bei "around.flughaefen:1000" als Zahl angegeben werden, hier 1000m. Bei matchinghotels:1100 werden dann nur die passenden Flughaefen auf der Karte angezeigt, hier die Entfernung minimal größer wählen.
2. Es können die betrachteten Flugplätze selektiert werden.
Wenn nach "[aeroway=aerodrome]" nur "({{bbox}});" kommt, werden alle Flugplätze betrachtet, wenn dort "[icao]" steht, nur die mit ICAO-Kennung und bei "[!icao]" nur die ohne.
3. Hotels können selektiert werden: wenn der SEP-Block mit "[tourism=hotel]({{bbox}});" nicht auskommentiert ist, werden alle Hotels angezeigt. Wenn er auskommentiert ist und der darunter stehende "Twin-mode"-Block mit "[tourism=hotel][stars=4]({{bbox}});" wirksam, dann werden nur die 4- und 5-Sterne Hotels angezeigt.
*/
// Get all airports in current bounding box
( way[aeroway=aerodrome]
//[!icao]
[icao]
({{bbox}});
node[aeroway=aerodrome]
[icao]
({{bbox}});
rel[aeroway=aerodrome]
[icao]
({{bbox}});
)->.flughaefen;
//Unterkuenfte
(
//SEP-mode
// /* Twin-mode
//Hotels
way[tourism=hotel]({{bbox}});
node[tourism=hotel]({{bbox}});
rel[tourism=hotel]({{bbox}});
//JH
way[tourism=hostel]({{bbox}});
node[tourism=hostel]({{bbox}});
rel[tourism=hostel]({{bbox}});
//Pensionen
way[tourism=guest_house]({{bbox}});
node[tourism=guest_house]({{bbox}});
rel[tourism=guest_house]({{bbox}});
// */ //Twin-Mode
//Twin-mode
/* SEP-mode
way[tourism=hotel][stars=4]({{bbox}});
node[tourism=hotel][stars=4]({{bbox}});
rel[tourism=hotel][stars=4]({{bbox}});
way[tourism=hotel][stars=5]({{bbox}});
node[tourism=hotel][stars=5]({{bbox}});
rel[tourism=hotel][stars=5]({{bbox}});
*/ //SEP-mode
)->.allehotels;
// get only hotels in nn m distance for .flughaefen
( node.allehotels(around.flughaefen:1000);
way.allehotels(around.flughaefen:1000);
rel.allehotels(around.flughaefen:1000);
)->.matchinghotels;
//get only flughaefen with hotels near them
( node.flughaefen(around.matchinghotels:1100);
way.flughaefen(around.matchinghotels:1100);
rel.flughaefen(around.matchinghotels:1100);
)->.matchingflughaefen;
// return results, matchinghotels and matchingflughaefen
(
//.allehotels;
.matchinghotels;
//.flughaefen;
.matchingflughaefen;
);
(._;>;);
out meta;