<div dir="ltr"><div><div><div><div>Oops my bad :-/<br><br></div>I use <a href="http://postgis.refractions.net/docs/ST_StartPoint.html">http://postgis.refractions.net/docs/ST_StartPoint.html</a> for this kind of stuff,<br></div>
<br>it is fast but the point may not be "within" enough for you<br>(<a href="http://en.wikipedia.org/wiki/DE-9IM">http://en.wikipedia.org/wiki/DE-9IM</a>)<br></div><br>Cheers,<br></div>Rémi-C<br></div><div class="gmail_extra">
<br><br><div class="gmail_quote">2014-05-05 17:10 GMT+02:00  <span dir="ltr"><<a href="mailto:Steve.Toutant@inspq.qc.ca" target="_blank">Steve.Toutant@inspq.qc.ca</a>></span>:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">

<p><font face="sans-serif">Having a centroid outside a polygon is
a common situation, even with valid geometries.</font>
</p><p><font face="sans-serif">Depending of use case, I use </font><font size="3">ST_PointOnSurface</font><font face="sans-serif">
when </font><font size="3">ST_Within(St_Centroid(surface), surface) returns
false</font>
</p><p><font size="3">steve</font>
</p><p>
</p><p>
<br>
<br>
<br>
</p><p></p><table width="100%">
<tbody><tr valign="top">
<td width="40%"><font face="sans-serif" size="1"><b>Rémi Cura <<a href="mailto:remi.cura@gmail.com" target="_blank">remi.cura@gmail.com</a>>@<a href="http://lists.osgeo.org" target="_blank">lists.osgeo.org</a></b>
</font>
<br><font face="sans-serif" size="1">Envoyé par : <a href="mailto:postgis-users-bounces@lists.osgeo.org" target="_blank">postgis-users-bounces@lists.osgeo.org</a></font>
<p><font face="sans-serif" size="1">2014-05-05 07:09</font>
</p><table border="">
<tbody><tr valign="top">
<td bgcolor="white">
<div align="center"><font face="sans-serif" size="1">Veuillez répondre à<br>
PostGIS Users Discussion <<a href="mailto:postgis-users@lists.osgeo.org" target="_blank">postgis-users@lists.osgeo.org</a>></font></div></td></tr></tbody></table>
<br>
</td><td width="59%">
<table width="100%">
<tbody><tr valign="top">
<td>
<div align="right"><font face="sans-serif" size="1">A</font></div>
</td><td><font face="sans-serif" size="1">PostGIS Users Discussion <<a href="mailto:postgis-users@lists.osgeo.org" target="_blank">postgis-users@lists.osgeo.org</a>></font>
</td></tr><tr valign="top">
<td>
<div align="right"><font face="sans-serif" size="1">cc</font></div>
</td><td>
</td></tr><tr valign="top">
<td>
<div align="right"><font face="sans-serif" size="1">Objet</font></div>
</td><td><font face="sans-serif" size="1">Re: [postgis-users] Point inside a polygon</font></td></tr></tbody></table>
<br>
<table>
<tbody><tr valign="top">
<td>
</td><td></td></tr></tbody></table>
<br></td></tr></tbody></table><div><div class="h5">
<br>
<br>
<br>
<br>
<br><font size="3">Hmm your problem is not about a function, is about using
invalid geometries !</font>
<br><font size="3"><br>
Why simply don't fix your geometry?</font>
<br><font size="3">you must do it anyway if you want to use PostGIS <br>
without strange bugs.<br>
</font>
<br><font size="3">Use </font><a href="http://postgis.refractions.net/docs/ST_MakeValid.html" target="_blank"><font color="blue" size="3"><u>http://postgis.refractions.net/docs/ST_MakeValid.html</u></font></a><font size="3"><br>

</font>
<br><font size="3">Cheers,<br>
Rémi-C</font>
<br><font size="3"><br>
</font>
<br><font size="3">2014-05-03 15:51 GMT+02:00 Larry Reeder <</font><a href="mailto:lnreeder@gmail.com" target="_blank"><font color="blue" size="3"><u>lnreeder@gmail.com</u></font></a><font size="3">>:</font>
<br><font size="3">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.</font>
<br>
<br><font color="#888888" size="3">       -Larry</font>
<br>
<br>
<br><font size="3"><br>
</font>
<br><font size="3">On Fri, May 2, 2014 at 1:38 PM, Åsmund Tokheim <</font><a href="mailto:asmundto@gmail.com" target="_blank"><font color="blue" size="3"><u>asmundto@gmail.com</u></font></a><font size="3">>
wrote:</font>
<br><font size="3">Hi</font>
<br>
<br><font size="3">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.</font>
<br>
<br><font color="#888888" size="3">Åsmund</font>
<br><font size="3"><br>
</font>
<br><font size="3">On Fri, May 2, 2014 at 12:45 PM, Nicolas Ribot <</font><a href="mailto:nicolas.ribot@gmail.com" target="_blank"><font color="blue" size="3"><u>nicolas.ribot@gmail.com</u></font></a><font size="3">>
wrote:</font>
<br><font size="3">Hi,</font>
<br>
<br><font size="3">Use st_pointOnSurface (</font><a href="http://postgis.net/docs/manual-2.1/ST_PointOnSurface.html" target="_blank"><font color="blue" size="3"><u>http://postgis.net/docs/manual-2.1/ST_PointOnSurface.html</u></font></a><font size="3">)</font>
<br>
<br><font color="#888888" size="3">Nicolas</font>
<br><font size="3"><br>
</font>
<br><font size="3">On 2 May 2014 06:32, J.Alejandro Martinez Linares <</font><a href="mailto:islanis@infomed.sld.cu" target="_blank"><font color="blue" size="3"><u>islanis@infomed.sld.cu</u></font></a><font size="3">>
wrote:</font>
<br><font size="3">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?<br>
<br>
cheers.<br>
<br>
--<br>
<br>
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<br>
<br>
Infomed: </font><a href="http://www.sld.cu/" target="_blank"><font color="blue" size="3"><u>http://www.sld.cu/</u></font></a><font size="3"><br>
<br>
_______________________________________________<br>
postgis-users mailing list</font><font color="blue" size="3"><u><br>
</u></font><a href="mailto:postgis-users@lists.osgeo.org" target="_blank"><font color="blue" size="3"><u>postgis-users@lists.osgeo.org</u></font></a><font color="blue" size="3"><u><br>
</u></font><a href="http://lists.osgeo.org/cgi-bin/mailman/listinfo/postgis-users" target="_blank"><font color="blue" size="3"><u>http://lists.osgeo.org/cgi-bin/mailman/listinfo/postgis-users</u></font></a>
<br>
<br><font size="3"><br>
_______________________________________________<br>
postgis-users mailing list</font><font color="blue" size="3"><u><br>
</u></font><a href="mailto:postgis-users@lists.osgeo.org" target="_blank"><font color="blue" size="3"><u>postgis-users@lists.osgeo.org</u></font></a><font color="blue" size="3"><u><br>
</u></font><a href="http://lists.osgeo.org/cgi-bin/mailman/listinfo/postgis-users" target="_blank"><font color="blue" size="3"><u>http://lists.osgeo.org/cgi-bin/mailman/listinfo/postgis-users</u></font></a>
<br>
<br><font size="3"><br>
_______________________________________________<br>
postgis-users mailing list</font><font color="blue" size="3"><u><br>
</u></font><a href="mailto:postgis-users@lists.osgeo.org" target="_blank"><font color="blue" size="3"><u>postgis-users@lists.osgeo.org</u></font></a><font color="blue" size="3"><u><br>
</u></font><a href="http://lists.osgeo.org/cgi-bin/mailman/listinfo/postgis-users" target="_blank"><font color="blue" size="3"><u>http://lists.osgeo.org/cgi-bin/mailman/listinfo/postgis-users</u></font></a>
<br>
<br><font size="3"><br>
_______________________________________________<br>
postgis-users mailing list</font><font color="blue" size="3"><u><br>
</u></font><a href="mailto:postgis-users@lists.osgeo.org" target="_blank"><font color="blue" size="3"><u>postgis-users@lists.osgeo.org</u></font></a><font color="blue" size="3"><u><br>
</u></font><a href="http://lists.osgeo.org/cgi-bin/mailman/listinfo/postgis-users" target="_blank"><font color="blue" size="3"><u>http://lists.osgeo.org/cgi-bin/mailman/listinfo/postgis-users</u></font></a>
<br><tt><font>_______________________________________________<br>
postgis-users mailing list<br>
<a href="mailto:postgis-users@lists.osgeo.org" target="_blank">postgis-users@lists.osgeo.org</a><br>
<a href="http://lists.osgeo.org/cgi-bin/mailman/listinfo/postgis-users" target="_blank">http://lists.osgeo.org/cgi-bin/mailman/listinfo/postgis-users</a></font></tt>
<br>
<br>
<br></div></div><p></p><p></p><p></p><p></p><p></p><br>_______________________________________________<br>
postgis-users mailing list<br>
<a href="mailto:postgis-users@lists.osgeo.org">postgis-users@lists.osgeo.org</a><br>
<a href="http://lists.osgeo.org/cgi-bin/mailman/listinfo/postgis-users" target="_blank">http://lists.osgeo.org/cgi-bin/mailman/listinfo/postgis-users</a><br></blockquote></div><br></div>