You are not logged in.

#1 2021-08-24 07:05:32

Lübeck
Member
Registered: 2009-02-17
Posts: 2,830

Overpass - alle Etap-Hotels finden

Moin!

für eine längere Reise möchte ich alle IBIS-Budget Hotels (ehemals ETAP) finden.

Schon mit

{{key1=tourism}}
{{value1=hotel}}

 <osm-script output="json">
  <union>
    <query type="node">
      <has-kv k="{{key1}}" v="{{value1}}"/>
      <has-kv k="name" v="IBIS Budget"/>
      <bbox-query {{bbox}}/>
    </query>
    
   </union>
   <print geometry="center"/>
</osm-script>

komme ich irgendwie nicht weiter, weil die Namen bekanntlich auch immer unterschiedlch geschrieben werden in der DB.

Mögliche Beispiele wären
* ETAP
* Etap
* IBIS-Budget
* IBIS-BUDGET
...

Hat einer eine Idee, wie man das am besten umsetzen könnte?

Gruß Jan


Redmi Note 9 Pro  mit Android 11, Tablet Android 8.1, PC: Win10

Offline

#2 2021-08-24 08:20:04

the-asca
Member
Registered: 2020-05-18
Posts: 263

Re: Overpass - alle Etap-Hotels finden

Mit Regex kannst halt auch case-insensitive suchen (also Groß-/Kleinschreibung missachtend):

[out:json][timeout:300];
(
  nwr["tourism"="hotel"]["name"~"^(ibis|etap)", i]({{bbox}});
  nwr["brand"="Ibis"]({{bbox}});
  nwr["operator"="Accor"]({{bbox}});
);
out geom center;

Zudem mal noch ergänzt alles was brand=Ibis oder operator=Accor hat. In dem Beispiel muss es also entweder eines davon haben oder halt tourism=hotel sein und mit "ibis" oder "etap" im Namen beginnen.

Wenn du es als XML-osm-script haben willst, kannst es hier konvertieren: http://overpass-api.de/convert_form.html


Mein Name ist nur "asca" (kleines a und ohne "the-"), bitte so schreiben, vielen Dank.
Alle Edits meiner Kommentare sind (nur) Typofixes, wenn nicht explizit anders angegeben.

Offline

#3 2021-08-24 08:34:45

mmd
Member
Registered: 2010-11-06
Posts: 1,945

Re: Overpass - alle Etap-Hotels finden

the-asca wrote:

Wenn du es als XML-osm-script haben willst, kannst es hier konvertieren: http://overpass-api.de/convert_form.html

Keine gute Idee. Dieses Script kennt die overpass turbo Erweiterung {{bbox}} nicht und verwandelt die Query in eine globale Query ohne irgendwelche Einschränkungen!

Besser: overpass turbo --> Export --> Abfrage -> Nach Overpass-XML konvertieren

Noch besser: Overpass XML am besten gedanklich streichen und stattdessen nur noch die QL Variante nutzen.

Last edited by mmd (2021-08-24 08:51:05)

Offline

#4 2021-08-24 09:40:32

the-asca
Member
Registered: 2020-05-18
Posts: 263

Re: Overpass - alle Etap-Hotels finden

mmd wrote:

Besser: overpass turbo --> Export --> Abfrage -> Nach Overpass-XML konvertieren

Ey ich hatte das genau unter Export auch gesucht, weil ich im Kopf hatte, dass es da irgendwo war, aber war einfach dabei blind neutral

mmd wrote:

Noch besser: Overpass XML am besten gedanklich streichen und stattdessen nur noch die QL Variante nutzen.

*zustimm*

Wo du grad da bist, irgendwie kommt mir overpass-api.de heute extrem langsam bezüglich der Regex vor. Also Regex ist nie flott, klar, aber das performt heute irgendwie extrem schlecht nach meinem Gefühl. Müsste ["tourism"="hotel"] nicht eh erstmal schon die Ergebnismenge extrem einschränken? Fühlt sich so an als würde Overpass erst ["name"~"^(ibis|etap)", i] über alles in der bbox machen und dann schauen ob's ein Hotel ist. Deshalb auch das hohe Timeout.


Mein Name ist nur "asca" (kleines a und ohne "the-"), bitte so schreiben, vielen Dank.
Alle Edits meiner Kommentare sind (nur) Typofixes, wenn nicht explizit anders angegeben.

Offline

#5 2021-08-24 16:30:36

mmd
Member
Registered: 2010-11-06
Posts: 1,945

Re: Overpass - alle Etap-Hotels finden

Ich denke, da kommen ein paar Sachen zusammen. Wenn die bbox zu groß wird, erfolgt irgendwann der Übergang zu den Tags auf globaler Ebene, was im Fall von "name" mit den fast 85 Mio. Objekten etwas länger dauert. Dazu Instanzen, die CPU-mässig eher bei 100% sind.

Man kann den "name-Teil natürlich auch separat abfragen, was etwas flotter ist. Den großen Durchbruch bringt das natürlich nicht.

[out:json][timeout:300];
nwr["tourism"="hotel"]({{bbox}});
nwr._["name"~"^(ibis|etap)", i];
out geom center;

Last edited by mmd (2021-08-24 17:08:45)

Offline

#6 2021-08-29 11:08:47

mmd
Member
Registered: 2010-11-06
Posts: 1,945

Re: Overpass - alle Etap-Hotels finden

Was ich noch erwähnen wollte: mit dem richtigen Backend lässt sich so eine Query natürlich auch global ausführen, ohne dass das allzu lange dauert: https://overpass-turbo.eu/s/1aIb

Offline

Board footer

Powered by FluxBB