[Qgis-user] Split features tool behavior

Andreas Wicht a.wicht at gmail.com
Wed May 31 09:02:56 PDT 2017


Hi Bernhard,

>>> I dug deeper and it seems that I can always split the part once. Any
>>> further
>>> splitting of any part results in the invalid geometry error.
>>> https://issues.qgis.org/issues/12799 describes why.
>>
>>
>> Exactly. So when you split the polygon and save the edits you will
>> have said self-intersection in your data. That's why the second split
>> will not work (correct behaviour).
>
>
> Still you can save it and have thus an invalid geometry

The correct behaviour was aimed towards the fact, that you can not do
a second split due to the invalid geometry and not due to being able
to save the invalid geometry.

>>> Back to what you try to achieve: you could use "Split feature" to create a
>>> new feature, manipulate what you need, even split this feature again and
>>> then use "merge feature" with those polygons that should form the
>>> multipolygon. Your first mail indicates that you are puzzled because you
>>> get three features if you apply "split features" to a part of a multipart
>>> polygon (1 = split part1, 2 = split part2, 3 = all the
>> Split Features is not an option here, because in this example the
>> island would also be separated from the polygon which is not
>> necessarily wanted.
> I do not get, what you mean, anyways you can merge several features into one
> at anytime.

If you edit a real world dataset this becomes more clear maybe.
Let it be some kind of administrative structure with a lot of small
islands (literal islands) for example at the Norwegian coast.
Therefore one dataset (multipart-feature) contains the polygon on the
mainland and all the island (literal island) polygons attached to it.
If you want to split the mainland polygon (see my example data) and
use "Split Features" you would have to merge all islands again
afterwards. That is what I mean by "that is not an option here". It's
possible, but totally impractical.

>> Yes, I totally get that. But as I said before, other GIS handle it
>> more intuitively.
>> I don't know in detail how they technically do it (closed source).
>> - ArcGIS's "Cut Polygon" tool
>> - MapInfo's "Split" tool
>
> I do not have access to these packages. Could you describe what they do
> differently?

For ArcGIS I don't exactly know. It just produces the result which I expect.
The result is (using my sample data screenshots) 2 features. The right
features (which was cut off) and the left features (multipart polygon
of the other half + the part which is in this case a literal island).
How it exactly determines the correct relations of the parts, I can't
tell you.

MapInfo has a more obvious approach. When you split a
multipart-feature with a line (2 vertices), it will extend the line to
the boundingbox-boundary, and split the feature with a polygon which
is constructed by the intersection of the bounding box and the
(extended) digitized line. Therefore the new feature which is created
will always be the portion which was covered by that polygon. The
other half of the feature remains a multipart feature and keeps all
parts which lie outside that splitting polygon.
When splitting a multipart polygon by a polyline (more than 2
vertices) it will always close the polyline automatically and
therefore construct the splitting polygon.

>> I think logically one would have to chain splitting the part and
>> automatically converting the new part as a separate polygon in one
>> tool (given the robust automatic identification of the new part).
>
>
> But that is exactly what split feature does if you apply it to a part: It
> splits the part and adds both "halves" as new features. I would not expect
> any of the halves becoming a new feature and the other staying a part of the
> multipart feature arbitrarily. What should I do if the wrong half stays?
> Therefore for me the workflow is clear: 1) Split features 2) merge the
> feature that should stay with the multipart feature. 3) Done

The manually merging step is where the errors will be produced, once
you deal with a complicated layer of some sort.
That is what I mean as described above. Other GIS make sure the
correct half stays and I do not have to deal with the merging step.

> BTW: We should agree on common terms; these are the terms QGIS uses AFAIK: a
> feature is a dataset, i.e. one row in the table; it can either have one
> geometry or several geometries as spatial representation (or none but that's
> of no interest here). If it has several geometries it is called a multi-part
> feature, each individual geometry is called a part then. A polygon is a type
> of geometry; if it is a multi-part polygon, each part is a polygon in itself
> (therefore I tried to avoid "polygon" altogether and used "feature" and
> "part" instead to be clear). An island is a hole in a single polygon, QGIS
> calls it "ring". In DigitizingTools I use "gap" for a space surrounded by
> polygon features but without being part of a polygon itself.

I hope I managed to follow that now :)

> The idea behind "Split off one part and add it as a new feature" is that you
> cannot use "Split features" to extract a whole part (workaround would be to
> apply "Split features" to the part and merge the two resulting new features
> into one, but that's not intuitive :)

Chaining those 2 tools manually produces exactly the output I would expect.
- I use "Split Parts" and receive the halves which form the invalid geometry
- then I use "Split off one part and add it as a new feature" on the
part which I want to separate
- make sure the primary key is valid and
- done



More information about the Qgis-user mailing list