Thank you Andrea!
I also asked this on the QGIS Community Telegram group and got a few
answers. Still a bit confusing though. Here's a test script:
wkt = 'MULTIPOLYGON(((-9 0, 0 9, 9 0, 0 -9, -9 0),(-8 0, 0 8, 8 0, 0 -8,
-8 0)),((-7 0, 0 7, 7 0, 0 -7, -7 0)))'
geom = QgsGeometry.fromWkt(wkt)
print(geom)
print( geom.validateGeometry() ) # 0 = QGIS (Returns an error)
print( geom.validateGeometry(0) ) # 0 = QGIS (Returns an error)
print( geom.validateGeometry(1) ) # 1 = GEOS
print( geom.isGeosValid() ) # Why does this one even exist???
geom2 = geom.constGet()
print(geom2)
print( geom2.isValid() )
print( geom2.isValid(0) )
print( geom2.isValid(1) )
geom3 = geom.get()
print(geom3)
print( geom2.isValid() )
print( geom3.isValid(0) )
print( geom3.isValid(1) )
I think geom2 and geom3 are the exact same thing. And the parameter 0 or
1 (or none at all) don't seem to change anything to the validation type,
since they don't raise errors.
(BTW I'm doing this cause QGIS validation raises an error for
multipolygons having a polygon within an inner of another polygon, which
should be fixed. That's also the example wkt here.)
On 18-07-2021 13:49, Andrea Giudiceandrea wrote:
Il 18/07/2021 11:46, Raymond Nijssen ha scritto:
How can I run ths isValid() function on a geometry. I would think my
Polygon Geometry would inherit all functions from the
QgsAbstractGeometry base class, but it seems it doesn't.
I get:
AttributeError: 'QgsGeometry' object has no attribute 'isValid'
Hi Raymond,
the QGIS Python API documentation clarify that: "The actual geometry
representation is stored as a QgsAbstractGeometry within the container,
and can be accessed via the get() method"[1].
So, I think
geom.get().isValid()
will work without errors.
Best regards.
Andrea
[1] https://qgis.org/pyqgis/3.16/core/QgsGeometry.html#module-QgsGeometry
_______________________________________________
QGIS-Developer mailing list
QGIS-Developer@lists.osgeo.org
List info: https://lists.osgeo.org/mailman/listinfo/qgis-developer
Unsubscribe: https://lists.osgeo.org/mailman/listinfo/qgis-developer
_______________________________________________
QGIS-Developer mailing list
QGIS-Developer@lists.osgeo.org
List info: https://lists.osgeo.org/mailman/listinfo/qgis-developer
Unsubscribe: https://lists.osgeo.org/mailman/listinfo/qgis-developer