ich benötige für meine Bachelorarbeit die Standorte von Lebensmitteleinzelhändlern in Karlsruhe. Doch leider scheitere ich momentan an der Abfrage beim Overpass.
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”;
way[“shop”=“supermarket”]“name”=“aldi”;
relation[“shop”=“supermarket”]“name”=“aldi”;
);
// 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?
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?
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;
way[“shop”=“supermarket”]“name”~“aldi”,i;
relation[“shop”=“supermarket”]“name”~“aldi”,i;
);
// print results
out body;
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:
Was bedeutet bei der Abfrage nach dem Namen dieses “,i” am Schluss und warum macht man es da?
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.