x

Übersichtskarte erstellen ... und dann mit Inkscape nachbearbeiten


  1. Übersichtskarte erstellen ... und dann mit Inkscape nachbearbeiten · Harald Hartmann (Gast) · 25.03.2016 13:46 · [flux]

    Ich habe von meiner Gemeinde einen kleinen Aufrag bekommen, der mich aber nun doch schon zwei Tage beschäftigt, was diverse Gründe hat.

    Der Auftrag ist eigentlich recht trivial (bis es an die Umsetzung geht): Bundeslandgrenzen, Autobahnen, Bundesstraßen, Rennsteig, Städe (>20.000 EW), Schleusegrund

    Zuerst geht es an die Datenbeschaffung, die schonmal die ersten Probleme mit sich bringt, z.B. größere Teile von Bundesstraßen die nicht in einer Relation sind (z.B. B 85). Naja, aber mit folgenden zwei Kommandos habe ich zumindest erstmal einen brauchbaren Datenbestand:

    //␣bbox␣extrahieren
    osmconvert␣--drop-author␣-b=9.52,49.70,11.83,51.12␣germany-latest.osm.pbf␣-o=uebersicht.o5m
    
    //␣daten␣filtern
    osmfilter␣uebersicht.o5m␣--keep="place=town␣=city␣place=municipality␣highway=*␣AND␣ref=B\␣*"␣--keep-relations="route=hiking␣AND␣name=Rennsteig␣type=TMC␣AND␣name=A*␣route=road␣AND␣ref=B\␣*␣boundary=administrative␣AND␣admin_level=4"␣-o=uebersicht.osm
    

    und mit der maperitive rule (siehe unten) sieht es auf den ersten Blick gar nicht mal sooo schlecht aus:

    Aber jetzt kommt ja dann noch das Finishing für die Druckaufbereitung, z.B. sollen nebenläufige Bundesstrassenabschnitte von Autobahnen (z.B. B26 Bamberg-Schweinfurt, B19 Würzburz-Schweinfurt, B 303 die zwischen Ebersdorf und Kronach zweigleisig verläuft?!) der übersichtlichkeithalber entfernt werden.

    Ich habe also in maperitive einfach mal export-svg angeschmissen und den output mit Inkscape geöffnet, in der Annahme, dass ich dann Pfade oder Linien vorfinde, die ich dann ganz einfach bearbeiten/vereinfachen/kombinieren kann - so wie ich es schon jahrelang gewohnt bin ... und das Drama nahm seinen Lauf:


    Mehrere Ebenen selben Typs, Keine Pfade/Linien und keine Texte sondern Symbole (?!) (siehe Quelltext unten), Umwandlung von Objekt/Kontur in Pfade hilft nur teilweise, usw.

    HILFE!!!

    Wer kann mir hierbei weiterhelfen? Gerne auch TileMill oder QGis 2.x. Habe die Tage auch schon beides versucht, bin dort aber nur halb soweit gekommen, da ich aktuell leider kein funktionierendes PostGIS am Laufen habe, sondern z.B. in QGIS einfach die OSM-Daten in eine SpatialDB importiert habe (und dort die Relationen fehlen/nicht gehen?!).

    ZIEL: vereinfacht gesagt 5 Ebenen (Bundeslandgrenzen, Autobahn, Bundesstrasse, Rennsteig, Städe) in inkscape und pro Ebene (außer Städe) zusammenhängende Linien/Pfade

    PS: Nach den Tagen bin ich, wenn es um die Datenbeschaffung, das Drucken und der Druckaufbereitung mit OSM Daten geht doch ziemlich ernüchtert und ich mir schon überlege, wo ich überall Notes hinterlasse 🙁

    maperitive rule:

    features
    points,␣areas
    
    areas
    
    lines
    
    bundesstrasse␣:␣highway␣AND␣@isMatch␣(ref,␣"^B.*")
    bundesstrasse␣:␣relation[(route=road␣AND␣@isMatch␣(ref,␣"^B.*"))]
    autobahn␣:␣relation[type=TMC␣AND␣@isMatch␣(name,␣"^A.*")]
    rennsteig:␣relation[type=route␣AND␣name=Rennsteig]
    boundary␣:␣relation[boundary=administrative␣AND␣admin_level=4␣AND␣NOT␣natural=coastline]
    
    points
    point␣town␣:␣((place=town␣or␣place=city)␣AND␣population␣>=␣25000)
    point␣schleusegrund:␣place=municipality␣AND␣name="Schleusegrund"
    
    properties
    map-background-color	:␣#FFFFFF
    map-background-opacity	:␣1
    font-weight␣:␣bold
    font-family␣:␣Verdana
    text-max-width␣:␣7
    text-halo-width␣:␣25%
    text-halo-opacity␣:␣0.75
    text-align-horizontal␣:␣center
    text-align-vertical␣:␣center
    font-stretch␣:␣0.9
    map.rendering.lflp.min-buffer-space␣:␣5
    map.rendering.lflp.max-allowed-corner-angle␣:␣40
    
    rules
    
    target␣:␣autobahn
    define
    min-zoom␣:␣8
    line-style␣:␣solid
    line-join␣:␣round
    line-start-cap␣:␣round
    line-end-cap␣:␣round
    line-style␣:␣solid
    line-width␣:␣8
    line-color␣:␣#006eb4
    draw␣:␣line
    
    target␣:␣rennsteig
    define
    min-zoom␣:␣8
    line-color␣:␣#077100
    line-opacity␣:␣1
    line-width␣:␣6
    draw␣:␣line
    
    target␣:␣bundesstrasse
    define
    line-style␣:␣solid
    line-join␣:␣round
    line-start-cap␣:␣round
    line-end-cap␣:␣round
    line-style␣:␣solid
    line-color␣:␣#FFD300
    line-opacity␣:␣1
    line-width␣:␣6
    draw␣:␣line
    
    target␣:␣point*
    define
    font-weight␣:␣bold
    font-size␣:␣10
    define
    shape␣:␣circle
    shape-size␣:␣8
    fill-color␣:␣red
    line-color␣:␣red
    line-width␣:␣1
    if␣:␣*schleusegrund
    define
    shape-size␣:␣15
    define
    font-size␣:␣15
    draw␣:␣shape
    draw␣:␣text
    
    target␣:␣boundary
    define
    line-width␣:␣2
    line-color␣:␣#954000
    line-opacity␣:␣1
    line-style␣:␣dashdot
    draw␣:␣line
    

    output.svg

    <?xml␣version="1.0"␣encoding="utf-8"?>
    <svg␣xmlns:xlink="http://www.w3.org/1999/xlink"␣version="1.1"␣xml:space="preserve"␣xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"␣x="0"␣y="0"␣width="433"␣height="433"␣clip-path="url(#MapClipRectangle)"␣style="overflow:hidden;text-rendering:optimizeLegibility"␣xmlns="http://www.w3.org/2000/svg">
    <title>Map␣Generated␣Using␣Maperitive␣(http://maperitive.net)</title>
    <desc>Map␣Generator:␣Maperitive␣v2.3.35␣by␣Igor␣Brejc
    Time:␣03/25/2016␣13:35:20
    </desc>
    <defs>
    <clipPath␣clipPathUnits="userSpaceOnUse"␣id="MapClipRectangle">
    <rect␣x="0"␣y="0"␣width="433"␣height="433"␣/>
    </clipPath>
    <symbol␣id="1"␣style="fill:none">
    <path␣d="M220.46␣139.02␣l0.38␣-1.18␣0.97␣-0.89␣1.26␣-0.74␣1.09␣-0.6␣1.57␣-1.14␣2.51␣-2.42␣1.04␣-0.84␣1.94␣-1.35␣2.65␣-1.82␣1.31␣-0.83␣1.44␣-0.77"␣/>
    <path␣d="M236.61␣126.4␣l-1.48␣0.77␣-1.31␣0.82␣-2.66␣1.82␣-1.2␣0.82␣-1.47␣1.08␣-2.82␣2.71␣-1.07␣0.82␣-1.58␣0.91␣-1.25␣0.72␣-1␣0.95␣-0.38␣1.21"␣/>
    </symbol>
    <symbol␣id="3"␣style="fill:none">
    <path␣d="M141.99␣40.11␣l-0.05␣-0.12"␣/>
    <path␣d="M392.03␣76.95␣l-1.37␣0.78"␣/>
    <path␣d="M390.7␣77.77␣l1.09␣-0.71␣0.25␣-0.06"␣/>
    <path␣d="M63.41␣406.67␣l0.02␣-0.16"␣/>
    </symbol>
    <symbol␣id="4"␣style="fill:none">
    <path␣d="M141.99␣40.11␣l-0.05␣-0.12"␣/>
    <path␣d="M63.41␣406.67␣l0.02␣-0.16"␣/>
    <path␣d="M52.92␣346.93␣l-0.56␣1.54"␣/>
    </symbol>
    ...
    <symbol␣id="symbol_shape_1"␣style="fill:#FF0000;stroke-linejoin:round;stroke:#FF0000">
    <circle␣cx="0"␣cy="0"␣r="15"␣/>
    </symbol>
    <symbol␣id="symbol_shape_2"␣style="fill:#FF0000;stroke-linejoin:round;stroke:#FF0000">
    <circle␣cx="0"␣cy="0"␣r="8"␣/>
    </symbol>
    <symbol␣id="symbol_text_3">
    <text␣transform="translate(200.92,184.27)␣scale(0.9,1)">Schleusegrund</text>
    <text␣transform="translate(200.92,184.27)␣scale(0.9,1)">Schleusegrund</text>
    </symbol>
    <symbol␣id="symbol_text_4">
    <text␣transform="translate(209.96,161.79)␣scale(0.9,1)">Suhl</text>
    <text␣transform="translate(209.96,161.79)␣scale(0.9,1)">Suhl</text>
    </symbol>
    ...
    </defs>
    <g␣id="Map_background"␣style="fill:#F1EEE8;stroke:#000000"␣inkscape:groupmode="layer"␣inkscape:label="Map␣background">
    <g␣id="map_background"␣inkscape:groupmode="layer"␣inkscape:label="map␣background">
    <rect␣x="0"␣y="0"␣width="433"␣height="433"␣id="Map_Background_Fill"␣style="stroke:none"␣/>
    </g>
    </g>
    <g␣id="Line_artwork"␣style="stroke-linejoin:round"␣inkscape:groupmode="layer"␣inkscape:label="Line␣artwork">
    <g␣id="autobahn"␣style="stroke-linecap:round;stroke:#006EB4;stroke-width:8"␣inkscape:groupmode="layer"␣inkscape:label="autobahn">
    <use␣xlink:href="#1"␣/>
    </g>
    <g␣id="bundesstrasse"␣style="stroke-linecap:round;stroke:#FFD300;stroke-width:6"␣inkscape:groupmode="layer"␣inkscape:label="bundesstrasse">
    <use␣xlink:href="#3"␣/>
    </g>
    <g␣id="bundesstrasse1"␣style="stroke-linecap:round;stroke:#FFD300;stroke-width:6"␣inkscape:groupmode="layer"␣inkscape:label="bundesstrasse">
    <use␣xlink:href="#4"␣/>
    </g>
    <g␣id="autobahn1"␣style="stroke-linecap:round;stroke:#006EB4;stroke-width:8"␣inkscape:groupmode="layer"␣inkscape:label="autobahn">
    <use␣xlink:href="#5"␣/>
    </g>
    <g␣id="boundary"␣style="stroke-dasharray:6,2,2,2;stroke:#954000;stroke-width:2"␣inkscape:groupmode="layer"␣inkscape:label="boundary">
    <use␣xlink:href="#6"␣/>
    </g>
    <g␣id="bundesstrasse11"␣style="stroke-linecap:round;stroke:#FFD300;stroke-width:6"␣inkscape:groupmode="layer"␣inkscape:label="bundesstrasse">
    <use␣xlink:href="#7"␣/>
    </g>
    <g␣id="bundesstrasse111"␣style="stroke-linecap:round;stroke:#FFD300;stroke-width:6"␣inkscape:groupmode="layer"␣inkscape:label="bundesstrasse">
    <use␣xlink:href="#8"␣/>
    </g>
    <g␣id="rennsteig"␣style="stroke:#077100;stroke-width:6"␣inkscape:groupmode="layer"␣inkscape:label="rennsteig">
    <use␣xlink:href="#9"␣/>
    </g>
    <g␣id="autobahn11"␣style="stroke-linecap:round;stroke:#006EB4;stroke-width:8"␣inkscape:groupmode="layer"␣inkscape:label="autobahn">
    <use␣xlink:href="#10"␣/>
    </g>
    <g␣id="bundesstrasse1111"␣style="stroke-linecap:round;stroke:#FFD300;stroke-width:6"␣inkscape:groupmode="layer"␣inkscape:label="bundesstrasse">
    <use␣xlink:href="#11"␣/>
    </g>
    <g␣id="bundesstrasse11111"␣style="stroke-linecap:round;stroke:#FFD300;stroke-width:6"␣inkscape:groupmode="layer"␣inkscape:label="bundesstrasse">
    <use␣xlink:href="#12"␣/>
    </g>
    <g␣id="rennsteig1"␣style="stroke:#077100;stroke-width:6"␣inkscape:groupmode="layer"␣inkscape:label="rennsteig">
    <use␣xlink:href="#13"␣/>
    </g>
    <g␣id="autobahn111"␣style="stroke-linecap:round;stroke:#006EB4;stroke-width:8"␣inkscape:groupmode="layer"␣inkscape:label="autobahn">
    <use␣xlink:href="#14"␣/>
    </g>
    <g␣id="bundesstrasse111111"␣style="stroke-linecap:round;stroke:#FFD300;stroke-width:6"␣inkscape:groupmode="layer"␣inkscape:label="bundesstrasse">
    <use␣xlink:href="#15"␣/>
    </g>
    <g␣id="bundesstrasse1111111"␣style="stroke-linecap:round;stroke:#FFD300;stroke-width:6"␣inkscape:groupmode="layer"␣inkscape:label="bundesstrasse">
    <use␣xlink:href="#16"␣/>
    </g>
    <g␣id="autobahn1111"␣style="stroke-linecap:round;stroke:#006EB4;stroke-width:8"␣inkscape:groupmode="layer"␣inkscape:label="autobahn">
    <use␣xlink:href="#17"␣/>
    </g>
    </g>
    <g␣id="Symbols__icons"␣style="fill:#FF0000;stroke-linejoin:round;stroke:#FF0000"␣inkscape:groupmode="layer"␣inkscape:label="Symbols␣&amp;␣icons">
    <g␣id="point_schleusegrund__shape"␣inkscape:groupmode="layer"␣inkscape:label="point␣schleusegrund␣(shape)">
    <use␣transform="translate(256.88,176.85)"␣xlink:href="#symbol_shape_1"␣/>
    </g>
    <g␣id="point_town__shape"␣inkscape:groupmode="layer"␣inkscape:label="point␣town␣(shape)">
    ...
    </g>
    </g>
    <g␣id="Labels"␣style="stroke:#000000;font-family:Verdana;font-weight:bold"␣inkscape:groupmode="layer"␣inkscape:label="Labels">
    <g␣id="point_schleusegrund__text"␣style="font-size:15px"␣inkscape:groupmode="layer"␣inkscape:label="point␣schleusegrund␣(text)">
    <g␣style="stroke-width:3.75;stroke:#FFFFFF;fill:none;stroke-opacity:0.75">
    <use␣xlink:href="#symbol_text_3"␣/>
    </g>
    <g␣style="fill:#000000;stroke:none;fill-opacity:1">
    <use␣xlink:href="#symbol_text_3"␣/>
    </g>
    </g>
    <g␣id="point_town__text"␣style="font-size:10px"␣inkscape:groupmode="layer"␣inkscape:label="point␣town␣(text)">
    <g␣style="stroke-width:2.5;stroke:#FFFFFF;fill:none;stroke-opacity:0.75">
    <use␣xlink:href="#symbol_text_4"␣/>
    </g>
    <g␣style="fill:#000000;stroke:none;fill-opacity:1">
    <use␣xlink:href="#symbol_text_4"␣/>
    </g>
    ...
    </g>
    </g>
    ...
    </svg>
    

    • Re: Übersichtskarte erstellen ... und dann mit Inkscape nachbearbeiten · toc-rox (Gast) · 25.03.2016 15:43 · [flux]

      Möglicherweise ist es günstiger zunächst zwei Karten zu erzeugen. Eine Übersichtskarte für das Umland und eine Detailkarte deiner Gemeinde. Wenn du beides hast, legst du die Detailkarte über die Übersichtskarte.

      Gruß Klaus


    • Re: Übersichtskarte erstellen ... und dann mit Inkscape nachbearbeiten · Harald Hartmann (Gast) · 25.03.2016 16:17 · [flux]

      ! Sorry, verstehe dich nicht, oder ich habe mich oben nicht eindeutig ausgedrückt: Mehr als in dem output oben (Übersichtskarte) soll es nicht werden und wäre es fürs web, würde ich das vermutlich genauso als export-bmp veröffentlichen. Mir geht es definitiv um das Finishing bzw. Nachbearbeitung in inkscape inkl. Erstellung von PDF oder PS, da es in den Druck gehen soll.

      Eine Detailkarte der Gemeinde spielt aktuell keine Rolle.


    • Re: Übersichtskarte erstellen ... und dann mit Inkscape nachbearbeiten · Eberth (Gast) · 25.03.2016 19:45 · [flux]

      Da ich grad wenig Zeit habe, nur mal auf die Schnelle:

      Du kannst in Inkscape mit "Bearbeiten -> Klonen -> Klonverbindung auftrennen" aus den markierten "ways" Linien machen. Danach musst Du noch die Füllung löschen (X). Jetzt kannst Du einzelne Linien anwählen und verändern – ggf. vorher noch "Gruppierung aufheben".

      Leider erstellt Maperitive mehrere gleichnamige Ebenen, in denen unterschiedliche Abschnitte derselben "ways" sind. Das macht die Sache schnell unübersichtlich. Dafür habe ich auch noch keine praktikable Lösung gefunden.

      Thomas


    • Re: Übersichtskarte erstellen ... und dann mit Inkscape nachbearbeiten · wambacher (Gast) · 25.03.2016 21:23 · [flux]

      Harald Hartmann wrote:

      HILFE!!!

      Wer kann mir hierbei weiterhelfen? Gerne auch TileMill oder QGis 2.x. Habe die Tage auch schon beides versucht, bin dort aber nur halb soweit gekommen, da ich aktuell leider kein funktionierendes PostGIS am Laufen habe, sondern z.B. in QGIS einfach die OSM-Daten in eine SpatialDB importiert habe (und dort die Relationen fehlen/nicht gehen?!).

      Sorry, ein hartes Statement:

      MMn nach machst du 2 Kardinalfehler. Du verzichtest auf eine PostGIS-Datenbank, die dir relativ leicht spatiale Abfragen ermöglichst, und als zweites versuchst du die dadurch auftretenden Mängel durch "Rumpfuschen" mittels eines graphischen Editors zu retuschieren.

      Ich hab deine Anfrage mittels PostGIS und in diesem Falle OpenJump visualisiert und meine, dass ich relativ nah dran bin.

      siehe:

      Was noch fehlt, ist die Unterdrückung der B 303 und Verwendung der Pseudo Mercator Projektion SRS:3587. Ersteres war mir zu mühsam und das Ändern der Projektion hab ich bei OpenJump noch nie gemacht. Qgis geht natürlich auch, zickt aber derzeit bei mir rum.

      Der "Trick" ist, die unerwünschten Straßen bereits bei der Query zu filtern.

      select␣way,ref
      from␣planet_osm_roads
      where␣tags␣?␣'highway'
      and␣ref␣like␣'B␣%'␣and␣ref␣not␣in␣('B␣19','B␣26');
      

      Bei der B303 muss man eventuell noch eine spatiale Abfrage verwenden, die nur bestimmte Teilstücke filtert.

      Gruss
      walter

      download SVG: https://osm.wno-edv-service.de/images/o … grundX.svg


    • Re: Übersichtskarte erstellen ... und dann mit Inkscape nachbearbeiten · Harald Hartmann (Gast) · 25.03.2016 21:59 · [flux]

      wambacher wrote:

      Sorry, ein hartes Statement

      So lange das konstruktiv ist, habe ich da nichts dagegen, auch nicht gegen das Wort "rumpfuschen" 😉

      wambacher wrote:

      Ich hab deine Anfrage mittels PostGIS und in diesem Falle OpenJump visualisiert und meine, dass ich relativ nah dran bin.

      Okay, dann werde ich mir mal OpenJump anschauen (und nebenbei mal wieder PostGIS aufsetzen), ist mir bisher noch kein einziges mal untergekommen ... bei keiner Suche 🤔

      wambacher wrote:

      Der "Trick" ist, die unerwünschten Straßen bereits bei der Query zu filtern. ... Bei der B303 muss man eventuell noch eine spatiale Abfrage verwenden, die nur bestimmte Teilstücke filtert.

      Tja, sooo einfach ist das ja nicht, da auch bei der B26 und B19 nur autobahnbegleitende Stücke entfernt werden sollen, d.h. ab Karlstadt Richtung Frankfurt soll die B26 auftauchen, genauso die B19 von Meiningen nach Eisenach. Anfangs hatte ich natürlich bei osmfilter genau diese ref!=B\ 26 Filterung drin, wollte es im obigen Codeschnipsel so einfach wie möglich halten.
      Ich hatte zunächst auch den Positivfall als ref=B\ 88 or ref=B\ 303 usw probiert, aber dann fehlten mir auch wieder Stücke, weil nicht richtig getaggt (Datenqualität) 🤔

      Und das alles mit Abfragen schon einzugrenzen mag vielleicht möglich sein .. aber wenn der SVG Output einigermaßen passt, bin ich mit rumpfuschen in Inkscape definitiv schneller (Pfad an den Stellen auftrennen und löschen) ... da fällt mir ein, das ich ja auch das OSM in JOSM öffnen und schon soweit bearbeiten (überflüssige Teilabschnitte löschen und die restlichen Abschnitte mergen) könnte 😄

      wambacher wrote:

      Wollte das erzeugte SVG-File hier posten, aber Joomla! weigert sich, das SVG zu akzeptieren ("Possible IE XSS Attack found."). Wenn du es haben will, schick mir ne Mail.

      Meine Emailadresse hast du, also Danke 😉


    • Re: Übersichtskarte erstellen ... und dann mit Inkscape nachbearbeiten · Harald Hartmann (Gast) · 25.03.2016 22:03 · [flux]

      Eberth wrote:

      Du kannst in Inkscape mit "Bearbeiten -> Klonen -> Klonverbindung auftrennen" aus den markierten "ways" Linien machen. Danach musst Du noch die Füllung löschen (X). Jetzt kannst Du einzelne Linien anwählen und verändern – ggf. vorher noch "Gruppierung aufheben".

      Leider erstellt Maperitive mehrere gleichnamige Ebenen, in denen unterschiedliche Abschnitte derselben "ways" sind. Das macht die Sache schnell unübersichtlich. Dafür habe ich auch noch keine praktikable Lösung gefunden.

      Danke für den Tipp, funktioniert durchaus, ist aber immer noch richtig aufwendig ... auch nachdem ich die Inhalte gleichnamiger Ebenen in die oberste dieser Ebenen verschoben und Pfade kombiniert habe... naja ma gucken.


    • Re: Übersichtskarte erstellen ... und dann mit Inkscape nachbearbeiten · wambacher (Gast) · 25.03.2016 22:10 · [flux]

      Harald Hartmann wrote:

      Okay, dann werde ich mir mal OpenJump anschauen (und nebenbei mal wieder PostGIS aufsetzen), ist mir bisher noch kein einziges mal untergekommen ... bei keiner Suche 🤔

      mach es ruhig mit QGIS. Bis du in OJ drin bist, ist Ostern rum 😉 Bei mir zickt QGIS, weil ich den ganzen Planeten online habe und manche Queries extrem lange dauern. OJ ist da einfacher gestrickt und performanter.

      wambacher wrote:

      Der "Trick" ist, die unerwünschten Straßen bereits bei der Query zu filtern. ... Bei der B303 muss man eventuell noch eine spatiale Abfrage verwenden, die nur bestimmte Teilstücke filtert.

      Tja, sooo einfach ist das ja nicht, da auch bei der B26 und B19 nur autobahnbegleitende Stücke entfernt werden sollen, d.h. ab Karlstadt Richtung Frankfurt soll die B26 auftauchen, genauso die B19 von Meiningen nach Eisenach. Anfangs hatte ich natürlich bei osmfilter genau diese ref!=B\ 26 Filterung drin, wollte es im obigen Codeschnipsel so einfach wie möglich halten.
      Ich hatte zunächst auch den Positivfall als ref=B\ 88 or ref=B\ 303 usw probiert, aber dann fehlten mir auch wieder Stücke, weil nicht richtig getaggt (Datenqualität) :

      Deswegen hatte ich auch bei der B 303 geschrieben, dass man die unnötigen Teilstücke mit einen spatialen Query rausfiltern sollte: ("Die B303-Teilstücke, die in dieser Bbox sind, bitte nicht importieren")

      Und das alles mit Abfragen schon einzugrenzen mag vielleicht möglich sein .. aber wenn der SVG Output einigermaßen passt, bin ich mit rumpfuschen in Inkscape definitiv schneller (Pfad an den Stellen auftrennen und löschen) ... da fällt mir ein, das ich ja auch das OSM in JOSM öffnen und schon soweit bearbeiten könnte 😄

      Jo, egal wie, Haupsache diese Teilstücke sind nicht in den Rohdaten drin, die du weiter verarbeiten willst.

      wambacher wrote:

      Wollte das erzeugte SVG-File hier posten, aber Joomla! weigert sich, das SVG zu akzeptieren ("Possible IE XSS Attack found."). Wenn du es haben will, schick mir ne Mail.

      Ist inzwischen online: https://osm.wno-edv-service.de/images/o … grundX.svg

      Gruss
      walter


    • Re: Übersichtskarte erstellen ... und dann mit Inkscape nachbearbeiten · Harald Hartmann (Gast) · 26.03.2016 11:27 · [flux]

      Ach und noch ein Grund warum ich so auf das Thema "Nachbearbeitung" rumreite: Der Druckbereich ist 110x110 mit einem Maßstab von ungefähr 1:1.500.000 und da macht es nicht wirklich Sinn die Detailtreue von OSM herzunehmen, d.h. ich will das nachträglich ja etwas "schematischer" darstellen, in dem ich dann in inkscape einfach die "Pfade vereinfache".

      Habe mal angefangen in JOSM zu bereinigen, da gehts schon los, dass ich die Autobahnen ja erstmal zu "einem" Weg zusammen fassen muss, Autobahnen aber ja baulich getrennt also zwei Ways gemappt sind usw.


    • Re: Übersichtskarte erstellen ... und dann mit Inkscape nachbearbeiten · wambacher (Gast) · 26.03.2016 12:29 · [flux]

      Harald Hartmann wrote:

      Ach und noch ein Grund warum ich so auf das Thema "Nachbearbeitung" rumreite: Der Druckbereich ist 110x110 mit einem Maßstab von ungefähr 1:1.500.000 und da macht es nicht wirklich Sinn die Detailtreue von OSM herzunehmen, d.h. ich will das nachträglich ja etwas "schematischer" darstellen, in dem ich dann in inkscape einfach die "Pfade vereinfache".

      PostGIS: ST_Simplify() oder besser noch ST_SimplifyPreserveTopology():

      Habe mal angefangen in JOSM zu bereinigen, da gehts schon los, dass ich die Autobahnen ja erstmal zu "einem" Weg zusammen fassen muss, Autobahnen aber ja baulich getrennt also zwei Ways gemappt sind usw.

      Da muss ich passen. Zudem, weil mich das nicht stören würde.

      Gruss
      walter

      Ich nehme mal an, du hast dafür noch kein PostGIS aufgesetzt, gell?


    • Re: Übersichtskarte erstellen ... und dann mit Inkscape nachbearbeiten · Harald Hartmann (Gast) · 26.03.2016 12:51 · [flux]

      Ich hatte mal vor über einem Jahr PostGIS aufgesetzt ... aber irgendwie habe ich irgendwannmal wie auch immer mein postgresql zerschrottet (angeblich ist es laut apt installiert, wenn ich postgresql starten will kommt keine Fehlermeldung auch nicht in /var/log... aber der Port 5432 ist trotzdem nicht offen)

      Autobahnen habe ich nun einfach bei osmfilter mit "AND TMC:cid_58:tabcd_1:Direction=positive" nur noch einspurig vor mir liegen 🙂


    • Re: Übersichtskarte erstellen ... und dann mit Inkscape nachbearbeiten · toc-rox (Gast) · 26.03.2016 17:05 · [flux]

      Harald Hartmann wrote:

      ... Der Druckbereich ist 110x110 mit einem Maßstab von ungefähr 1:1.500.000 und da macht es nicht wirklich Sinn die Detailtreue von OSM herzunehmen, d.h. ich will das nachträglich ja etwas "schematischer" darstellen, in dem ich dann in inkscape einfach die "Pfade vereinfache". ...

      Das entspräche auf der OSM-Karte der Zoomstufe 8.5 und deckt eine Fläche von 1650*1650 km ab. Hmm?

      Gruß Klaus


    • Re: Übersichtskarte erstellen ... und dann mit Inkscape nachbearbeiten · Harald Hartmann (Gast) · 27.03.2016 11:44 · [flux]

      Wie kommst du da drauf? Also ich bin ja folgender Meinung:
      Maßstab 1:1.500.000 = 1cm(Kartenstrecke):15km(Naturstrecke) = 110mm(Druckmaß!) = 165km
      Bist du vielleicht irgendwo um eine Dezimalstelle verrutscht?


    • Re: Übersichtskarte erstellen ... und dann mit Inkscape nachbearbeiten · Harald Hartmann (Gast) · 29.03.2016 14:53 · [flux]

      wambacher wrote:

      PostGIS: ST_Simplify() oder besser noch ST_SimplifyPreserveTopology():
      ...
      Ich nehme mal an, du hast dafür noch kein PostGIS aufgesetzt, gell?

      So, habe meine postgresql wieder am Laufen, eine neue DB "uebersicht" erstellt, dieser die PostGIS Extensions verpasst und meine uebersicht.osm per osm2pgsql importiert.

      Wenn ich jetzt in QGIS die planet_osm_roads als Layer reinziehe, erscheinen alle Straßen. Dann gehe ich in den Layer und mache z.B. einen Filter "highway"="motorway", nun sehe ich alle Autobahnen.

      Dann wollte ich auf Vektor > GeometrieWerkzeuge > Geometrie vereinfachen und habe da ein bisschen rumgespielt, aber da tut sich nichts vereinfachen ... also vielleicht vereinfacht sich da schon was, aber es wird nicht "schemenhafter"

      Und wie mache ich das mit ST_Simplify()? Ich habe bisher noch nicht wirklich rausgefunden, wie man direkt in QGIS z.B.

      SELECT␣st_simplify(way,10)␣from␣planet_osm_roads␣where␣highway='motorway'
      

      eintragen kann. Ich habe dafür mit pgadmin mal eine View ("einfach") erzeugt, wenn ich die aber als Layer reinziehe, dann kommt

      layer␣ist␣ungültig:␣Der␣Layer␣dbname='uebersicht'␣host=localhost␣port=5432␣sslmode=disable␣key='st_simplify'␣srid=900913␣type=LineString␣table="public"."einfach"␣(st_simplify)␣sql=␣ist␣ungültig␣und␣kann␣der␣Karte␣nicht␣hinzugefügt␣werden
      

    • Re: Übersichtskarte erstellen ... und dann mit Inkscape nachbearbeiten · Harald Hartmann (Gast) · 29.03.2016 15:32 · [flux]

      Nachtrag: Ich habe noch einen weiteren Test gemacht: A9, A70, A73 in JOSM alle Ways zu EINEM gemergt, A4 und A7 habe ich gelassen wie sie waren. Wenn ich jetzt in QGIS die Daten lade und dort per SVG exportiere, in Inkscape reinlade und dann versuchte die "Pfade zu vereinfachen", dann geschieht dies lediglich für die Autobahnen, die zu einem einzigen Ways gemerged wurden, aber nicht für die A4/A7 (obwohl die die Pfade in Inkscape "kombiniert" habe).

      D.h. bekommt man es in QGIS auch irgendwie hin, dass man ways zu einem einzigen merged, so, dass man z.B. für eine komplette Autobahn nur eine einzige komplette Linie hat?


    • Re: Übersichtskarte erstellen ... und dann mit Inkscape nachbearbeiten · stephan75 (Gast) · 29.03.2016 16:56 · [flux]

      Ich empfehle für einen (Neu-)Einstieg in QGIS, zu dem man KEINE extra Datenbank benötigt, folgendes:

      Daten reinladen in QGIS mittels QuickOSM-Erweiterung ... da kannst du OverpassAPI/Turbo-Abfragen reinmachen und dann gezielt Daten abrufen, welche dann auch in einzelne QGIS-Layer reingehen.

      Intern macht QGIS dann glaub ich Shapefiles draus.
      Ob Relationen wie benötigt beibehalten werden, weiß ich nicht.

      Dann Bearbeitung der Daten und eigenes Map-Styling laut den (schon älteren, aber sehr brauchbaren) Videos laut
      https://vimeo.com/mangomap/videos ausprobieren.

      Einfach die Tutorials Teil 1-5 anschauen und nachvollziehen.

      Und dann über den DruckManager in QGIS einen Export.


    • Re: Übersichtskarte erstellen ... und dann mit Inkscape nachbearbeiten · wambacher (Gast) · 29.03.2016 18:38 · [flux]

      Harald Hartmann wrote:

      Und wie mache ich das mit ST_Simplify()? Ich habe bisher noch nicht wirklich rausgefunden, wie man direkt in QGIS z.B.

      SELECT␣st_simplify(way,10)␣from␣planet_osm_roads␣where␣highway='motorway'
      

      eintragen kann.
      indem Ich habe dafür mit pgadmin mal eine View ("einfach") erzeugt, wenn ich die aber als Layer reinziehe, dann kommt

      layer␣ist␣ungültig:␣Der␣Layer␣dbname='uebersicht'␣host=localhost␣port=5432␣sslmode=disable␣key='st_simplify'␣srid=900913␣type=LineString␣table="public"."einfach"␣(st_simplify)␣sql=␣ist␣ungültig␣und␣kann␣der␣Karte␣nicht␣hinzugefügt␣werden
      

      Die Lösung besteht darin, dass man die Geometrie des Ways im View angibt. Beispiel:

      CREATE␣VIEW␣v_simpleways␣AS
      SELECT␣ST_Simplify(way,10)::geometry(POLYGON,4326)␣As␣Sway
      FROM␣planet_osm_polygon;
      

      ist wohl mit der 2.0 von PostGIS reingekommen.


    • Re: Übersichtskarte erstellen ... und dann mit Inkscape nachbearbeiten · Harald Hartmann (Gast) · 29.03.2016 19:30 · [flux]

      Hat leider nicht geholfen...ja, ich habe statt Polygon LineString verwendet, da ich ja die roads nehme und habe mich an den Eigenschaften des von osm2pgsql importierten planet_osm_roads genommen...

      Layer␣ist␣ungültig:␣Der␣Layer␣dbname='uebersicht'␣host=localhost␣port=5432␣sslmode=disable␣key='sway'␣srid=4326␣type=LineString␣table="public"."einfach"␣(sway)␣sql=␣ist␣ungültig␣und␣kann␣der␣Karte␣nicht␣hinzugefügt␣werden
      

    • Re: Übersichtskarte erstellen ... und dann mit Inkscape nachbearbeiten · wambacher (Gast) · 29.03.2016 19:39 · [flux]

      Harald Hartmann wrote:

      Hat leider nicht geholfen...ja, ich habe statt Polygon LineString verwendet, da ich ja die roads nehme und habe mich an den Eigenschaften des von osm2pgsql importierten planet_osm_roads genommen...

      Layer␣ist␣ungültig:␣Der␣Layer␣dbname='uebersicht'␣host=localhost␣port=5432␣sslmode=disable␣key='sway'␣srid=4326␣type=LineString␣table="public"."einfach"␣(sway)␣sql=␣ist␣ungültig␣und␣kann␣der␣Karte␣nicht␣hinzugefügt␣werden
      

      a) das hat zu funktionieren
      b) das funzt
      c) ohne wirklich konkrete Infos kann auch ich nix machen.

      Gruss
      walter


    • Re: Übersichtskarte erstellen ... und dann mit Inkscape nachbearbeiten · Harald Hartmann (Gast) · 29.03.2016 19:42 · [flux]

      stephan75 wrote:

      ... Daten reinladen in QGIS mittels QuickOSM-Erweiterung ... da kannst du OverpassAPI/Turbo-Abfragen reinmachen und dann gezielt Daten abrufen, welche dann auch in einzelne QGIS-Layer reingehen. ...
      Dann Bearbeitung der Daten und eigenes Map-Styling laut den (schon älteren, aber sehr brauchbaren) Videos laut
      https://vimeo.com/mangomap/videos ausprobieren.

      Einfach die Tutorials Teil 1-5 anschauen und nachvollziehen.

      Und dann über den DruckManager in QGIS einen Export.

      Danke für die Videos ... die leider mein eigentlichen Problem auch nicht beheben.

      Ich habe mir mal kurz die Zeit genommen und einfach mal per QuickOSM die A4 in Thüringen als Layer geladen und per DruckManager als SVG exportiert ... auch diese (Einzel-)"Pfade" kann ich in Inkscape (auch nachdem ich sie "kombiniert" habe) leider nicht "vereinfachen" (also schematisieren.

      PS: Letztendlich geht es um das hier, ich werde mich da mal ein bisschen einlesen.

      PPS: Aber schon bei den ersten Posts habe ich so das Gefühl, dass ich mit meiner Methode, in JOSM aus den vielen Einzelways EINEN Gesamtway zu machen, diesen per Maperitive dann als svg exportieren lasse und in Inkscape dann mehrmals hintereinander "Pfade vereinfachen" drücke, bis mir das Ergebnis gefällt.


    • Re: Übersichtskarte erstellen ... und dann mit Inkscape nachbearbeiten · wambacher (Gast) · 29.03.2016 19:45 · [flux]

      zu den gestückelten ways: Ja, st_simplify() macht das natürlich pro Way. Die könnte man in PostGIS natürlich irgendwie zusammenfassen (st_union() ?), aber da komm ich etwas in's Schwimmen. Mit PostGis Topologies geht das aber das wäre ein Bagger im Sandkasten.


    • Re: Übersichtskarte erstellen ... und dann mit Inkscape nachbearbeiten · Harald Hartmann (Gast) · 29.03.2016 19:46 · [flux]

      Hier mal 5 Stufen nach "Pfade vereinfachen". Am oberen Rand die A4 (Bad Hersfeld>Erfurt) und am rechten Rand die A9 (Nürnberg>Hof), beide habe ich NICHT als einen Way (highway=motorway) in JOSM gemerged, die anderen A (7,70,71,73,3) dafür schon.






    • Re: Übersichtskarte erstellen ... und dann mit Inkscape nachbearbeiten · wambacher (Gast) · 29.03.2016 19:56 · [flux]

      Harald Hartmann wrote:

      Hier mal 5 Stufen nach "Pfade vereinfachen". Am oberen Rand die A4 (Bad Hersfeld>Erfurt) und am rechten Rand die A9 (Nürnberg>Hof), beide habe ich NICHT als einen Way (highway=motorway) in JOSM gemerged, die anderen A (7,70,71,73,3) dafür schon.

      Wie hast du denn vereinfacht? Josm oder PostGIS?

      Hübsch, obwohl ich fast keine Unterschiede der 5 Versionen erkennen kann. Und wenn du mit dem Ergebnis zufrieden bist, mach das mit der A4 und A9 halt genau so.

      gruss
      walter

      ps: was ist denn jetzt mit dem View? Funzt oder wird nicht benötigt?


    • Re: Übersichtskarte erstellen ... und dann mit Inkscape nachbearbeiten · Harald Hartmann (Gast) · 30.03.2016 17:09 · [flux]

      ich habs dir mal übereinandergelegt: blau im Hintergrund ist mit inkscape per "Pfade vereinfachen" geglättet, gold im Vordergrund sind die original OSM Ways.

      ... und ich denke mal, das sieht man schon einen Unterschied.

      So, in inkscape funktioniert das aber auch nur, weil ich vorher in JOSM die angesprochenen Autobahnabschnitte durch die Relation ausgewählt, dann alle Tags außer highway=motorway und ref=A* weggelöscht und abschließend die Ways "gemerged" habe, es also wirklich nur eine komplette durchgezogenen Linie (way) - natürlich mit sehr vielen zwischenpunkten, nämlich die anfangs- und endpunkte der ursprünglichen ways - pro Autobahn ist.

      So, da wie du angesprochen hast st_simplify ja auch nur die einzelnen Ways glättet bringt mir das in diesem Maßstab nicht wirklich viel, oder man müsste eben wie du auch geschrieben hast versuchen das vorher mit st_union zu verbinden, dann würde ich mir das mergen der Ways in JOSM sparen.