Having a centroid outside a polygon is a common situation, even with valid 
geometries.
Depending of use case, I use ST_PointOnSurface when 
ST_Within(St_Centroid(surface), surface) returns false
steve





Rémi Cura <[email protected]>@lists.osgeo.org 
Envoyé par : [email protected]
2014-05-05 07:09
Veuillez répondre à
PostGIS Users Discussion <[email protected]>


A
PostGIS Users Discussion <[email protected]>
cc

Objet
Re: [postgis-users] Point inside a polygon








Hmm your problem is not about a function, is about using invalid 
geometries !

Why simply don't fix your geometry?
you must do it anyway if you want to use PostGIS 
without strange bugs.

Use http://postgis.refractions.net/docs/ST_MakeValid.html

Cheers,
Rémi-C


2014-05-03 15:51 GMT+02:00 Larry Reeder <[email protected]>:
Another thing to be aware of with ST_PointOnSurface is it can return a 
point that's on the boundary of polygon, but *not inside* the polygon, so 
that ST_Within(St_PointOnSurface(surface), surface) returns false.  That's 
bitten me before, but may be OK for your purposes.

       -Larry




On Fri, May 2, 2014 at 1:38 PM, Åsmund Tokheim <[email protected]> wrote:
Hi

You can use st_closestpoint(geom, st_centroid(geom)) to make sure that the 
returned point is in most circumstances at or near the centroid, and 
always at least on the boundary of the polygon. While st_pointonsurface 
certainly will be faster, it will often choose a more random point on the 
surface.

Åsmund


On Fri, May 2, 2014 at 12:45 PM, Nicolas Ribot <[email protected]> 
wrote:
Hi,

Use st_pointOnSurface (
http://postgis.net/docs/manual-2.1/ST_PointOnSurface.html)

Nicolas


On 2 May 2014 06:32, J.Alejandro Martinez Linares <[email protected]> 
wrote:
Hi people, i need your help, i was using st_centroid to get a point that 
be inside a polygon butr st_centroid got a property  that is a problem to 
me, it returns a point that not always is inside the polygon, cause when 
the polygon has an irregular form, the point that st_centroid is outside 
the polygon, and i need a function that do a similar thing that 
st_centroid but i need that the point it returns always be inside the 
polygon, is there a function that do that?

cheers.

--

Este mensaje le ha llegado mediante el servicio de correo electronico que 
ofrece Infomed para respaldar el cumplimiento de las misiones del Sistema 
Nacional de Salud. La persona que envia este correo asume el compromiso de 
usar el servicio a tales fines y cumplir con las regulaciones establecidas

Infomed: http://www.sld.cu/

_______________________________________________
postgis-users mailing list
[email protected]
http://lists.osgeo.org/cgi-bin/mailman/listinfo/postgis-users


_______________________________________________
postgis-users mailing list
[email protected]
http://lists.osgeo.org/cgi-bin/mailman/listinfo/postgis-users


_______________________________________________
postgis-users mailing list
[email protected]
http://lists.osgeo.org/cgi-bin/mailman/listinfo/postgis-users


_______________________________________________
postgis-users mailing list
[email protected]
http://lists.osgeo.org/cgi-bin/mailman/listinfo/postgis-users
_______________________________________________
postgis-users mailing list
[email protected]
http://lists.osgeo.org/cgi-bin/mailman/listinfo/postgis-users


_______________________________________________
postgis-users mailing list
[email protected]
http://lists.osgeo.org/cgi-bin/mailman/listinfo/postgis-users

Reply via email to