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

Nyall Dawson nyall.dawson at gmail.com
Tue Jun 16 15:21:17 PDT 2020


On Wed, 17 Jun 2020 at 02:10, Richard Duivenvoorde <rdmailings at duif.net> wrote:
>
> 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?

That's just a convention -- it doesn't change what the boundary
actually represents.

If you want to do analysis based on points which fall outside a
digitized polygon, you should use a "disjoint" relationship. The
alternative is to do what Nicolas suggested and make a polygon which
covers the globe minus a small hole, but you'll get terrible
performance with any analysis using that approach...!

Nyall


More information about the Qgis-user mailing list