Screenshot: Links der DOP-WMS des LVerGeo LSA, rechts die Vektoren der Digitalen Stadtgrundkarte Halle
Im Tweet [1] hat SVG (@newgeographer2) mit dem “Splitscreen-(Hack)” wieder ein wunderbares Beispiel für Leistungsfähigkeit des QGIS-Geometriegenerators geliefert. Ich habe es mal probiert, es klappt bestens, siehe Screenshot und Animation. Entscheidend ist der folgende Eintrag bei allen Vektorthemen, der die Vektoren ($geometry) um die Hälfte der View-Weite (@map_extent_width/2) nach rechts verschiebt (translate):
Wer kennt das nicht? Man bekommt Daten und diese werfen plötzlich Fehler. Ursache ist mitunter eine unterschiedliche Anzahl von Geometrie- und Sachdateneinträgen. Das dann händisch zu reparieren geht ganz sicher, kann aber auch mühsam sein. Mit dem Clear Null Geometry-Plugin [1] von Mirjan Ali Sha (@mirjan_ali_sha) kann man schnell Abhilfe schaffen. Hier mein “Selbstversuch”:
Screenshot 1: Das passt nicht zusammen, zwei Geometrien und drei SachdatensätzeScreenshot 2: Der Versuch, den geometrielosen Sachdatensatz 3 anzuzeigen schlägt fehl, es gibt keine Geometrie dazuScreenshot 3: Einsatz des Clear Null Geometry-Plugin und schon ist alles OK, zwei Geometrien und zwei Sachdatensätze
Und wenn Du einen Testdatenbestand sucht, findest Du natürlich keinen. Gut zu wissen, wie man eine solchen erzeugen kann, also unterschiedliche Geometrie- und Sachdateneinträge. In [2] findet Ihr eine Beschreibung, wie Ihr Daten mit Null-Geometrien erzeugen könnt.
In meinem Beitrag von vorgestern “QGIS-Tipp: Distancematrix2Lines” [1] hatte ich das Thema schon mal vorgestellt, etliche Nachfragen und viele Klicks zeigten das große Interesse an der Problematik. Wie angedeutet habe ich das Thema noch mal überarbeitet und ein entsprechendes QGIS-Model erstellt. Jetzt wird es einfacher, ladet Euch das Model und schickt Euer Punkt-Thema rein. Das Model führt alle notwendigen Berechnungen durch und liefert das Ziel, die entstandenen Punktbeziehungen zu topologisch eindeutigen Linien zu verbinden und dabei Hin- und Rückweg zu einer einzelnen Linie zu reduzieren. Eine entsprechende Gestaltung mit Klassen und Beschriftung wird aus dem Internet nachgeladen, siehe nachfolgende Animation.
Mein neues Testprojekt v2 (getestet auf QGIS3.30@Mac siehe Animation) inkl. Model, Testdaten sowie Style-Datei findet Ihr unter [2].
Animation: Das Model in Aktion – vom Punktlayer zurm Linienlayer inkl. Gestaltung
Screenshot: Mein erster Test – Ändern der Polygonfüllung auf Orange ff8000/255-128-0 (Quelle [2])
Allen, die in ihren Anwendungen den bekannten MapServer [1] als grafischen Renderer für die Geodaten nutzen, sei ein Blick auf das MapServer Studio [2] empfohlen. Einfach die zeitraubende “Trial and Error”-Arbeit mit Syntax, Datenquellen, Gestaltung wie Farben, Füllungen, Signaturen, Beschriftungen, … auf einer einfachen Oberfläche testen und das Ergebnis sofort sehen, kann vieles vereinfachen. Preise findet man unter [3], für alle, die zum Test mit einen Wasserzeichen leben können, ist die Anwendung derzeit kostenfrei (vgl. FAQ). Übrigens: KomGIS+ nutzte schon 2001 im Prototypen GIS+ [5] den MapServer und das bis heute!
Bei Wikipedia heißt es unter dem Suchbegriff “Distanzmatrix” folgendermaßen: “Die Distanzmatrix ist in der Mathematik eine quadratische Matrix, die die Abstände zwischen Punkten einer Menge angibt” [1]. Und natürlich gibt es in vielen GI-Systemen eine entsprechende Funktion, im QGIS z. B. entsteht beim Einsatz der Funktion Distanzmatrix ein neues Punkt-Thema mit allen vonPunkt-bisPunkt Einträgen inkl. der Entfernung. Ziel ist es nun, die entstandenen Punktbeziehungen zu topologisch eindeutigen Linien zu verbinden und dabei Hin- und Rückweg zu einer einzelnen Linie zu reduzieren. Ich bin (Quick & Dirty) mit QGIS folgenden Weg begangen:
Distanzmatrix –> Punkte zur Weg –> Linien sprengen (Explode) –> Attribut nach Position verknüpfen –> Auflösen
Hier meine Schritte mit Zwischenergebnissen und das Finale:
Mein Testprojekt inkl. Daten findet Ihr zu Nachnutzung unter QGIS_DistanceMatrix2Lines.zip [2], vielleicht erweitere ich es noch um ein Model. Möglicherweise geht es auch einfacher, wenn ja, gern in den Kommentaren. Ich bin gespannt!
Das Extrahieren von OpenStreetMap-Daten ist hier schon mehrfach thematisiert worden. Es gibt etliche Wege, diesem momentan 1,7 TByte großen freien Datenbestand aktuelle Daten zu entlocken, z. B. Overpass Turbo oder diverse QGIS-Plugins wie QuickOSM, OSMDownloader, … . Bunting Labs hat im März eine neue OpenStreetMap-API [1] vorgestellt, die das Ganze weiter vereinfachen soll und via curl und get auf der Kommandozeile ausführbar ist. Damit eignet sich die API besonders für automatisierte Workflows. Ich habe es gestern mal getestet, einfach einen API-Key registrieren und schon kann es losgehen. Curl-Aufruf, sichern in einer Datei z. B. “x.geojson” und Visualisierung im QGIS. Es klappt, siehe Screenshots:
Screenshot 1: Mein Test mit Umleitung in eine Datei “x.geojson” (1) und Ausgabe auf dem Screen (2)Screenshot 2: Die Testergebnisse aus der Datei “x.geojson” im QGIS visualsiert
Nutzer SVG (@newgeographer2) zeigt uns in den letzten Wochen immer wieder interessante Lösungen bei der Visualisierung im QGIS, vor allem beim Einsatz mit dem Geometry-Generator. Am Dienstag zum Beispiel die dynamische “Maskierung” von Themen [1]. Ein interessanter Effekt, ich hab es mit QGIS3.30.2@Mac ausprobiert, klappt perfekt. Entscheidend ist der folgende Eintrag im Geometry-Generator:
Mein Testprojekt steht als Download [2] zur Verfügung. Hier ein paar Screenshots meines Tests, seht selbst:
Update 04.05.2023, 13:45 Uhr: Weil einige Nachfragen kamen, bei den Daten handelt es sich um die “Baublöcke der Kleinräumigen Gliederung” – Open Data der Stadt Halle (Saale). Es sind einfache Polygone, aber symbolisiert als “Rand: Einfache Linie” mit “Versatz”:
Via Tweet kam gestern die Meldung von Jürgen E. Fischer, dass die Downloads für QGIS 3.30.2 und 3.28.6 LTRfür Windows, Mac und Linux [1] verfügbar sind. Gleichzeitig kam gestern auch ein Sicherheitsupdate für macOS Ventura, nämlich 13.3.1a.
Ich habe beide Pakete installiert und alles läuft erwartungsgemäß hervorragend in meiner GIS-Umgebung, also QGIS 3.30.2 zusammen mit PostgreSQL v15.2 auf einem MAC mit M1 unter dem macOS 13.3.1a Ventura, siehe Screenshot. Danke allen Mitwirkenden!!!
Wer kennt das nicht, man will Geodienste nutzen, aber nicht nur ein Abbild via WMS sondern die Vektor-Objekte direkt, z. B., um mit diesen dann weiter zu arbeiten, vielleicht zum Geoprozessieren. Aber es kann sein, dass der WFS nur eine bestimmte Anzahl von Objekten liefert, weil es eben am WFS-Server vom Dienst-Anbieter so begrenzt wurde, vgl. [2] Seite 9. PyQGIS alias Ivo Partschefeld (@PyQgis) hat sich zur Lösung des Problems Gedanken gemacht und via Python-Skript im QGIS eine Lösung gefunden. Dank Ivo! Wie es gehen kann, seht Ihr im folgenden Video “WFS Beschränkung umgehen mit python in QGIS” [1]:
Auch schon Mal an der Begrenzung der Objektanzahl eines #WFS gescheitert? Im Video zeige ich Euch, wie man es umgehen kann um alle Daten zu bekommen. Siehe Video: https://t.co/zhHOz2SEfJpic.twitter.com/iX8hlOF5iO
Manchmal sind es die ganz kleinen Dinge, die einem das GIS-Leben erleichtern können. Und diesmal habe ich es im QGIS-Plugin „CIGeoE Converge Lines-Plugin“ [1], [2] gefunden. Dort heißt es, CIGeoE Converge Lines ist ein
“Plugin zum Erstellen eines Konvergenzpunkts von Linien innerhalb eines ausgewählten Bereichs. Dieses Werkzeug sucht innerhalb des ausgewählten Bereichs nach Linienendpunkten, berechnet den Mittelpunkt zwischen diesen Scheitelpunkten und übersetzt die Endpunkte in die durchschnittlichen Punktkoordinaten. Hinweis: Alle Linien mit Start- und Endpunkt innerhalb des ausgewählten Bereichs werden entfernt.” [2]
Wichtig: Das Plugin funktioniert derzeit “nur” für Linien-Themen mit Einzel-Geometrien. Ihr müsst also vorher ggf. Polygone in Linien und dann mehrteilige Geometrien in Einteilige umwandeln, also die QGIS-Funktion “Vektor / Geometrie-Werkzeuge / Mehrteilig zu einteilig…” auf Euer Thema ansetzen. Wenn man damit leben kann, funktioniert das Plugin tadellos. Ich hab es getestet, es klappt prima, nie war es einfacher, quasi mit einem Klick nichttopologische Daten zu topologisch korrekten Daten zu wandeln. Ich würde mir das auch so ähnlich für Polygons und Mehrfachgeometrien wünschen 😉