[Qgis-user] Filtering layer or selected features by attributes does not work for new added features in QGIS 3.22.8

Andrea Giudiceandrea andreaerdna at libero.it
Mon Jul 25 09:50:22 PDT 2022


Il 25/07/2022 16:12, Tudorache, Marian ha scritto:
> When I open the QGIS project created with QGIS2.18 I got a message 
> which notify me the project is an old version of QGIS and some 
> conversion was done.
>
> So when I open QGIS 2.18 project something happened with the data and 
> was transformed from LineString to MultiLineString.
>
> Is this normal behaviour for QGIS 3 to convert the geometry type from 
> single part to multiple parts?
> Is any method to supress this transformation?
>

Hi Marian,
AFAIK the QGIS project update process doesn't actually transform any of 
your data, it only updates the qgs/qgz file.

The different behaviour is probably due to a change in the QGIS API 3 
and in the way a Shapefile layer is loaded in QGIS 3.
Basic Shapefile layer shape types [1] are:
- Point
- MultiPoint
- PolyLine
- Polygon

As you can see, there are Point and MultiPoint types, but only PolyLine 
and Polygon types and not also MultiPolyLine and MultiPolygon types.

In fact, the Shapefile format treats the PolyLine and the Polygon shape 
types as layers that can contain both (multi-part) geometries with only 
1 part and (multi-part) geometries with 2 or more parts. They are 
actually multi-part layer types.

With QGIS 2.18, a feature geometry with only 1 part in a PolyLine shape 
type Shapefile layer was considered as a LineString WKT geometry type, 
while a feature geometry with 2 or more parts in the same layer was 
considered as a MultiLineString WKT geometry type. Thus, you needed to 
correctly use asPolyline() or asMultiPolyline() for features geometries 
in the same PolyLine shape type Shapefile layer depending on the actual 
feature geometry type.

With QGIS 3, both the feature geometry with only 1 part and the feature 
geometry with 2 or more parts in a PolyLine shape type Shapefile layer 
are considered as MultiLineString WKT geometry type. Thus, you can 
always use asMultiPolyline() for all the geometries in the same PolyLine 
shape type Shapefile layer.

Best regards.

Andrea

[1] 
https://www.esri.com/content/dam/esrisites/sitecore-archive/Files/Pdfs/library/whitepapers/pdfs/shapefile.pdf

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osgeo.org/pipermail/qgis-user/attachments/20220725/de646833/attachment-0001.htm>


More information about the Qgis-user mailing list