Du hast Linien und willst diese in gleichen Abständen teilen? Also nutzt Du die PostGIS-Datenbank-Funktionen und legst eine zweites Thema an, z. B. so:
Beispiel 1:
select (dp).geom::geometry(point,2398) into Test_Linie_Segmentation_1 from (select st_dumppoints(st_segmentize(geom,50)) as dp from “Test_Linie_1”) as foo;
Soll nun aber der Datenbestand klein bleiben und Du willst nur ein Datenbankthema halten und pflegen und nicht bei jeder Änderung das Abstandsthema neu generieren, baust Du das zweite Thema über ein View, z. B. so:
Beispiel 2:
create or replace view myView_line_segmentation_1 as select (dp).geom::geometry(point,2398) as geom, id from (select id, st_dumppoints(st_segmentize(geom,200)) as dp from “Test_Linie_1”) as foo;
Screenshot: Das View “myView_line_segmentation_1” im QGIS-Einsatz
Update 17.06.2019:
Leider lässt QGIS das Fangen auf die Elemente des Views (Beispiel 2) nicht zu. Wenn die Fang-Funktion gebraucht wird, sollte man auf die echte Tabelle, siehe Beispiel 1, zurück greifen.
Update 28.06.2019:
QGIS verhält sich mitunter unterschiedlich je nach Versionen. Auf Win, QGIS2.14, PostgresSQL 9.4 geht das Fangen auch ohne ID, auf Mac, QGIS 3.6, PostGreSQL 11, geht das Fangen des View-Themas nur mit expliziter ID. Ich habe deswegen um ID erweitert:
create or replace view v1 as select row_number() OVER () as id, (dp).geom::geometry(point,2398) as geom from (select st_dumppoints(st_segmentize(geom,200)) as dp from “Test_Linie_1”) as foo;
You don’t need PostGIS to show polyline nodes. In QGIS you can use a geometry generator style with nodes_to_points($geometry) for a similar result. I used that technique for the following example: https://gitlab.com/GIS-projects/qgis-geometry-generator-examples/tree/master/QML-files/numbered_nodes
That’s right and I know it. In the concrete case, however, catching on objects is needed, therefore without geometry generator, but with real geodata (table “Test_Linie_Segmentation_1”). Unfortunately, the View does not support capturing 🙁
QGIS may behave differently depending on the version. On Win, QGIS2.14, PostgresSQL 9.4 you can catch without ID, on Mac, QGIS 3.6, PostGreSQL 11 you can only catch the view theme with explicit ID. That’s why I added ID:
create or replace view v1 as select row_number() OVER () as id, (dp).geom::geometry(point,2398) as geom from (select st_dumppoints(st_segmentize(geom,200)) as dp from “Test_Linie_1”) as foo;