[postgis-users] generate a geometry column of random point, line and polygon

Regina Obe lr at pcorp.us
Fri Sep 8 07:19:40 PDT 2023



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?


If you need to generate random points from a polygon:


Use ST_GeneratePoints:  https://postgis.net/docs/en/ST_GeneratePoints.html

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.


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:




SELECT ST_GeneratePoints(ST_Buffer(


  'LINESTRING(50 50,150 150,150 50)'

), 0.5, 'endcap=square join=round'), 1000);



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


And then use something like https://postgis.net/docs/en/ST_Subdivide.html to chop up the polygons.


To get a linestring out of that (It will be closed), you can take the boundary of any of the above




Hope that helps,



From: postgis-users <postgis-users-bounces at lists.osgeo.org> On Behalf Of Shaozhong SHI
Sent: Friday, September 8, 2023 7:56 AM
To: PostGIS Users Discussion <postgis-users at lists.osgeo.org>
Subject: [postgis-users] generate a geometry column of random point, line and polygon


Is a simple way to do this?





-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osgeo.org/pipermail/postgis-users/attachments/20230908/c9d09068/attachment.htm>

More information about the postgis-users mailing list