<div dir="ltr">I need to create transect lines across polygons for planning aerial surveys for musk oxen and caribous in Greenland.<div>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.</div><div>2. Lines must be equally spaced and parallel.</div><div>3. Lines must be perpendicular to the polygon centerline.</div><div>4. Centerline must run at the longest distance across the polygon - and consequently the transects run as the shorter distances.</div><div>I've attached a hand made sketch, which display the concept.</div><div><br></div><div>I've tried this query</div><div><pre class="lang-sql prettyprint prettyprinted" style="margin-bottom: 10px; padding: 5px; font-size: 12px; overflow: auto; width: auto; max-height: 600px; font-family: Consolas, Menlo, Monaco, 'Lucida Console', 'Liberation Mono', 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Courier New', monospace, serif; background-color: rgb(238, 238, 238); color: rgb(57, 51, 24); word-wrap: normal; line-height: 18px;"><code style="font-size: 12px; font-family: Consolas, Menlo, Monaco, 'Lucida Console', 'Liberation Mono', 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Courier New', monospace, serif; color: rgb(34, 34, 34);"><span class="kwd" style="font-size: 12px; color: rgb(138, 74, 11);">SELECT</span><span class="pln" style="font-size: 12px; color: black;"> GENERATE_SERIES</span><span class="pun" style="font-size: 12px; color: rgb(20, 86, 128);">(</span><span class="pln" style="font-size: 12px; color: black;">FLOOR</span><span class="pun" style="font-size: 12px; color: rgb(20, 86, 128);">(</span><span class="pln" style="font-size: 12px; color: black;">ST_YMin</span><span class="pun" style="font-size: 12px; color: rgb(20, 86, 128);">(</span><span class="pln" style="font-size: 12px; color: black;">the_polygon</span><span class="pun" style="font-size: 12px; color: rgb(20, 86, 128);">))::</span><span class="pln" style="font-size: 12px; color: black;">int </span><span class="pun" style="font-size: 12px; color: rgb(20, 86, 128);">,</span><span class="pln" style="font-size: 12px; color: black;"> CEILING</span><span class="pun" style="font-size: 12px; color: rgb(20, 86, 128);">(</span><span class="pln" style="font-size: 12px; color: black;">ST_YMax</span><span class="pun" style="font-size: 12px; color: rgb(20, 86, 128);">(</span><span class="pln" style="font-size: 12px; color: black;">the_polygon</span><span class="pun" style="font-size: 12px; color: rgb(20, 86, 128);">))::</span><span class="pln" style="font-size: 12px; color: black;">int</span><span class="pun" style="font-size: 12px; color: rgb(20, 86, 128);">,</span><span class="lit" style="font-size: 12px; color: rgb(149, 56, 56);">200</span><span class="pun" style="font-size: 12px; color: rgb(20, 86, 128);">)</span><span class="pln" style="font-size: 12px; color: black;"> y_value</span><span class="pun" style="font-size: 12px; color: rgb(20, 86, 128);">,</span><span class="pln" style="font-size: 12px; color: black;"> ST_XMin</span><span class="pun" style="font-size: 12px; color: rgb(20, 86, 128);">(</span><span class="pln" style="font-size: 12px; color: black;">the_polygon</span><span class="pun" style="font-size: 12px; color: rgb(20, 86, 128);">)</span><span class="pln" style="font-size: 12px; color: black;"> x_min</span><span class="pun" style="font-size: 12px; color: rgb(20, 86, 128);">,</span><span class="pln" style="font-size: 12px; color: black;"> ST_XMax</span><span class="pun" style="font-size: 12px; color: rgb(20, 86, 128);">(</span><span class="pln" style="font-size: 12px; color: black;">the_polygon</span><span class="pun" style="font-size: 12px; color: rgb(20, 86, 128);">)</span><span class="pln" style="font-size: 12px; color: black;"> x_max </span><span class="kwd" style="font-size: 12px; color: rgb(138, 74, 11);">from</span><span class="pln" style="font-size: 12px; color: black;"> 
            </span><span class="pun" style="font-size: 12px; color: rgb(20, 86, 128);">(</span><span class="kwd" style="font-size: 12px; color: rgb(138, 74, 11);">SELECT</span><span class="pln" style="font-size: 12px; color: black;"> the_geom </span><span class="kwd" style="font-size: 12px; color: rgb(138, 74, 11);">AS</span><span class="pln" style="font-size: 12px; color: black;"> the_polygon </span><span class="kwd" style="font-size: 12px; color: rgb(138, 74, 11);">FROM</span><span class="pln" style="font-size: 12px; color: black;"> lakes</span><span class="pun" style="font-size: 12px; color: rgb(20, 86, 128);">)</span><span class="pln" style="font-size: 12px; color: black;"> l</span></code></pre></div><div><div><br></div><pre class="lang-sql prettyprint prettyprinted" style="margin-bottom: 10px; padding: 5px; font-size: 12px; overflow: auto; width: auto; max-height: 600px; font-family: Consolas, Menlo, Monaco, 'Lucida Console', 'Liberation Mono', 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Courier New', monospace, serif; background-color: rgb(238, 238, 238); color: rgb(57, 51, 24); word-wrap: normal; line-height: 18px;"><code style="font-size: 12px; font-family: Consolas, Menlo, Monaco, 'Lucida Console', 'Liberation Mono', 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Courier New', monospace, serif; color: rgb(34, 34, 34);"><span class="kwd" style="font-size: 12px; color: rgb(138, 74, 11);">SELECT</span><span class="pln" style="font-size: 12px; color: black;"> ST_Intersection</span><span class="pun" style="font-size: 12px; color: rgb(20, 86, 128);">(</span><span class="pln" style="font-size: 12px; color: black;">the_geom</span><span class="pun" style="font-size: 12px; color: rgb(20, 86, 128);">,</span><span class="pln" style="font-size: 12px; color: black;"> the_polygon</span><span class="pun" style="font-size: 12px; color: rgb(20, 86, 128);">)</span><span class="pln" style="font-size: 12px; color: black;">  </span><span class="kwd" style="font-size: 12px; color: rgb(138, 74, 11);">AS</span><span class="pln" style="font-size: 12px; color: black;"> the_geom </span><span class="kwd" style="font-size: 12px; color: rgb(138, 74, 11);">FROM</span><span class="pln" style="font-size: 12px; color: black;">
    </span><span class="pun" style="font-size: 12px; color: rgb(20, 86, 128);">(</span><span class="kwd" style="font-size: 12px; color: rgb(138, 74, 11);">SELECT</span><span class="pln" style="font-size: 12px; color: black;"> the_polygon</span><span class="pun" style="font-size: 12px; color: rgb(20, 86, 128);">,</span><span class="pln" style="font-size: 12px; color: black;"> ST_Setsrid</span><span class="pun" style="font-size: 12px; color: rgb(20, 86, 128);">(</span><span class="pln" style="font-size: 12px; color: black;">ST_MakeLine</span><span class="pun" style="font-size: 12px; color: rgb(20, 86, 128);">(</span><span class="pln" style="font-size: 12px; color: black;">ST_MakePoint</span><span class="pun" style="font-size: 12px; color: rgb(20, 86, 128);">(</span><span class="pln" style="font-size: 12px; color: black;">x_min</span><span class="pun" style="font-size: 12px; color: rgb(20, 86, 128);">,</span><span class="pln" style="font-size: 12px; color: black;"> y_value</span><span class="pun" style="font-size: 12px; color: rgb(20, 86, 128);">),</span><span class="pln" style="font-size: 12px; color: black;">ST_MakePoint</span><span class="pun" style="font-size: 12px; color: rgb(20, 86, 128);">(</span><span class="pln" style="font-size: 12px; color: black;">x_max</span><span class="pun" style="font-size: 12px; color: rgb(20, 86, 128);">,</span><span class="pln" style="font-size: 12px; color: black;"> y_value</span><span class="pun" style="font-size: 12px; color: rgb(20, 86, 128);">)</span><span class="pln" style="font-size: 12px; color: black;"> </span><span class="pun" style="font-size: 12px; color: rgb(20, 86, 128);">),</span><span class="pln" style="font-size: 12px; color: black;"> ST_Srid</span><span class="pun" style="font-size: 12px; color: rgb(20, 86, 128);">(</span><span class="pln" style="font-size: 12px; color: black;">the_polygon</span><span class="pun" style="font-size: 12px; color: rgb(20, 86, 128);">))</span><span class="pln" style="font-size: 12px; color: black;"> </span><span class="kwd" style="font-size: 12px; color: rgb(138, 74, 11);">AS</span><span class="pln" style="font-size: 12px; color: black;"> the_geom </span><span class="kwd" style="font-size: 12px; color: rgb(138, 74, 11);">FROM</span><span class="pln" style="font-size: 12px; color: black;"> 
        </span><span class="pun" style="font-size: 12px; color: rgb(20, 86, 128);">(</span><span class="kwd" style="font-size: 12px; color: rgb(138, 74, 11);">SELECT</span><span class="pln" style="font-size: 12px; color: black;"> the_polygon</span><span class="pun" style="font-size: 12px; color: rgb(20, 86, 128);">,</span><span class="pln" style="font-size: 12px; color: black;"> GENERATE_SERIES</span><span class="pun" style="font-size: 12px; color: rgb(20, 86, 128);">(</span><span class="pln" style="font-size: 12px; color: black;">FLOOR</span><span class="pun" style="font-size: 12px; color: rgb(20, 86, 128);">(</span><span class="pln" style="font-size: 12px; color: black;">ST_YMin</span><span class="pun" style="font-size: 12px; color: rgb(20, 86, 128);">(</span><span class="pln" style="font-size: 12px; color: black;">the_polygon</span><span class="pun" style="font-size: 12px; color: rgb(20, 86, 128);">))::</span><span class="pln" style="font-size: 12px; color: black;">int </span><span class="pun" style="font-size: 12px; color: rgb(20, 86, 128);">,</span><span class="pln" style="font-size: 12px; color: black;"> CEILING</span><span class="pun" style="font-size: 12px; color: rgb(20, 86, 128);">(</span><span class="pln" style="font-size: 12px; color: black;">ST_YMax</span><span class="pun" style="font-size: 12px; color: rgb(20, 86, 128);">(</span><span class="pln" style="font-size: 12px; color: black;">the_polygon</span><span class="pun" style="font-size: 12px; color: rgb(20, 86, 128);">))::</span><span class="pln" style="font-size: 12px; color: black;">int</span><span class="pun" style="font-size: 12px; color: rgb(20, 86, 128);">,</span><span class="lit" style="font-size: 12px; color: rgb(149, 56, 56);">200</span><span class="pun" style="font-size: 12px; color: rgb(20, 86, 128);">)</span><span class="pln" style="font-size: 12px; color: black;"> y_value</span><span class="pun" style="font-size: 12px; color: rgb(20, 86, 128);">,</span><span class="pln" style="font-size: 12px; color: black;"> ST_XMin</span><span class="pun" style="font-size: 12px; color: rgb(20, 86, 128);">(</span><span class="pln" style="font-size: 12px; color: black;">the_polygon</span><span class="pun" style="font-size: 12px; color: rgb(20, 86, 128);">)</span><span class="pln" style="font-size: 12px; color: black;"> x_min</span><span class="pun" style="font-size: 12px; color: rgb(20, 86, 128);">,</span><span class="pln" style="font-size: 12px; color: black;"> ST_XMax</span><span class="pun" style="font-size: 12px; color: rgb(20, 86, 128);">(</span><span class="pln" style="font-size: 12px; color: black;">the_polygon</span><span class="pun" style="font-size: 12px; color: rgb(20, 86, 128);">)</span><span class="pln" style="font-size: 12px; color: black;"> x_max </span><span class="kwd" style="font-size: 12px; color: rgb(138, 74, 11);">from</span><span class="pln" style="font-size: 12px; color: black;"> 
            </span><span class="pun" style="font-size: 12px; color: rgb(20, 86, 128);">(</span><span class="kwd" style="font-size: 12px; color: rgb(138, 74, 11);">SELECT</span><span class="pln" style="font-size: 12px; color: black;"> the_geom </span><span class="kwd" style="font-size: 12px; color: rgb(138, 74, 11);">AS</span><span class="pln" style="font-size: 12px; color: black;"> the_polygon </span><span class="kwd" style="font-size: 12px; color: rgb(138, 74, 11);">FROM</span><span class="pln" style="font-size: 12px; color: black;"> lakes</span><span class="pun" style="font-size: 12px; color: rgb(20, 86, 128);">)</span><span class="pln" style="font-size: 12px; color: black;"> l
        </span><span class="pun" style="font-size: 12px; color: rgb(20, 86, 128);">)</span><span class="pln" style="font-size: 12px; color: black;">c </span></code></pre><div><span class="pln" style="font-family: Consolas, Menlo, Monaco, 'Lucida Console', 'Liberation Mono', 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Courier New', monospace, serif; font-size: 12px; background-color: rgb(238, 238, 238); line-height: 18px; color: black;">    </span><span class="pun" style="font-family: Consolas, Menlo, Monaco, 'Lucida Console', 'Liberation Mono', 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Courier New', monospace, serif; font-size: 12px; background-color: rgb(238, 238, 238); line-height: 18px; color: rgb(20, 86, 128);">)</span><span class="pln" style="font-family: Consolas, Menlo, Monaco, 'Lucida Console', 'Liberation Mono', 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Courier New', monospace, serif; font-size: 12px; background-color: rgb(238, 238, 238); line-height: 18px; color: black;"> lines</span> </div></div><div><br></div><div>from gis stackechange <a href="http://gis.stackexchange.com/questions/24064/filling-a-polygon-with-lines-using-postgis" style="font-size: 13px;">http://gis.stackexchange.com/questions/24064/filling-a-polygon-with-lines-using-postgis</a></div><div><br></div><div>however these transects runs horisontally and don't seem to take into account the shape and rotation of the polygon centerline.</div><div><br></div><div>Should I be able to change the query or should take a different approach?</div><div><br></div><div>Karl Zinglersen</div></div>