[erledigt] uMap von ausgelagerter csv-Datei aktualisieren

Ich betreibe zwei Karten auf uMap
Herkunft und Verbleib der Bewohner von Krasna
Origin and whereabouts of the citizens of Krasna

Bisher aktualisieren ich die Dateien per manuellem Import einer csv-Datei.

Im Importmenü von uMap gibt es die Option “Ausgelagerte Dateien”
URL: …
Format: csv utf-8

Wie handhabe ich dies?
Einfach die bisherige csv-Datei öffentlich ablegen und in uMap verlinken?

Einfach einmal mit einer “unsagbaren” Datei probieren.
Du hast doch jetzt auch schon eine url=* angegeben, wird die nicht genutzt?
(Funktioniert vielleicht nicht, da uMap vielleicht eine Fehlermeldung beim Abruf erhält?)

#geri-oc Danke.

So einfach kann es nicht sein.
Hier ein Beispiel für eine von zwei Ebenen:
https://otto-riehl.de/historicplace/uMap/krasna%20gedcom_u_adt_mpl_pmov-de.tsv

Das war eine unpräzise Frage von mir.
Pro Karte habe ich zwei Ebenen. Also müsste ich auch zwei Dateien importieren und zwei verschiedenen Ebenen zuordnen.

Im Prinzip “funktioniert” deine Datei als “ausgelagerte Daten”-Quelle, hab das eben mal mit deinem Link ausprobiert. uMap verwendet intern csv2geojson, welches halbwegs selbständig nach Lat und Lon Feldern in den Daten sucht (Regexp in der Art von: var latRegex = /(Lat)(itude)?/gi, lonRegex = /(L)(on|ng)(gitude)?/i; Quelle).

Dein Webserver liefert allerdings keinen passenden “Access-Control-Allow-Origin”-Header mit aus, sodass die Same-Origin-Policy des Browsers greift und der (Cross-Origin) Request nach deiner Datei vom Browser verworfen wird (Origin: umap.openstreetmap.org, Angefragte Domain: deine eigene). Zum Umgehen kannst du entweder in uMap für die “ausgelagerten Daten” einen Proxy aktivieren, oder aber in deinem Webserver den Header setzen, für Apache z.B. via Header set Access-Control-Allow-Origin "umap.openstreetmap.fr" (keine Gewähr! Ich kann das im Detail erst am Wochenende ausprobieren :wink: :-/).

Was so noch nicht funktioniert sind die Pop-Ups: Dazu müsstest du die Pop-Up Inhalte in deinem tsv entsprechend vorbereiten und in den “richtigen” Spalten ablegen. Die Spalte “name” wird als Überschrift verwendet, die Spalte “description” wird als Beschreibung verwendet.

Hier verstehe ich nicht genau, was du meinst, da müsstest du vielleicht konkreter werden, was in den Ebenen für Daten/Objekte liegen, und was in den Dateien für Daten abgelegt sind.

Grüße
t.

umap erlaubt das Anlegen mehrerer Daten-Ebenen. In jede Ebene können unabhängig von den anderen Daten importiert werden.
Mit dynamischen overpass Abfrage funktioniert das auf jeden Fall.

Beste Grüße
Otto

Besten Dank für den sicher gut gemeinten Hinweis.

Sorry, ich probiere mich hier an Dingen, von denen ich nicht viel verstehe.
Mit einer dynamischen overpass Abfrage weiß ich nicht was ich tun kann.

Bisher habe ich
die beiden Karten.
die csv Dateien

Bisher importiere ich mt uMap.

**Ziel: **
Wie bringe ich Karte und Dateien komfortabel zueinander.
Ich will die csv-Dateien im Arbeitsablauf häufig automatisch aktualisieren. Die Karten sollen sich dann dynamisch aktualisieren, die neuen Werte übernehmen…

.htaccess, ja. Es kann sein, dass der Apache nicht so konfiguriert ist, dass du Header setzen kannst. Einfacher ist es zunächst eben den Proxy-Schalter in uMap anzumachen.

:smiley: :smiley: :smiley: Okay. Ich kenne mich einfach zu wenig mit uMap aus. Faszinierenderweise hast du eigentlich schon eine funktionierende Lösung, weisst es nur noch nicht ;). Oder hast es noch nicht ausprobiert. Oder bist einfach nur über den Proxy bzw. CORS gestolpert (ich beim Ausprobieren auch…).

Wenn ich deine Popup-Vorlage entsprechend verwende (Die Standard-Vorlage ist “#{name} {description}” – deshalb wurden also auch “meine” Spaltennamen “name” und “description” verwendet kopfschüttel und ich nahm an, dass das irgendwie halt so ist :slight_smile: ), dann sieht die Karte quasi schon so aus, wie deine.

Lege einfach zwei Ebenen an und verwende bei der ersten Ebene im Feld die eine, in der zweiten Ebene die andere URL, also genau so, wie fx99 schon meinte – da war fx99 mir ein gutes Stück voraus. :slight_smile:

Cool, hab ich auch wieder was gelernt.

Beste Grüße
t.

p.s. Dein “Gib mir vor.” kommt bei mir im Tonfall etwas arg fordernd rüber: Ich mach das hier aus Freude in meiner Freizeit und (noch?) nicht als (d)ein Dienstleister ;).

p.p.s. POC

p.p.p.s. Also “gelöst” haben dein Problem hier geri-oc und fx99: Ich habe eigentlich nur den Hinweis auf CORS und den Proxy-Schalter in uMap gegeben und vielleicht ein wenig ausführlicher geantwortet.

[Edit: Credits den richtigen Leuten :)]

Sorry, sollte so nicht verstanden werden. Da habe ich den falschen Ton getroffen.
Meine Intuition war: “Meister gib mir vor, ich mache dies dann”.
Null Anweisung. Eher in freudiger Erwartung des nächsten Schritts.

Bitte nimm dies als Entschuldigung an.

Also erst einmal herzlichen Dank.
Ich probiere Deine Vorschläge morgen aus, muss nachher zum Training.
Ob ich alles wie von Dir vorgeschlagen umgesetzt bekomme ist mir noch nicht klar.

Lob und Anerkennung - das klappt wunderbar.

Ich habe in Ausgelagerte Dateien erfasst:
URL …
Format = csv
Dynamisch = ON (Daten jedes Mal abrufen, wenn sich die Kartenansicht ändert.)
Proxyanforderung = ON (Anzuwenden, wenn der Zielserver kein Cross Origin Resource Sharing (CORS) erlaubt (langsamer).)
Proxycache-Anfrage = Kein Cache (5 Minuten / 1 Stunde / 1 Tag)

Es kam keine Fehlermeldung.
Mit einem Editor habe ich auf meinem Webserver in der csv-Datei eine Änderung vorgenommen. Und nach mehrmals Karte aktualisieren wurde die Änderung im Popup angezeigt. So wollte ich es haben. Begeisterung.

Zwei Fragen:
Was bewirkt die Proxycache-Anfrage?
Meine Daten ändern sich nur alle paar Tage. Was empfiehlt sich einzustellen? Kein Cache / 5 Minuten / 1 Stunde / 1 Tag

Proxyanforderung = ON
Da steht dabei langsamer.
Was müsste ich in einer .htaccess notieren für Cross Origin Resource Sharing (CORS)
Ist dies überhaupt erstrebenswert?

Fragen und Fragen.
Leute, ich bin begeistert und dankbar für die Hilfe die hier erbracht wird. Danke.

Beste Grüße
Otto

Welchen Browser verwendest du? Bei deinen Fragen geht es im wesentlichen um “Webtechnologien”. Da ist es hilfreich die “Entwickler-Tools” des Browsers mal in Augenschein zu nehmen und sich mit den Hintergründen, was beim surfen im Internet passiert, ein wenig auseinanderzusetzen. Ich verwende Firefox, da kann man mit Ctrl-Shift-E, das sogenannte Netzwerkanalyse-Tool zum Vorschein bringen. Der Name ist irreführend, denn das Ding analysiert nicht das Netzwerk, sondern die HTTP/Websocket-Anfragen (und -Antworten), die der Firefox stellt (und erhält).

Die “ausgelagerten Daten” werden mit einer weiteren Anfrage vom Browser des Besuchers der Karte nachgeladen. Im Netzwerkanalyse-Tool des Browsers kann man diese Anfrage sehen und auch sehen, ob das erfolgreich ist, oder ob der Browser die Antwort auf die Anfrage wegen CORS verwirft.

Mit ausgeschaltetem Proxy lässt uMap den Browser die Anfrage direkt an deinen Server stellen.

Mit angeschaltetem Proxy lässt uMap den Browser die Anfrage an den uMap-Server stellen, der wiederrum die Anfrage an deinen Server stellt, die Antwort deines Servers je nach Einstellung zwischenspeichert (in einem Cache) und an den anfragenden Besucher/Browser gibt.

Ist quasi wie im Restaurant: Gast: “Kann ich Gericht A auch mit Beilage B haben?” Kellner rennt in die Küche, fragt nach und übermittelt die Antwort an dich. Wenn der Kellner einen Cache hat, dann rennt er für dieselbe Frage nicht jedes mal in die Küche (und belästigt dort den Koch :wink: ), sondern antwortet “aus dem Cache”. Was aber nun, wenn sich die Antwort des Kochs geändert hätte? Daher ist es gut, doch nach einer gewissen Zeit immer mal beim Koch nachzufragen.

Wenn dein Server das unterstützt, dann kommt in die .htaccess:


Header set Access-Control-Allow-Origin "umap.openstreetmap.fr"

Das Ergebnis davon kannst du in den Antwort-Headern im “Netzwerkanalyse”-Tool deines Browsers sehen.

Probiere im Zweifelsfall statt der umap-Domain ein Sternchen (“*”). Das sollte aber nicht dauerhafte Einstellung sein.

Beste Grüße
t.

Das hat nicht auf Anhieb funktioniert.

Ich habe aber mal nachgelesen was ein Proxy leistet. Ich denke, das ist in meinem Fall nicht schlecht.
Die Lösung mit Proxy lasse ich mal bestehen.

Die Cachezeit habe ich mit 1 Stunde vorgegeben.

Meine zwei Karten mit jeweils zwei Ebenen werden mit Daten bestückt, die bei mir ein Batch regelmäßig bereitstellt.

Organisiert, läuft von alleine nebenbei.

Allen hier Beteiligten ein ganz großes Danke.

Vielen Dank für diesen hilfreichen Thread!

Ich musste länger suchen, denn bei mir funktionierte “Daten importieren” - “URL” nicht. Diese Funktion ist ähnlich der im Thread beschriebenen, kennt aber kene Einstellmöglichkeiten für Proxy etc., was mich vor ziemliche Fragen stellte.

Deshalb teile ich mit Euch meine spätere Erkenntnis: Möchte man die im Thread beschriebene Funktion nutzen, so geht das über “Ebenen verwalten” - “ggf. Ebene hinzufügen” - “Ebene bearbeiten (Stiftsymbol)” - “Ausgelagerte Dateien”