Übersichtskarte erstellen ... und dann mit Inkscape nachbearbeiten

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/osm/snaps_2016/schleusegrundX.svg

So lange das konstruktiv ist, habe ich da nichts dagegen, auch nicht gegen das Wort “rumpfuschen” :wink:

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 :confused:

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) :confused:

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 :smiley:

Meine Emailadresse hast du, also Danke :wink:

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.

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

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

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

Ist inzwischen online: https://osm.wno-edv-service.de/images/osm/snaps_2016/schleusegrundX.svg

Gruss
walter

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.

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

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?

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 :slight_smile:

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

Gruß Klaus

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?

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

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?

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.

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.

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

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.

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.

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?

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.