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?

  • Have you tried dissolving the features?
    – Erik
    Feb 5 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 5 at 11:23
  • 1
    Try buffering by 1 m including dissolve, then buffer by -1 m, then get the coordinates.
    – Erik
    Feb 5 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 5 at 11:53

1 Answer 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:


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.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.