Nahmd,
Es gibt keine. Mit Overpass kenne ich mich nicht aus. Sorry für das OT. Mich interessieren einfach ungewöhnlich Anfragen als Futter, um zu sehen, ob ich die hinbekomme.
Als oller Unix-Freak hab ich mir ein paar Tools gezimmert, mit denen ich auf einer täglich aktualisierten binären Version des Planets suchen kann, und baue mir eine Kommandozeile, die das gewünschte Resultat produziert. Abfragesprach ist also “/bin/sh”. 
Deine Abfrage ist interessant, weil die bisher komplizierteste: sie besteht aus 6+1 Kommandos (das “+1” steht nicht für eine Bewertung, sondern für die nicht wirklich nötige abschließende Sortierung der POIS); die banale Adressabfrage hat die komplexere Bestimmung der PLZ-Irrläufer (5+1) überholt.
Zurück zum Thema:
ich halte die Building-Relation für den beabsichtigten Zweck für ungeeignet. Ich halte es mehr für die Eigenschaft eines Pois, in einem Gebäude zu residieren, als für eine Eigenschaft des Gebäudes, den Poi zu beherbergen. Besteht ein Building aus mehreren Teilen, so impliziert das rel[type=building], dass alle Pois in jeweils allen Gebäudeteilen residieren. Speichere ich die Zuordnung dagegen beim Poi, so bin ich flexibler: ich kann einen Poi in nur einen Gebäudeteil setzen oder auch in zwei Gebäude.
Meine Vorschläge wären (mir ist klar, dass beide nicht mehrheitsfähig ist):
-
Einführung eines neuen Objekt-Typen “Feature” zur Aufnahme von Attributen, dem die Geometrie ähnlich Member bei Relationen zugeordnet wird. Das bildet die bei unserer Konkurrenz verwendete Unterscheidung zwischen Feature und Geometrie ab. Einer der Vorteile ist, dass die Feature-Id unveränderlich ist, auch wenn die Geometrie von einer ersten Node über eine Darstellung als Fläche(Way area=yes) bis zu einer Darstellung als Area mit Löchern oder aus mehreren Komponenten bestehenden Fläche oder einer Fläche mit Löchern (Area/Relation tyle=multipolygon), dass die Feature-Geometrie als Handle zum Anbinden externer DB genutzt werden kann. Unrealistisch, weil Änderung der DB-Struktur nötig)
-
Einführung eines Relation(type=feature). Im Grunde identisch zu 1 mit allen Vorteilen, auch der (von Vandalismus/Unkenntnis agesehen) unveränderlichen Id. Zuordnung der Geometrie über eine noch zu definierende Role. Damit lassen sich beliebig viele POIs in einer Geometrie (einem Gebäude) unterbringen; die Zuordnung ist datenbanktechnisch über Verweise realisiert (inklusive referentieller Integrität) statt über Text- und/oder räumliche Suche und daher um ein Vielfaches schneller abzufragen. Unrealistisch technisch wegen der Behandlung von Relationen in den Editor-Programmen; ich möchte die Relationsbox von JOSM beim Laden einer größeren Innenstadt mir nicht vorstellen; unrealistisch auch wegen der allgemeinen Abneigung gegen die Verwendung von Relationen. Daher gefällt mir 1 besser, weil das Wort “Relation” dort nicht auftaucht. Aus gleichem Grund wäre ich auch für die Einführung von Area-Objekten, auch wenn die sich technisch nicht von Relation(type=multipolygon) bei Durchsetzung von Integritätsbedingungen auf dem DB-Server unterscheiden.
Zurück zur Abfrage selbst:
Schade finde ich, dass niemand mit einer PG-Datenbank Deine Abfrage programmiert hat. Das sollte mit zwei Joins erledigt sein, und wenn die geometrische Ausdehnung der rel[type=building] in der DB enthalten ist und bei der Abfrage berücksichtigt wird, sollten nur sehr wenige Objekte an der Abfrage beteiligt sein: mich hätte die Performance sehr interessiert.
Denn meine Abfrage der Apotheken in Lübeck mit per rel(type=building) zugeordneten Adressen über die Kommandozeilen-Toolchain braucht mit 2.9 Sekunden für die wenigen Zeilen Ergebnis viel zu lang und ist letztendlich ungeeignet, eine Postgres-Abfrage dürfte deutlich schneller ein.
Mein Thema sind aber Batchanfragen mit großen Ergebnissen, und in der Tat braucht die gleiche Anfrage für alle Amenities mit 3.5s nur unwesentlich mehr Zeit.
Zurück zu Deiner Anfrage:
nimm die bereits vorgeschlagen OP-Abfrage, lass das Ergebnis in XML-Form liefern und wandle es per XSLT in die von Dir gewünschte Form.
Gruß Wolf
Edit: URLS