3

At QGIS 3.4.7, I have some polygons that are overlapped and I use Polygon dissolver (by attribute) from SAGA to dissolve then and I check the option "keep inner boundaries", but this tool takes too much time to run.

I need them that way for the Check Validity to point to the overlapping location.

So, Are there any other way to dissolve the polygons and keep the inner boundaries to gain some time? The native Dissolver and GDAL´s don´t have that option.

EDIT: Example of inner boundaries in a single feature

enter image description here

  • What does "keep inner boundaries" do? I couldn't find any documentation that explains it. – csk Apr 23 '19 at 18:12
  • @csk when two or more polygons colide, with the same atribute, they are dissolved, but their inner lines continuos to exists. In the image in the EDIT, there is only one feature, with the inner boundaries keeped. – Herbert Santos Apr 23 '19 at 18:27
  • Thank you for adding the illustration. If that's all one feature, then it has invalid geometry. Polygons can't self-intersect like that. – csk Apr 23 '19 at 18:30
  • Exactly, I have a model that checks it. But to do that check I need to forge the self-intersection when it´s possible. – Herbert Santos Apr 23 '19 at 18:34
  • 1
    Try the collect geometries tool. "This algorithm does not dissolve overlapping geometries - they will be collected together without modifying the shape of each geometry part." – csk Apr 23 '19 at 18:37
2

Try the collect geometries tool. Here's its description:

Collect geometries

This algorithm takes a vector layer and collects its geometries into new multipart geometries. One or more attributes can be specified to collect only geometries belonging to the same class (having the same value for the specified attributes), alternatively all geometries can be collected.

All output geometries will be converted to multi geometries, even those with just a single part. This algorithm does not dissolve overlapping geometries - they will be collected together without modifying the shape of each geometry part.

See the 'Promote to multipart' or 'Aggregate' algorithms for alternative options.

| improve this answer | |
3

Judging by your screenshot, I propose a simple solution

Source data two layers with a general overlap, see the screenshot below enter image description here

1) In QGIS, use Vector> Geoprocessing> Symmetric difference ...

Result, See the screenshot below enter image description here

2) Next, run Vector> Geoprocessing> Crop the result, see the screenshot below enter image description here

3) Next, combine the two results into one Vector> Geoprocessing> Combining the result, see the screenshot below enter image description here

... there seems to be a similarity with your drawing ...

if I misunderstood your question, let me know ...

| improve this answer | |
  • It´s a good solution, but in my case, the input is only one shape with several polygons and a lot of possibilities of overlaps, so that is not a solution to my question, but a good point. – Herbert Santos Apr 24 '19 at 11:22
  • as an option, in this case, you need to spread the overlapping polygons in 2 layers, if it is convenient, or look for a solution for only one layer ... – Cyril Mikhalchenko Apr 24 '19 at 11:48
  • a solution for only one layer is to use the Dissolver from SAGA as in the question. What I'm looking for it´s a faster solution. – Herbert Santos Apr 24 '19 at 11:56
  • There are solutions for a single layer, only using PGSQL scripts, for example gis.stackexchange.com/a/785/120129 – Cyril Mikhalchenko Apr 24 '19 at 12:00

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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