x

Flussnamen entfernen


  1. Flussnamen entfernen · Marc_2 (Gast) · 15.04.2019 19:38 · [flux]

    Hallo in die Runde,

    ich bin neu hier.

    Ich möchte gerne Karte rendern. Ich habe unter Linux den PostgreSQL Server installiert, ebenso openstreetmap-carto. Das ganze übersetzt und es läuft. Die ausgabe nutze ich mittels nik4.py.

    Nun zu meinem Anliegen. Ich möchte gerne den text der Flüsse, Kanäle etc entfernen. Wie stelle ich das an?

    Ich bedanke mich im voraus schonmal für die Unterstützung.


    • Re: Flussnamen entfernen · toc-rox (Gast) · 15.04.2019 20:26 · [flux]

      Marc_2 wrote:

      . Ich möchte gerne den text der Flüsse, Kanäle etc entfernen. Wie stelle ich das an?

      ... indem du den Kartenstil änderst und die Ausgabe der Namen unterdrückst.


    • Re: Flussnamen entfernen · Marc_2 (Gast) · 15.04.2019 20:29 · [flux]

      toc-rox wrote:

      Marc_2 wrote:

      . Ich möchte gerne den text der Flüsse, Kanäle etc entfernen. Wie stelle ich das an?

      ... indem du den Kartenstil änderst und die Ausgabe der Namen unterdrückst.

      Das war mein Plan. Nur was muss ich wo editieren ?

      Die parameter müssen doch in einer xml Datei oder änliches hinterlegt sein.


    • Re: Flussnamen entfernen · Nakaner (Gast) · 15.04.2019 21:46 · [flux]

      Hallo,

      irgendwann hast du in deinem Setup das GitHub-Projekt openstreetmap-carto geklont und mit dem JavaScript-Programm "Carto" die CartoCSS-Dateien in Mapnik-XML umgewandelt. Du kannst entweder die project.mml und danach erneut Carto aufrufen oder du bearbeitetst direkt die project.xml, die Nik4 einliest.

      In der MML-Datei, die eine YAML-Datei ist, sind die SQL-Abfragen der Layer der Karte definiert. Der Layer water-lines-text ist hier in der MML-Datei definiert. Die Regeln, was wie dargestellt wird, findest du in einer der *.mss-Dateien, in dem Fall water.mss. Entweder passt du die SQL-Abfrage an oder du löscht die Flüsse aus water.mss.

      In der XML-Datei (Doku) gibt es <Layer>- und <Style>-Elemente. Beliebig viele Style-Elemente können sich auf einen Layer beziehen (wenn keines es tut, wird nichts gerendert).

      Im Falle von Nik4 gibt es noch eine Abkürzung: Nik4 hat eine Option --layers, mit der du nur bestimmte Layer rendern kannst. Eine Layerliste, die du dieser Option direkt übergeben kannst, bekommst du mit

      grep␣Layer␣project.xml␣|␣grep␣-o␣'name="[^"]\+'␣|␣sed␣'s/name="//g'␣|␣tr␣'\n'␣','␣|␣sed␣'s/.$//g'
      

      Viele Grüße

      Michael


    • Re: Flussnamen entfernen · Marc_2 (Gast) · 15.04.2019 22:07 · [flux]

      Danke.

      Ich habe es mit "--hide-layers water-lines-text" direkt über nik4 hinbekommen.


    • Re: Flussnamen entfernen · Marc_2 (Gast) · 16.04.2019 18:14 · [flux]

      Eine Frage hätte ich noch. Ich habe mir mehrere Gebiete runtergeladen und eingespielt, so wie ich sehe scheint aber mit osm2pgsql immer nur das letzte Gebiet zur Verfügung gestellt.

      Ist das so korrekt oder übersehe ich etwas?

      Kann ich die Gebiete, dann immer wieder einspielen oder diese werden überschrieben oder muss ich die Datenbank löschen und wieder neuanlegen, wenn ich ein neues Gebiet haben möchte?


    • Re: Flussnamen entfernen · toc-rox (Gast) · 16.04.2019 20:25 · [flux]

      Was genau sind deine Ziele? Möglicherweise deckt ein Service die ab ... dann benötigst du gar kein eigenes System.


    • Re: Flussnamen entfernen · dieterdreist (Gast) · 16.04.2019 21:09 · [flux]

      Marc_2 wrote:

      Eine Frage hätte ich noch. Ich habe mir mehrere Gebiete runtergeladen und eingespielt, so wie ich sehe scheint aber mit osm2pgsql immer nur das letzte Gebiet zur Verfügung gestellt.

      Ist das so korrekt oder übersehe ich etwas?

      Kann ich die Gebiete, dann immer wieder einspielen oder diese werden überschrieben oder muss ich die Datenbank löschen und wieder neuanlegen, wenn ich ein neues Gebiet haben möchte?

      osm2pgsql kann entweder mit der create Option gestartet werden (bereits vorhandene daten gehen verloren) oder nicht (merge). Wie gut das Mergen funktioniert wenn die Extrakte sich überlagern weiß ich allerdings nicht.


    • Re: Flussnamen entfernen · dieterdreist (Gast) · 16.04.2019 21:11 · [flux]

      und du kannst natürlich mehrere Datenbanken parallel auf deinem Rechner haben, einfach den Namen ändern.


    • Re: Flussnamen entfernen · wambacher (Gast) · 16.04.2019 22:40 · [flux]

      Marc_2 wrote:

      Eine Frage hätte ich noch. Ich habe mir mehrere Gebiete runtergeladen und eingespielt, so wie ich sehe scheint aber mit osm2pgsql immer nur das letzte Gebiet zur Verfügung gestellt.

      osm2pgsql -h wrote:

      Common options:
      -a|--append Add the OSM file into the database without removing
      existing data.
      -c|--create Remove existing data from the database. This is the
      default if --append is not specified.

      Damit sollte das geklärt sein.

      Gruss
      walter


    • Re: Flussnamen entfernen · Nakaner (Gast) · 16.04.2019 23:33 · [flux]

      Hallo,

      dieterdreist wrote:

      osm2pgsql kann entweder mit der create Option gestartet werden (bereits vorhandene daten gehen verloren) oder nicht (merge). Wie gut das Mergen funktioniert wenn die Extrakte sich überlagern weiß ich allerdings nicht.

      Die Doku legt das nahe, aber die Praxis bzw. ein Blick in den Quellcode sagt, dass das eine Lösung für Geduldige ist.

      Osm2pgsql hat zwei Modi – den normalen und den Update-Modus. Beim normalen Modus werden die Tabellen, die gefüllt werden sollen, gelöscht und dann neu angelegt. Mit diesem Modi importiert man eine .osm.pbf-Datei. Für den Update-Modus muss man explizit "--append" ergänzen. Dieser kann zwar auch .osm.pbf-Dateien lesen, aber gedacht ist er, um Diff-Updates im .osc.gz-Format zu laden.

      Wenn du zwei Regionen in der Datenbank haben willst, ist es nicht empfehlenswert, die zweite mit --append zu importieren. --append lädt die Daten ganz anders und ist erheblich langsamer, da beim Schreiben jedes Objekts zuerst versucht wird, es aus der Tabelle zu löschen. Das sind unzählige Zugriffe, die trotz der Nutzung eines Index langsam sind. (Wenn du mit --drop importiert hast, werden die Indexe auf die osm_id- bzw. id-Spalte nicht angelegt)

      Es gibt zwei Lösungen:

      1. Mit dem Osmium-Tool und dessen Befehl "merge" die zwei zu importierenden Dateien vereinigen und erst dann mit Osm2pgsql importieren.
      2. Die zwei Gebiete mit dem extract-Befehl des Osmium-Tool aus einer Datei ausschneiden, die beide Gebiete umfasst.

      Viele Grüße

      Michael


    • Re: Flussnamen entfernen · Marc_2 (Gast) · 17.04.2019 00:27 · [flux]

      Mir gehts sogar um 3 Regionen. Ich habe mir mal das osmium-toll angeschaut und mal eine pbf Datei aller drei Gebiete erstellt. Werde diese morgen mal einspielen und schauen, ob es nicht zu erwünschten Nebeneffekten an den Grenzen kommt.

      und du kannst natürlich mehrere Datenbanken parallel auf deinem Rechner haben, einfach den Namen ändern.

      Ist wenn man genau die Grenze betrachtet natürlich etwas unpraktisch. Außerdem dachte ich, dass die Datenbank zwingend gis heissen müsste ? Wie kann ich dann 2 anlegen, wenn ich bei der Namenswahl eingeschränkt bin?

      Was genau sind deine Ziele? Möglicherweise deckt ein Service die ab ... dann benötigst du gar kein eigenes System.

      Nein, will ja mein eigenes System haben und nicht die Server belasten. Zur Not geht auch die Single Gebiets Modus, wenn auch unschön.


    • Re: Flussnamen entfernen · Nakaner (Gast) · 17.04.2019 10:49 · [flux]

      Der Datenbankname wird in der MML-Datei festgelegt. Such da mal nach "dbname". Er steht dann auch in der XML-Datei, dort aber bei jedem Layer.

      "gis" ist der Standardwert, den Osm2pgsql verwendet.


    • Re: Flussnamen entfernen · maxbe (Gast) · 18.04.2019 07:16 · [flux]

      Marc_2 wrote:

      Mir gehts sogar um 3 Regionen. Ich habe mir mal das osmium-toll angeschaut und mal eine pbf Datei aller drei Gebiete erstellt. Werde diese morgen mal einspielen und schauen, ob es nicht zu erwünschten Nebeneffekten an den Grenzen kommt.

      osmconvert funktioniert bei mir gut, ohne Effekte an den Grenzen.

      Marc_2 wrote:

      Ich möchte gerne den text der Flüsse, Kanäle etc entfernen.

      Falls Du eine Wegwerfdatenbank betreibst, die Du nur gelegentlich für diesen einen Zweck neu einspielst, kannst du auch einfach alle unerwünschten Namen in der Datenbank löschen. Ist eine Einbahnstraße, aber falls Du lieber SQL schreibst als Mapnik-Stile änderst...

      Grüße
      Max