Thanks Marcin, How do I actually put that into a GIS layer in order to review it?
Thanks Le gach dea ghui, *Shane Carey* *GIS and Data Solutions Consultant* On Fri, Oct 5, 2018 at 10:28 AM Marcin Mionskowski < [email protected]> wrote: > In your original mail the image didn't attach as Darafei wrote. Because of > that i think that you should tell us how you need the split to be done. > Can it be done in "custom" direction, or you need it to be "perpendicular > to the river"? > 1) If 1st - I would suggest to simply intersect your polygons with > generated lines (see code below). > 2) If 2nd, then how you want this perpendicularity to be defined? > Is it supposed to be perpendicular to the river axis/side? How the right > axis/side should be determined? Can you draw a line "by hand" or does it > have to be calculated? Do you realize that lines generated this way, can > and probably will intersect? > > Take a look at SQL below. It's little long, but also clear (in my > opinion), and it shows my approach step by step. > > WITH > floodplain AS ( > SELECT ST_SetSRID(ST_MakePolygon( > ST_GeomFromText('LINESTRING(100000 100000,100004 > 100000,100004 100004,100000 100004,100000 100000)'), > ARRAY[ST_GeomFromText('LINESTRING(100002 > 100002,100002 100003,100003 100003,100003 100002,100002 100002)')] > ),3035) geom > ) > , river AS ( > SELECT ST_SetSRID(ST_MakePolygon( > ST_GeomFromText('LINESTRING(100001 100000,100003 > 100000,100000 100003,100000 100002,100001 100000)') > ),3035) geom > ) > , min_max AS ( --I assume that floodplain polygon covers river polygon ( > https://postgis.net/docs/ST_Covers.html). > SELECT ST_XMin(geom) xmin > , ST_XMax(geom) xmax > , ST_YMin(geom) ymin > , ST_YMax(geom) ymax > FROM floodplain > ) > , gs AS ( > SELECT generate_series(ymin::INT,ymax::INT,1) gs --last parameter > is not required, change 1 to 0.5 for "better looking" numeric results in my > example > FROM min_max > ) > , splitlines AS ( > SELECT ST_SetSRID(ST_MakeLine(ST_MakePoint(xmin, gs), > ST_MakePoint(xmax, gs)),3035) geom > FROM gs > , min_max > ) > SELECT ST_Length(ST_Intersection(r.geom,s.geom)) river_width > ,ST_Length(ST_Intersection(f.geom,s.geom)) floodplain_width > > ,ST_Length(ST_Intersection(r.geom,s.geom))/ST_Length(ST_Intersection(f.geom,s.geom)) > river_floodplain_ratio > FROM floodplain f > , river r > , splitlines s > > Greetings, > Marcin > > On Wed, 03 Oct 2018 15:18:19 +0200, Shane Carey <[email protected]> > wrote: > > > Hi, > > > > Just wondering did anyone have a chance to look at my issue with regards > > the river and polygon dataset that I was trying to split up? > > > > Thanks > > > > Le gach dea ghui, > > *Shane Carey*
_______________________________________________ postgis-users mailing list [email protected] https://lists.osgeo.org/mailman/listinfo/postgis-users
