You are not logged in.

Announcement

*** NOTICE: forum.openstreetmap.org is being retired. Please request a category for your community in the new ones as soon as possible using this process, which will allow you to propose your community moderators.
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 2020-09-25 10:20:51

MichaelFS
Member
Registered: 2011-04-16
Posts: 147

OverpassTurbo für check_date mit Variablen

Hallo,

zur Überprüfung des Schlüssels "check_date" habe ich einige Diskussionen gefunden, z.B.:
* User Lübeck: Wie aktuell sind die OSM-Daten?
* Landshut / Alexander Lehner: POIs aktuell halten

Da die Server-basierte "Landshuter"-Lösung nicht mehr funktioniert, möchte ich mir eine OverpassTurbo-Abfrage generieren. Das Finden von check_date ist ja noch einfach, aber wie kann ich das mit variablen Kalenderdaten erweitern, z.B.
* Datum_aktuell = 2020-09-25
* Einfärben rot, wenn check_date < Datum_aktuell - 200 d
* Einfärben gelb, wenn check_date < Datum_aktuell - 100 d
Außerdem würde ich gerne andere Varianten von check_date erkennen, z.B.
* Einfärben blau, wenn z.B. lastcheck, last_checked oder last_check existieren.

Danke, Michael

Offline

#2 2020-09-25 11:07:09

Jo Cassel
Member
Registered: 2015-12-02
Posts: 1,534

Re: OverpassTurbo für check_date mit Variablen

mal ganz einfach gestrickt mit
/* rot=default bzw. älter als unten */
/* grün=2020 */
/* blau=2019 */
https://overpass-turbo.eu/s/Ynz

Wenn Du andere Varianten suchst, ändere halt die Suche.

Offline

#3 2020-09-25 11:15:33

MichaelFS
Member
Registered: 2011-04-16
Posts: 147

Re: OverpassTurbo für check_date mit Variablen

Danke, aber kann ich nicht "irgendwie" das aktuelle Datum und Berechnungen damit, z.B. HEUTE - 200 Tage in den Code aufnehmen? Das (vielfache) Ändern der Zeitwerte ist lästig und fehleranfällig, und ich kann nur Ergebnisse je Jahre sehen.Fallweise wäre mir ein Monat (30 Tage), ein Quartal (90 Tage) etc. wichtig.

Offline

#4 2020-09-25 12:19:47

MKnight
Member
Registered: 2012-08-01
Posts: 2,406

Re: OverpassTurbo für check_date mit Variablen

MichaelFS wrote:

Danke, aber kann ich nicht "irgendwie" das aktuelle Datum und Berechnungen damit, z.B. HEUTE - 200 Tage in den Code aufnehmen? Das (vielfache) Ändern der Zeitwerte ist lästig und fehleranfällig, und ich kann nur Ergebnisse je Jahre sehen.Fallweise wäre mir ein Monat (30 Tage), ein Quartal (90 Tage) etc. wichtig.

Rechnen sollte auch irgendwie gehen, übersteigt aber meine Kenntnisse im overpass-css
Alternativ wäre

[check_date=~/2020-09/]

(etwa 30 Tage)
und/oder

[check_date=~/2020-09|2020-08|2020-07/]

(etwa 90 Tage)
eine Lösung.

Last edited by MKnight (2020-09-25 12:26:10)


gesammelte Overpass-abfragen zu QA (hauptsächlich Strassenfehler) + verschiedene Stats zu Strassen-eigenschaften

Offline

#5 2020-09-25 12:51:49

MichaelFS
Member
Registered: 2011-04-16
Posts: 147

Re: OverpassTurbo für check_date mit Variablen

Danke, aber rechnen wäre schon sehr wichtig!

Hier habe ich einen Vorschlag mit größer / kleiner - Selektion basierend auf einem UNIX-Timestamp (multipliziert mit 1.000) gefunden. Aber bei mir funktioniert nicht mal das Hinzufügen des <-Teils ...

Offline

#6 2020-09-25 15:09:18

Jo Cassel
Member
Registered: 2015-12-02
Posts: 1,534

Re: OverpassTurbo für check_date mit Variablen

schau Dir das mal an
https://overpass-turbo.eu/s/Yo5
dort wird der ISO timestamp ausgelesen (bei Objekten mit check_date) - was allerdings nicht bedeutet, dass der Bearbeiter auch den check_date korrekt aktualisiert hat;-)

Offline

#7 2020-09-25 15:14:48

miche101
Member
Registered: 2008-12-16
Posts: 1,297

Re: OverpassTurbo für check_date mit Variablen

der Ansatz ist nix?:

Ein Tool das beim Review hilft..
https://forum.openstreetmap.org/viewtopic.php?id=70546

Weil das check_date hat das Problem das es erst einmal gesetzt werden müsste hmm

Offline

#8 2020-09-25 20:29:20

MichaelFS
Member
Registered: 2011-04-16
Posts: 147

Re: OverpassTurbo für check_date mit Variablen

Danke @Jo Cassel,
das schaut überschaubar aus, hat aber immer noch das "problem", dass das Datum fest eingetippt ist. Ich stelle mir so etwas vor:
DatumAKT=date() ; heutiges Datum speichern
check-date - Schlüssel finden
IF check_date < DatumAKT - 300 THEN COLOR = ROT
IF check_date < DatumAKT - 100 THEN COLOR = GELB
IF check_date < DatumAKT -   50 THEN COLOR = GREEN

danke @miche101,
auch in der von Dir vorgeschlagenen Variante ist das Grenz-Datum fest vorgegeben; die Web-Anwendung bleibt bei mir ohne Inhalt und "timestamp" muss ich noch vestehen.

Puhh, ist das kompliziert. Ich hatte gedacht, eine ganz simple Frage zu stellen ..

Offline

#9 2020-09-25 22:53:26

Rainero
Member
Registered: 2016-02-26
Posts: 375

Re: OverpassTurbo für check_date mit Variablen

Das Datum in dieser Syntax eingeben?

Offline

#10 2020-09-25 23:21:21

smootheFiets
Member
Registered: 2019-12-09
Posts: 573

Re: OverpassTurbo für check_date mit Variablen

Rainero wrote:

Das Datum in dieser Syntax eingeben?

Das, bilde ich mir ein, funktioniert für Overpass selbst, aber nicht für das Stylesheet, und das bräuchte man für die Farben.

Hatte mal fast dieselbe Frage wie der TE, hab verschiedenes probiert, und bin dann doch bei hardwired Daten hängengeblieben.
Wäre froh, wenn jemand eine Lösung hätte, ansonsten hab ich wenigstens etwas schalen Trost im Angebot: du bist nicht der einzige smile

Offline

#11 2020-09-26 07:07:48

geri-oc
Member
From: Sachsen
Registered: 2011-03-21
Posts: 5,055
Website

Re: OverpassTurbo für check_date mit Variablen

https://overpass-turbo.eu/s/YoZ

Etwas anpassen?

Last edited by geri-oc (2020-09-26 07:08:13)

Offline

#12 2020-09-26 09:01:03

MKnight
Member
Registered: 2012-08-01
Posts: 2,406

Re: OverpassTurbo für check_date mit Variablen

geri-oc wrote:

was hat das mit der Fragestellung gemeinsam?


gesammelte Overpass-abfragen zu QA (hauptsächlich Strassenfehler) + verschiedene Stats zu Strassen-eigenschaften

Offline

#13 2020-09-26 10:27:07

Jo Cassel
Member
Registered: 2015-12-02
Posts: 1,534

Re: OverpassTurbo für check_date mit Variablen

smootheFiets wrote:
Rainero wrote:

Das Datum in dieser Syntax eingeben?

Das, bilde ich mir ein, funktioniert für Overpass selbst, aber nicht für das Stylesheet, und das bräuchte man für die Farben.

Hatte mal fast dieselbe Frage wie der TE, hab verschiedenes probiert, und bin dann doch bei hardwired Daten hängengeblieben.
[...]

So sehe ich das auch - mir ist nicht bekannt dass man in MapCSS/0.2 mit Variablen (aus der Overpass-Abfrage) arbeiten könnte.
Wenn ich unterschiedliche aber ähnliche Abfragen brauche, dann schreiben ich die und lege mir die Abfrage-Links im Wiki quasi wie Buttons ab.

Offline

#14 2020-09-26 10:31:01

geri-oc
Member
From: Sachsen
Registered: 2011-03-21
Posts: 5,055
Website

Re: OverpassTurbo für check_date mit Variablen

MKnight wrote:

was hat das mit der Fragestellung gemeinsam?

ich meinte es ging um Farben bei der Abfrage:

IF check_date < DatumAKT - 300 THEN COLOR = ROT
IF check_date < DatumAKT - 100 THEN COLOR = GELB
IF check_date < DatumAKT -   50 THEN COLOR = GREEN

Offline

#15 2020-09-26 11:10:16

MKnight
Member
Registered: 2012-08-01
Posts: 2,406

Re: OverpassTurbo für check_date mit Variablen

geri-oc wrote:

ich meinte es ging um Farben bei der Abfrage:

IF check_date < DatumAKT - 300 THEN COLOR = ROT
IF check_date < DatumAKT - 100 THEN COLOR = GELB
IF check_date < DatumAKT -   50 THEN COLOR = GREEN

Genau danach wird hier gesucht.
Anders gefragt; wie muss man Dein Beispiel "etwas anpassen", damit genau das dabei herauskommt?


gesammelte Overpass-abfragen zu QA (hauptsächlich Strassenfehler) + verschiedene Stats zu Strassen-eigenschaften

Offline

#16 2020-09-26 13:35:22

surveyor54
Member
From: Rhein-Main-Gebiet
Registered: 2010-05-23
Posts: 415

Re: OverpassTurbo für check_date mit Variablen

MKnight wrote:

Anders gefragt; wie muss man Dein Beispiel "etwas anpassen", damit genau das dabei herauskommt?

Vielleicht so in etwa.

https://overpass-turbo.eu/s/Ypl

Man kann auch months oder years einsetzen.

Edit: typo

Last edited by surveyor54 (2020-09-26 13:37:39)

Offline

#17 2020-09-26 14:24:56

smootheFiets
Member
Registered: 2019-12-09
Posts: 573

Re: OverpassTurbo für check_date mit Variablen

surveyor54 wrote:
MKnight wrote:

Anders gefragt; wie muss man Dein Beispiel "etwas anpassen", damit genau das dabei herauskommt?

Vielleicht so in etwa.

https://overpass-turbo.eu/s/Ypl

Man kann auch months oder years einsetzen.

Edit: typo

Geht so leider nicht. Wenn man Dinge altersabhängig einfärben will, dann muss die Frage nach timestamp ins Stylesheet, nicht in die Query selbst. Und da funktioniert diese Syntax nicht (bzw. funktionierte nicht, als ich es zum letzten Mal probiert hab, irgendwann diesen Sommer).

Offline

#18 2020-09-26 14:29:10

MichaelFS
Member
Registered: 2011-04-16
Posts: 147

Re: OverpassTurbo für check_date mit Variablen

Danke,
folgender Code liefert alle Nodes mit check_date, falls der Schlüssel vorhanden ist

[out:json];
nwr({{bbox}}) [check_date] ;
out meta;
out body;
>;
out skel qt;

Nach dem Beispiel von surveyor54 für die Einfärbung (reduzierter Code für eine Farbe):

{{style: /* this is the MapCSS stylesheet */
node, area
{ color:gray; fill-color:gray; }
node[amenity=check_date],
{ color:red; fill-color:red; }

Damit lautet der Code:

[out:json];
nwr({{bbox}}) [check_date] ;
out meta;
out body;
>;
out skel qt;

{{style: /* this is the MapCSS stylesheet */
node, way, relation, area
{ color:gray; fill-color:gray; }
node, way, relation, area[amenity=check_date] 
/* HIER KOMMT DER FILTER FÜR DIE ZEITSPANNE HIN */
{ color:red; fill-color:red; }
}}

und färbt nodes und Area in rot.

Nach dem Beispiel von smootheFiets

(if:timestamp()<"{{date:90days}}")

Diesen Schnipsel habe ich, wie im Kommentar angedeutet, hier eingefügt --> Syntax-Fehler.
Irgendeine Idee? Danke!!

Last edited by MichaelFS (2020-09-26 15:29:20)

Offline

#19 2020-09-26 15:42:01

Jo Cassel
Member
Registered: 2015-12-02
Posts: 1,534

Re: OverpassTurbo für check_date mit Variablen

vgl. #13 und #17

Eine komplexere OverpassTurbo Abfrage besteht aus 2 Teilen.
- oben die eigentliche Abfrage in Overpass QL oder Overpass XML, vgl.
https://wiki.openstreetmap.org/wiki/Ove … verpass_QL
- unten das stylesheet in MapCSS vgl.
https://wiki.openstreetmap.org/wiki/MapCSS/0.2
beide "Sprachen" haben nix miteinander zu tun, und man kann meines Wissens nach(!) timestamp und/oder date nicht innerhalb von MapCSS verwursten oder als Variable dorthin überführen,
dies wäre aber nötig um deine Wünsche #1 komplett zu erfüllen, daher hatte ich schon in #2 versucht, dir eine bescheidenere Lösung nahezubringen.

Offline

#20 2020-09-29 17:21:19

MichaelFS
Member
Registered: 2011-04-16
Posts: 147

Re: OverpassTurbo für check_date mit Variablen

Danke @Jo Cassel,
Deine Erklärung der zwei Teile ist sehr hilfreich.
Wäre es möglich, den (mit beiden Teilen) z.B. per BASH erzeugten Code "irgendwie" an die Overpass-Seite übermitteln?

Offline

#21 2020-09-29 19:24:10

MKnight
Member
Registered: 2012-08-01
Posts: 2,406

Re: OverpassTurbo für check_date mit Variablen

Das Problem ist offenbar, dass Du in der Abfrage keinen eigenen Code an den output mitgeben kannst. (Zumindest finde auch ich in der Doku nichts, was in die Richtung "Klassen setzen etc." ginge)

P.s. Ich hab ins Blaue diverse Methoden ausprobiert, die gefühlsmässig funktionieren sollten, taten sie nicht. Offenbar gilt: steht nicht in der Doku = geht nicht
Komischerweise ist das bisher niemandem aufgefallen, jedenfalls finde ich auch kein passendes Ticket dazu.
Von der Syntax her https://overpass-turbo.eu/s/Ywv sollte nach meinem Gefühl die richtige Abfrage sein. Ist sie aber nicht, weil der CSS-Teil offenbar nix von den oben definierten Gruppen weiss.
Oder ich hab was übersehen.


gesammelte Overpass-abfragen zu QA (hauptsächlich Strassenfehler) + verschiedene Stats zu Strassen-eigenschaften

Offline

#22 2020-12-25 11:00:55

MKnight
Member
Registered: 2012-08-01
Posts: 2,406

Re: OverpassTurbo für check_date mit Variablen

Moin,
das hat mir irgendwie keine Ruhe gelassen und irgendwie muss das doch gehen.
Mir ist wieder eingefallen, dass man eben doch Klassen vergeben kann via

{set .xxx ; }

Hab da jetzt bisschen ins Blaue rumprobiert und komme zu keinem Ergebnis. Jemand ne Idee?


gesammelte Overpass-abfragen zu QA (hauptsächlich Strassenfehler) + verschiedene Stats zu Strassen-eigenschaften

Offline

#23 2020-12-25 14:40:42

mueschel
Member
Registered: 2012-06-11
Posts: 1,181
Website

Re: OverpassTurbo für check_date mit Variablen

Klassen in MapCSS dienen nur zur Vereinfachung der Syntax, z.B. um Wiederholungen zu vermeiden. Mit den Sets von Ergebnissen in der eigentlichen Overpass-Anfrage hat das nichts zu tun.


Da mapcss mit Datumsangaben nichts anfangen kann, muss man das auf Overpass abwälzen und das berechnete Alter dann zurückgeben.
Leider kann auch Overpass nicht einfach das Alter eines Objektes berechnen, siehe https://github.com/drolbr/Overpass-API/issues/608 , sondern nur Vergleiche durchführen.

D.h. wir können auf dem Overpass-Server zu jedem Objekt ein neues Tag addieren, das die Altersstufen angibt:
https://overpass-turbo.eu/s/11yO

Die Ausgabe dieser Abfrage ist allerdings nicht mehr kompatibel z.B. zu JOSM, da es nicht möglich ist diese zusätzlichen Tags zusammen mit den Koordinaten der Punkte in einem Objekt zu haben. Das ist wohl eine absichtliche Entscheidung, um automatische Edits mithilfe der Overpass API zu erschweren.


Edit: Relationen hinzugefügt zum mapcss @ 14:47

Last edited by mueschel (2020-12-25 14:48:08)

Offline

Board footer

Powered by FluxBB