Overpass turbo query
-
Overpass turbo query · Aqua123 (Gast) · 03.05.2017 10:19 · [flux]
Hallo zusammen,
ich benötige für meine Bachelorarbeit die Standorte von Lebensmitteleinzelhändlern in Karlsruhe. Doch leider scheitere ich momentan an der Abfrage beim Overpass.
Meine bisherige Überlegung sieht folgendermaßen aus:
Da ich Lebensmitteleinzelhändler möchte verwende ich die Begriffe "shop=supermarket". Jedoch benötige ich nur Daten von bestimmten, wie z.B. Aldi und Edeka, daher habe ich in der Abfrage "name=Aldi" hinzugefügt.
Daraus resultiert dann folgendes Ergebnis:
/*
This has been generated by the overpass-turbo wizard.
The original search was:
“shop= supermarket and name=aldi in karlsruhe”-
/
[out:json][timeout:25];
// fetch area “karlsruhe” to search in
{{geocodeArea:karlsruhe}}->.searchArea;
// gather results
(
// query part for: “shop=supermarket and name=aldi”
node["shop"="supermarket"]["name"="aldi"](area.searchArea);
way["shop"="supermarket"]["name"="aldi"](area.searchArea);
relation["shop"="supermarket"]["name"="aldi"](area.searchArea);
);
// print results
out body;;
out skel qt;
Jedoch bleibt die Karte leer...
Meine Überlegung war nun, dass der Schlüssel "name" falsch ist?
Kann mir dabei jemand bitte helfen?- Re: Overpass turbo query · hfst (Gast) · 03.05.2017 10:30 · [flux]
Zumindest bei Aldi, Karlsruhe, Eichelbergstraße ist findet man name=ALDI. Unterscheidet Overpass Groß- und Kleinschreibung?
- Re: Overpass turbo query · Aqua123 (Gast) · 03.05.2017 10:32 · [flux]
Oh daran habe ich noch nicht gedacht, wenn ich ALDI schreibe, dann bekomme ich zumindest 4 Treffer, wobei es mehr sein müssten
- Re: Overpass turbo query · Aqua123 (Gast) · 03.05.2017 10:40 · [flux]
Mir fällt gerade auf, dass bei manchen noch "Süd" dahinter steht, kann ich in die ABfrage so gestallten, dass er nicht nur nach dem String "Aldi" sucht, sondern nach ALdi% wie bei SQL-Abfragen?
- Re: Overpass turbo query · fx99 (Gast) · 03.05.2017 10:48 · [flux]
http://wiki.openstreetmap.org/wiki/Over … ensitively
Case insensitively
You can also search case insensitively
node["name"~"^Foo$",i]; /* finds "foo", "FOO", "fOo", "Foo" etc. */
- Re: Overpass turbo query · Aqua123 (Gast) · 03.05.2017 10:52 · [flux]
Dankeschön, ich glaube das hilft mir sehr weiter!
Ich versuche es mal - Re: Overpass turbo query · fx99 (Gast) · 03.05.2017 10:53 · [flux]
so tut es:
[out:json][timeout:25];
// fetch area “karlsruhe” to search in
{{geocodeArea:Karlsruhe}}->.searchArea;
// gather results
(
// query part for: “shop=supermarket and name=aldi”
node["shop"="supermarket"]["name"~"aldi",i](area.searchArea);
way["shop"="supermarket"]["name"~"aldi",i](area.searchArea);
relation["shop"="supermarket"]["name"~"aldi",i](area.searchArea);
);
// print results
out body;;
out skel qt;
- Re: Overpass turbo query · Aqua123 (Gast) · 03.05.2017 10:59 · [flux]
ja perfekt, nun zeigt es mir alle Aldis an, ich danke euch sehr!
- Re: Overpass turbo query · Phoenix12 (Gast) · 04.05.2017 11:51 · [flux]
Hallo Leute,
ich will nicht gleich ein neues Thema aufmachen.
Ich habe eine ähnliche Arbeit vor mir nur auf Baden-Württemberg Ebene und bedanke mich schon mal für die Hilfe, da dies mir auch ziemlich weiter geholfen hat.
Allerdings habe ich noch zwei Fragen:
1. Was bedeutet bei der Abfrage nach dem Namen dieses ",i" am Schluss und warum macht man es da?
2. Wenn ich die Abfrage auf ["name"~"^aldi$", i] ändere erhalte ich weniger Aldi's als zuvor. Warum? Dachte es würde dazu führen, dass die Groß- und Kleinschreibung ignoriert wird.
Grüße
- Re: Overpass turbo query · poempelfox_forum (Gast) · 06.05.2017 22:41 · [flux]
Phoenix12 wrote:
2. Wenn ich die Abfrage auf ["name"~"^aldi$", i] ändere erhalte ich weniger Aldi's als zuvor. Warum? Dachte es würde dazu führen, dass die Groß- und Kleinschreibung ignoriert wird.
Nein, gross/klein ignorieren macht das ',i'.
Das ist ein regulaerer Ausdruck, und hinter dem komma kommen die flags, 'i' heisst ueblicherweise 'case Insensitive'.
Im Ausdruck selbst matcht '^' auf den Anfang des Strings und '$' aufs Ende - '^aldi$' ist also sehr viel restriktiver als 'aldi', denn es matcht nur wenn vor und hinter dem Aldi nichts kommt.
-
/