[postgis-users] Create equally spaced lines within a polygon

Nicolas Ribot nicolas.ribot at gmail.com
Sat Nov 30 08:21:46 PST 2013


Hi,

You should look at this french article for skeletonization of
irregular polygons. The st_delaunayTriangles method can also help.
Note that the middle line of a polygon is not always a straight line.
Then, using linear referencing, it should be easy to walk the middle
line to create perpendicular segments.

Nicolas

On 29 November 2013 18:25, Karl Zinglersen <karl.zinglersen at gmail.com> wrote:
> I need to create transect lines across polygons for planning aerial surveys
> for musk oxen and caribous in Greenland.
> 1. In QGIS I have made polygons of the polygon zones for each survey. Each
> polygon hold an attribute of spacing value, e.g. 5, 10 and 20 km.
> 2. Lines must be equally spaced and parallel.
> 3. Lines must be perpendicular to the polygon centerline.
> 4. Centerline must run at the longest distance across the polygon - and
> consequently the transects run as the shorter distances.
> I've attached a hand made sketch, which display the concept.
>
> I've tried this query
>
> SELECT GENERATE_SERIES(FLOOR(ST_YMin(the_polygon))::int ,
> CEILING(ST_YMax(the_polygon))::int,200) y_value, ST_XMin(the_polygon) x_min,
> ST_XMax(the_polygon) x_max from
>             (SELECT the_geom AS the_polygon FROM lakes) l
>
>
> SELECT ST_Intersection(the_geom, the_polygon)  AS the_geom FROM
>     (SELECT the_polygon, ST_Setsrid(ST_MakeLine(ST_MakePoint(x_min,
> y_value),ST_MakePoint(x_max, y_value) ), ST_Srid(the_polygon)) AS the_geom
> FROM
>         (SELECT the_polygon,
> GENERATE_SERIES(FLOOR(ST_YMin(the_polygon))::int ,
> CEILING(ST_YMax(the_polygon))::int,200) y_value, ST_XMin(the_polygon) x_min,
> ST_XMax(the_polygon) x_max from
>             (SELECT the_geom AS the_polygon FROM lakes) l
>         )c
>
> ) lines
>
> from gis stackechange
> http://gis.stackexchange.com/questions/24064/filling-a-polygon-with-lines-using-postgis
>
> however these transects runs horisontally and don't seem to take into
> account the shape and rotation of the polygon centerline.
>
> Should I be able to change the query or should take a different approach?
>
> Karl Zinglersen
>
> _______________________________________________
> postgis-users mailing list
> postgis-users at lists.osgeo.org
> http://lists.osgeo.org/cgi-bin/mailman/listinfo/postgis-users


More information about the postgis-users mailing list