0

I'm currently trying to retrieve XY coordinates from the perimeter of a polygon (using MMQGIS). When I have a single continuous polygon I face no issues. However, when the polygon is a mix of land plots that I download from a platform (which doesn't let me merge the plots by the way) I get the coordinates of the perimeters AND from internal boundaries of the plots:

enter image description here

Like I mentioned, I'm trying to retrieve only the perimeter points/coordinates, therefore I would need a polygon without internal boundaries. I've tried using the "Minimum bounding geometry" on the points I generated with MMQGIS and "Vector - Geometry Tools - Singleparts to Multipart" on the polygon but the results are always the same polygon I started with. I also saw that a promising solution with Voronoi polygons, but I wasn't able to get anywhere with that (Converting point sets to polygon boundaries?)

So my question now is: How can I transform the polygon with internal boundaries/points into a continuous polygon so that I can retrieve just the perimeter points?

If that is not possible, is there a way to manually delete the points I marked in red in QGIS?

Buce1
  • 23
  • 2
  • Have you tried dissolving the features? – Erik Feb 05 '24 at 11:15
  • I tried dissolving the Polygon. Visually it has removed the internal boundaries (except for one) but when I retrieve the coordinates it still returns me the same exact points as my original post. – Buce1 Feb 05 '24 at 11:23
  • 1
    Try buffering by 1 m including dissolve, then buffer by -1 m, then get the coordinates. – Erik Feb 05 '24 at 11:34
  • That worked great, but instead of buffering 1m, I buffered 10 before and -10 after dissolving. Now I only get the perimeter coordinates like I wanted, thank you very much.

    Btw, I'm new to this forum, it doesn't let me upvote or select your answer as the correct one, not sure if I'm missing something.

    – Buce1 Feb 05 '24 at 11:53

1 Answers1

1

If dissolve leaves you with lines inside the polygon, e.g. due to not exactly overlapping feature boundaries, try buffering by e.g. 1 m including dissolving the features, then "debuffer" by -1 m.

Alternatively you may use the following expression to update the geometry of the merged features so you only have the outer border:

make_polygon(exterior_ring($geometry))

exterior_ring() returns you the outer border of a feature as a linestring. Since our layer geometry type is polygon, we need to use make_polygon() in order to convert the (closed) line back into a polygon and be able to update our geometry with it.

Erik
  • 16,269
  • 1
  • 24
  • 43