The simplicity is beautiful.  Any simple script to do so?  I think that will be an useful addition.<div>Regards,</div><div>David<br><br>On Friday, 8 September 2023, Regina Obe <<a href="mailto:lr@pcorp.us">lr@pcorp.us</a>> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div lang="EN-US" link="#0563C1" vlink="#954F72" style="word-wrap:break-word"><div><p class="MsoNormal">David,<u></u><u></u></p><p class="MsoNormal"><u></u> <u></u></p><p class="MsoNormal">For this are you needing to generate random points from a line or polygon or are you trying to generate random polygons, lines, and points?<u></u><u></u></p><p class="MsoNormal"><u></u> <u></u></p><p class="MsoNormal">If you need to generate random points from a polygon:<u></u><u></u></p><p class="MsoNormal"><u></u> <u></u></p><p class="MsoNormal">Use ST_GeneratePoints:  <a href="https://postgis.net/docs/en/ST_GeneratePoints.html" target="_blank">https://postgis.net/docs/en/<wbr>ST_GeneratePoints.html</a><u></u><u></u></p><p class="MsoNormal">Note there is a option seed argument, that will give you the same exact answer if you give it the same seed, but without that the generated points will be different each time.<u></u><u></u></p><p class="MsoNormal"><u></u> <u></u></p><p class="MsoNormal">As I recall, ST_GeneratePoints only works with areals so won’t work with a line, however you can buffer a line very thinly to do the same. Use a flat buffer:<u></u><u></u></p><p class="MsoNormal"><u></u> <u></u></p><p class="MsoNormal"><a href="https://postgis.net/docs/en/ST_Buffer.html" target="_blank">https://postgis.net/docs/en/<wbr>ST_Buffer.html</a><u></u><u></u></p><p class="MsoNormal"><u></u> <u></u></p><p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Courier New"">SELECT ST_GeneratePoints(ST_Buffer(<u></u><u></u></span></p><p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Courier New""> ST_GeomFromText(<u></u><u></u></span></p><p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Courier New"">  'LINESTRING(50 50,150 150,150 50)'<u></u><u></u></span></p><p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Courier New""> ), 0.5, 'endcap=square join=round'), 1000);<u></u><u></u></span></p><p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Courier New"">     <u></u><u></u></span></p><p class="MsoNormal"><u></u> <u></u></p><p class="MsoNormal">If you want to generate random polygons, you could use ST_ConcaveHull or ST_AlphaShape around the section of a polygon you did a ST_GeneratePoints on<u></u><u></u></p><p class="MsoNormal"><u></u> <u></u></p><p class="MsoNormal">And then use something like <a href="https://postgis.net/docs/en/ST_Subdivide.html" target="_blank">https://postgis.net/docs/en/<wbr>ST_Subdivide.html</a> to chop up the polygons.<u></u><u></u></p><p class="MsoNormal"><u></u> <u></u></p><p class="MsoNormal">To get a linestring out of that (It will be closed), you can take the boundary of any of the above<u></u><u></u></p><p class="MsoNormal"><u></u> <u></u></p><p class="MsoNormal"><a href="https://postgis.net/docs/ST_Boundary.html" target="_blank">https://postgis.net/docs/ST_<wbr>Boundary.html</a><u></u><u></u></p><p class="MsoNormal"><u></u> <u></u></p><p class="MsoNormal">Hope that helps,<u></u><u></u></p><p class="MsoNormal">Regina<u></u><u></u></p><p class="MsoNormal"><u></u> <u></u></p><div style="border:none;border-left:solid blue 1.5pt;padding:0in 0in 0in 4.0pt"><div><div style="border:none;border-top:solid #e1e1e1 1.0pt;padding:3.0pt 0in 0in 0in"><p class="MsoNormal"><b>From:</b> postgis-users <<a href="mailto:postgis-users-bounces@lists.osgeo.org" target="_blank">postgis-users-bounces@lists.<wbr>osgeo.org</a>> <b>On Behalf Of </b>Shaozhong SHI<br><b>Sent:</b> Friday, September 8, 2023 7:56 AM<br><b>To:</b> PostGIS Users Discussion <<a href="mailto:postgis-users@lists.osgeo.org" target="_blank">postgis-users@lists.osgeo.org</a><wbr>><br><b>Subject:</b> [postgis-users] generate a geometry column of random point, line and polygon<u></u><u></u></p></div></div><p class="MsoNormal"><u></u> <u></u></p><div><p class="MsoNormal">Is a simple way to do this?<u></u><u></u></p><div><p class="MsoNormal"><u></u> <u></u></p></div><div><p class="MsoNormal">Regards,<u></u><u></u></p></div><div><p class="MsoNormal"><u></u> <u></u></p></div><div><p class="MsoNormal">David<u></u><u></u></p></div></div></div></div></div></blockquote></div>