You are not logged in.
- Topics: Active | Unanswered
Announcement
Please create new topics on the new site at community.openstreetmap.org. We expect the migration of data will take a few weeks, you can follow its progress here.***
#1 2013-05-07 07:43:54
- Lübeck
- Member

- Registered: 2009-02-17
- Posts: 2,874
Ermitteln von Namen aus der Datenbank (Shops)
Moin !
ich schaue mir immer wieder die Tags von Geschäften an und stelle fest wie unterschiedlich manche sind.
Nun habe ich mir überlegt diese mal einzeln zu analysieren und habe dabei festgestellt das es gar nicht so einfach ist diese zu ermitteln.
Wenn man zum Beispiel nach name=ditch sucht, dann kommt fast gar nicht - obwohl weit verbereitet.
Weiß einer von Euch ob es irgendwie möglich ist - vielleicht sogar über die Overpass-Api - regulär nach diesen Namen zu suchen um möglichst viele zu erwischen.
DB scheidet aus, da ich gerne die Abfrage allgemeinzugänglich in eine Seite einbauen möchte.
Gruß Jan :-)
Redmi Note 9 Pro mit Android 11, Tablet Android 8.1, PC: Win10
Offline
#2 2013-05-07 08:50:24
- kerosin
- Member
- From: Kiel
- Registered: 2011-12-19
- Posts: 269
Re: Ermitteln von Namen aus der Datenbank (Shops)
So wie ich es verstanden habe:
http://overpass-turbo.eu/s/7o
Aber das hilft natürlich nicht unbedingt für ein Einbauen in eine Seite;)
Offline
#3 2013-05-07 09:10:35
- aighes
- Member
- From: Shanghai
- Registered: 2009-03-29
- Posts: 5,383
- Website
Re: Ermitteln von Namen aus der Datenbank (Shops)
Bei Overpass-Aufruf kann man auch v= durch regv= ersetzen und dann etwas mit RegEx's spielen, um ditch und Ditch und was es noch für Schreibweisen geben könnte zu finden.
Viele Grüße
Henning
Offline
#4 2013-05-07 09:24:39
- Lübeck
- Member

- Registered: 2009-02-17
- Posts: 2,874
Re: Ermitteln von Namen aus der Datenbank (Shops)
hi !
Du schreibst aber jetzt Aldi
ich würde jetzt aber auch gerne die Punkte mit aldi, ALDI etc. mit finden.
Hatte schon an
<has-kv k="name" regv="[aA][lL][dD][iI]"/>
gedacht. Aber das hat endlos gerechnet - oder ein Fehler von mir.
Dann wäre da noch die Variante Aldi Nord, Aldi Süd ....
Ideen ?
Gruß Jan :-)
Redmi Note 9 Pro mit Android 11, Tablet Android 8.1, PC: Win10
Offline
#5 2013-05-07 10:00:49
- webpassenger
- Member
- Registered: 2009-05-08
- Posts: 35
Re: Ermitteln von Namen aus der Datenbank (Shops)
Hi,
also ein Aufruf mit:
http://overpass-api.de/api/convert?data=node[%22name%22~%22[Aa][Ll][Dd][Ii]%22]%2852.341,13.088,52.669,13.760%29;out+body;&target=openlayerswürde zumindest alle Varainten von Aldi in Berlin anzeigen. Incusive Aldi Markt, ALDI Nord etc.
Gruß webpassenger
Offline
#6 2013-05-07 10:08:55
- Lübeck
- Member

- Registered: 2009-02-17
- Posts: 2,874
Re: Ermitteln von Namen aus der Datenbank (Shops)
hi !
ich hatte es mit http://overpass-turbo.eu/s/7s versucht.
<osm-script output="json">
<union>
<query type="node">
<has-kv k="name" regv="[aA][lL][dD][iI]"/>
<bbox-query {{bbox}}/>
</query>
<query type="way">
<has-kv k="name" regv="[aA][lL][dD][iI]"/>
<bbox-query {{bbox}}/>
</query>
<query type="relation">
<has-kv k="name" regv="[aA][lL][dD][iI]"/>
<bbox-query {{bbox}}/>
</query>
</union>
<print mode="body"/>
<recurse type="down"/>
<print mode="skeleton"/>
</osm-script>
Vermutlich liegt mein Fehler aber in der Definition für den Regulären Ausdruck.
Gruß Jan :-)
Redmi Note 9 Pro mit Android 11, Tablet Android 8.1, PC: Win10
Offline
#7 2013-05-07 10:20:40
- Oli-Wan
- Member

- From: NRW
- Registered: 2010-09-14
- Posts: 2,814
Re: Ermitteln von Namen aus der Datenbank (Shops)
<has-kv k="name" regv="[aA][lL][dD][iI]"/>
Um solche Krücken überflüssig zu machen, habe ich soeben einen Feature-Wunsch zu "case-insensitive regex matching" geschrieben.
Edit: War überflüssig, denn wie Roland sofort geantwortet hat, ist das bereits möglich:
node["name"~"^Aldi$",i];<has-kv case="ignore" k="name" regv="^Aldi$"/>Um auch Aldi Süd/Nord usw. zu bekommen: "$" weglassen oder durch ".*$" oder " ?.*$" oder " ?.*" oder [... diverse andere Möglichkeiten ...] ersetzen.
Last edited by Oli-Wan (2013-05-07 11:24:37)
No animals were harmed in the writing of this posting.
Offline
#8 2013-05-07 11:14:27
- Lübeck
- Member

- Registered: 2009-02-17
- Posts: 2,874
Re: Ermitteln von Namen aus der Datenbank (Shops)
noch besser !
Redmi Note 9 Pro mit Android 11, Tablet Android 8.1, PC: Win10
Offline
#9 2013-05-07 11:56:56
- toc-rox
- Member

- From: Münster
- Registered: 2011-07-20
- Posts: 2,357
- Website
Re: Ermitteln von Namen aus der Datenbank (Shops)
Man könnte den Value beim Key "name" auch leer lassen ... dann erhält man alle benannten Objekte und filtert oder selektiert dann in einem zweiten Schritt.
Gruß Klaus
Offline
#10 2013-05-07 14:57:16
- Lübeck
- Member

- Registered: 2009-02-17
- Posts: 2,874
Re: Ermitteln von Namen aus der Datenbank (Shops)
Redmi Note 9 Pro mit Android 11, Tablet Android 8.1, PC: Win10
Offline
#11 2013-05-08 15:32:33
- Lübeck
- Member

- Registered: 2009-02-17
- Posts: 2,874
Re: Ermitteln von Namen aus der Datenbank (Shops)
hi !
ich versuche diese Ausdrucke aus overpass-turbo jetzt in die Form
http://www.overpass-api.de/api/xapi?*[bbox=8,53,13,55][%22name~^aldi.*$%22][@meta]
zu bringen.
Aber irgendwie scheitere ich immer mit Fehlermeldungen wie...
Error in [*[bbox=8,53,13,55]["name~^aldi.*$"][@meta]]:
Error: Expected '=' after key.
Kann nochmal einer weiterhelfen ?
Gruß Jan :-)
Redmi Note 9 Pro mit Android 11, Tablet Android 8.1, PC: Win10
Offline
#12 2013-05-08 16:00:31
- TEL0000
- Moderator
- From: Berlin
- Registered: 2008-06-11
- Posts: 968
Re: Ermitteln von Namen aus der Datenbank (Shops)
Ähm, das liegt wohl daran, dass du den XAPI-Layer befragst, der den Syntax nicht versteht.
Offline
#13 2013-05-08 17:06:01
- Lübeck
- Member

- Registered: 2009-02-17
- Posts: 2,874
Re: Ermitteln von Namen aus der Datenbank (Shops)
Hi!
da gebe ich Dir Recht - der Groschen ist einfach noch nicht gefallen !
Jan
Redmi Note 9 Pro mit Android 11, Tablet Android 8.1, PC: Win10
Offline