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, 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.
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 …
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;-)
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 …
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
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.
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).
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; }
}}
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.
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?