Im “QGIS-Tipp: Der Pol der Unzugänglichkeit” [1] hatte ich im August schon etwas über den ins Polygon erzwungenen Flächenschwerpunkt mit QGIS-Bordmittel beschrieben. In der FOSSGIS-Talk-Mailingliste [2] kam diese Frage jetzt mal wieder auf, gefragt war der Schwerpunkt von Polygonen, die immer innerhalb des Polygons, aber dann im Thema (Layer) selbst liegen sollen, nicht in einem Extra-Layer [3]. Meine Lösung war, das Ganze über virtuellen Felder im QGIS zu lösen [4]. Also so:
"Ich habe mit dem Feldrechner zwei virtuelle Felder angelegt. RW: x_cent_virt = x(pole_of_inaccessibility($geometry,0.0001)) HW: y_cent_virt = y(pole_of_inaccessibility($geometry,0.0001)) Über die virtuellen Felder werden die Inhalte, hier also x und y der Koordinate des Unzugänglichkeitspols bei jeder Geometrieänderung automatisch neu berechnet. Beim Export, z. B. in ein Shape werden die virtuellen Felder zu realen mit den Koordinaten der aktuell beim Speichern vorhandenen Geometrie. Ich habe dazu mal ein kleines Test-Projekt gemacht, Ihr findet es unter QGIS_PoleOfInaccessibility_Test1.zip [5]"
[1] … https://geoobserver.de/2021/08/10/qgis-tipp-der-pol-der-unzuganglichkeit/
[2] … https://lists.fossgis.de/mailman/listinfo/fossgis-talk-liste
[3] … https://lists.fossgis.de/pipermail/fossgis-talk-liste/2021-November/011652.html
[4] … https://lists.fossgis.de/pipermail/fossgis-talk-liste/2021-November/011661.html
[5] … http://www.geoobserver.de/Download/QGIS_PoleOfInaccessibility_Test1.zip
Hier noch ein Kommentar aus der QGIS-Community-Gruppe im Facebook, vgl: https://www.facebook.com/groups/612486875596534/posts/1986233128221895/?comment_id=1988015858043622
A variation on this, which might be neater for some applications, is to create a single new field using:
with_variable( ‘poi’, pole_of_inaccessibility( $geometry, 0.0001 ),
format( ‘POINT( %1 %2 )’,
format_number( x(@poi), 3 ),
format_number( y(@poi), 3 ) )
)
or just:
geom_to_wkt( pole_of_inaccessibility( $geometry, 0.00001 ), 3 )
Which will create a new text field containing the centroid geometry in WKT format.
You might then add a geometry generator symbol layer with the simple expression:
geom_from_wkt(“POI_field”)
…which will display the centroid points along with their polygons.