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
