x

[erledigt] uMap von ausgelagerter csv-Datei aktualisieren


  1. [erledigt] uMap von ausgelagerter csv-Datei aktualisieren · Otto Riehl (Gast) · 11.09.2020 08:02 · [flux]

    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?


    • Re: [erledigt] uMap von ausgelagerter csv-Datei aktualisieren · geri-oc (Gast) · 11.09.2020 08:30 · [flux]

      Otto Riehl wrote:

      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?)


    • Re: [erledigt] uMap von ausgelagerter csv-Datei aktualisieren · Otto Riehl (Gast) · 11.09.2020 09:03 · [flux]
      1. geri-oc Danke.

      So einfach kann es nicht sein.
      Hier ein Beispiel für eine von zwei Ebenen:
      https://otto-riehl.de/historicplace/uMa … mov-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.


    • Re: [erledigt] uMap von ausgelagerter csv-Datei aktualisieren · tudacs (Gast) · 11.09.2020 13:13 · [flux]

      Otto Riehl wrote:

      So einfach kann es nicht sein.
      Hier ein Beispiel für eine von zwei Ebenen:
      https://otto-riehl.de/historicplace/uMa … mov-de.tsv

      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 😉 :-/).

      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.

      Pro Karte habe ich zwei Ebenen. Also müsste ich auch zwei Dateien importieren und zwei verschiedenen Ebenen zuordnen.

      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.


    • Re: [erledigt] uMap von ausgelagerter csv-Datei aktualisieren · fx99 (Gast) · 11.09.2020 13:52 · [flux]

      tudacs wrote:

      Pro Karte habe ich zwei Ebenen. Also müsste ich auch zwei Dateien importieren und zwei verschiedenen Ebenen zuordnen.

      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.

      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.


    • Re: [erledigt] uMap von ausgelagerter csv-Datei aktualisieren · Otto Riehl (Gast) · 11.09.2020 14:22 · [flux]

      tudacs wrote:

      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).

      Das liest sich schon einmal interessant. Schaut nach einem Plan für einen Weg aus.

      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 😉 :-/).

      Ich habe den Webspace bei Goneo, Minden gemietet.
      Mir ist nicht klar, was Du meinst.
      Reicht es in dem Ordner "otto-riehl.de/historicplace/uMap/" eine Datei abzulegen, die diese Weisung enthält? (.htaccess oder eine conf)
      Gib mir vor. In dem Ordner ist sonst nichts, auch keine Unterverzeichnisse.

      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.

      Mit richtig meinst Du sicher eine von uMap erwartete Standard-Bezeichnung.
      Das sollte machbar sein. Ich erzeuge die tsv-Dateien mit einer Software PrepMaps und Krasna Maps aus einem bestehenden Datenbestand.

      Meine Popup Vorlage ist wie folgt definiert:

      #␣{Location}
      Nachkommen
      **Nachname,␣Datum**
      {Surname}
      ###␣␣{Persons}␣Personen,␣die␣an␣diesem␣Ort␣waren
      {LinktoGOV}
      {BIRT}
      {DEAT}
      
      Latitude␣und␣Longitude:␣{lat}␣und␣{lon}␣·␣{Gruppe}
      

      Vorerst, in der Testphase, würde ich die Spaltenüberschrift mit einem Editor ändern.
      Nach Erfolg könnte die Software PrepMaps die Spaltenüberschriften sofort wie gewünscht setzen. Das ist aber ein nachgelagerter Schritt.

      Vorhanden sind folgende Spalten:
      - Gruppe
      - Location
      - Latitude
      - Longitude
      - LinktoGOV
      - Surname
      - Persons
      - BIRT
      - DEAT

      Pro Karte habe ich zwei Ebenen. Also müsste ich auch zwei Dateien importieren und zwei verschiedenen Ebenen zuordnen.

      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.

      Die Datei pmov-de.tsv importiere ich auf die Ebene Vorfahren. Vorhandene Dateien sollen überschrieben werden.

      Die Datei pmon-de.tsv importiere ich auf die Ebene Nachkommen. Vorhandene Dateien sollen überschrieben werden.

      Beste Grüße
      Otto


    • Re: [erledigt] uMap von ausgelagerter csv-Datei aktualisieren · Otto Riehl (Gast) · 11.09.2020 14:35 · [flux]

      fx99 wrote:

      Mit dynamischen overpass Abfrage funktioniert das auf jeden Fall.

      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..


    • Re: [erledigt] uMap von ausgelagerter csv-Datei aktualisieren · tudacs (Gast) · 11.09.2020 15:08 · [flux]

      Otto Riehl wrote:

      Ich habe den Webspace bei Goneo, Minden gemietet.
      Mir ist nicht klar, was Du meinst.
      Reicht es in dem Ordner "otto-riehl.de/historicplace/uMap/" eine Datei abzulegen, die diese Weisung enthält? (.htaccess oder eine conf)

      .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.

      Otto Riehl wrote:

      tudacs wrote:

      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.

      Mit richtig meinst Du sicher eine von uMap erwartete Standard-Bezeichnung.
      Das sollte machbar sein. Ich erzeuge die tsv-Dateien mit einer Software PrepMaps und Krasna Maps aus einem bestehenden Datenbestand.

      Meine Popup Vorlage ist wie folgt definiert:

      #␣{Location}
      Nachkommen
      **Nachname,␣Datum**
      {Surname}
      ###␣␣{Persons}␣Personen,␣die␣an␣diesem␣Ort␣waren
      {LinktoGOV}
      {BIRT}
      {DEAT}
      
      Latitude␣und␣Longitude:␣{lat}␣und␣{lon}␣·␣{Gruppe}
      

      😄 😄 😄 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 🙂 ), dann sieht die Karte quasi schon so aus, wie deine.

      Otto Riehl wrote:

      Die Datei pmov-de.tsv importiere ich auf die Ebene Vorfahren. Vorhandene Dateien sollen überschrieben werden.

      Die Datei pmon-de.tsv importiere ich auf die Ebene Nachkommen. Vorhandene Dateien sollen überschrieben werden.

      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. 🙂

      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 🙂]


    • Re: [erledigt] uMap von ausgelagerter csv-Datei aktualisieren · Otto Riehl (Gast) · 11.09.2020 15:57 · [flux]

      tudacs wrote:

      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 😉.

      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.


    • Re: [erledigt] uMap von ausgelagerter csv-Datei aktualisieren · Otto Riehl (Gast) · 12.09.2020 07:59 · [flux]

      tudacs wrote:

      .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.

      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


    • Re: [erledigt] uMap von ausgelagerter csv-Datei aktualisieren · tudacs (Gast) · 12.09.2020 08:51 · [flux]

      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.

      Otto Riehl wrote:

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

      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 😉 ), 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.

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

      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.


    • Re: [erledigt] uMap von ausgelagerter csv-Datei aktualisieren · Otto Riehl (Gast) · 12.09.2020 10:22 · [flux]

      tudacs wrote:

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

      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.


    • Re: [erledigt] uMap von ausgelagerter csv-Datei aktualisieren · rotbarsch (Gast) · 12.01.2021 17:21 · [flux]

      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"