[Qgis-user] How to determine the inner surface on a sphere or ellipsoid

Richard Duivenvoorde rdmailings at duif.net
Tue Jun 16 09:10:22 PDT 2020


On 6/16/20 4:17 PM, Tudorache, Marian wrote:
> Hi everyone,
> 
> I have a list of polygons given by a list of points.
> The polygons are properly drawn on QGIS canvas by creating the geometries, the each geometry is used to create a Qgsfeature which are saved on a shapefile.
> The problem appears in detecting if a point on the Earth is inside or outside the polygon.
> Using pyqgis QgsGeometry intersects function returns proper value.
> However when I export the polygon to intermaphics from Kongsberg Geospatial (former Gallium) sometime the point is inside other time is outside the polygon.
> I tried to switch the order of the points is QGIS ,but the intersects function always give me the same result regardless of the order of the points.
> In intermaphics the intersection between a polygon and a point varies with the order of the points which define a polygon.
> I talked to people from gallium and they confirmed the order of the points is important.
> In one direction a inner area of the polygon is the small surface and if I switch the order the inner area is the outside and it wraps the Earth on the opposite side.
> 
> Does QGIS or pyqgis has a similar mechanism to determine which is the inner part of the polygon on a sphere or ellipsoid?

Hi Marian,

are'nt we here talking about the so called Right Hand Rule?

https://postgis.net/docs/ST_ForceRHR.html
says:

In particular, the exterior ring is orientated in a clockwise direction
and the interior rings in a counter-clockwise direction.

QGIS has this also:

https://github.com/qgis/QGIS/blob/master/src/core/geometry/qgsgeometry.cpp#L2651

With pyqgis you can als use forceRHR:

https://qgis.org/pyqgis/3.12/core/QgsGeometry.html?highlight=qgsgeometry#qgis.core.QgsGeometry.forceRHR

I do know that QGIS is not so good when a geometry crosses the
world-dateline though... but I do not think that is your case is it?

Or do I misunderstand you question?

Regards,

Richard Duivenvoorde








More information about the Qgis-user mailing list