Ayway St_split and St_snap don't work SELECT line, point, st_contains (st_snap (geom_line, geom_point,0.001), geom_point), st_geometrytype ((st_dump(ST_split(st_snap (geom_line, geom_point,0.001), geom_point))).geom), (st_dump(ST_split(st_snap (geom_line, geom_point,0.001), geom_point))).geom as splitted_geometry
give "id";"line";"point";"st_contains";"st_geometrytype";"splitted_geometry" 1;7646;11764;t;"ST_LineString";"0102000020BB0B000006000000A4703D0A471F37412D211F04AF335341FAEDEBE0491F3741325530C2AE335341BD5296014F1F37418FC2F578AE3353414694F606521F3741D2DEE07BAE3353412D211F74541F37418FC2F578AE3353415713362F611F37410D996234AF335341" 2;7646;11764;t;"ST_LineString";"0102000020BB0B0000020000005713362F611F37410D996234AF33534123B9FC675020374112143FF6BC335341" 3;7646;11769;t;"ST_LineString";"0102000020BB0B000006000000A4703D0A471F37412D211F04AF335341FAEDEBE0491F3741325530C2AE335341BD5296014F1F37418FC2F578AE3353414694F606521F3741D2DEE07BAE3353412D211F74541F37418FC2F578AE3353415EF0DD584620374139BF2762BC335341" 4;7646;11769;t;"ST_LineString";"0102000020BB0B0000020000005EF0DD584620374139BF2762BC33534123B9FC675020374112143FF6BC335341" 5;7646;11762;t;"ST_LineString";"0102000020BB0B000006000000A4703D0A471F37412D211F04AF335341FAEDEBE0491F3741325530C2AE335341BD5296014F1F37418FC2F578AE3353414694F606521F3741D2DEE07BAE3353412D211F74541F37418FC2F578AE335341A5CBC785841F374156A2A33CB1335341" 6;7646;11762;t;"ST_LineString";"0102000020BB0B000002000000A5CBC785841F374156A2A33CB133534123B9FC675020374112143FF6BC335341" St_geometrytype=ST_LineString but in qgis I have point and line. point splitted geometry (id =2,4,6) = geom_point (starting gometry) line splitted geometry (id =1,3,5) = geom_line (starting gometry) 2013/10/29 franco base <[email protected]> > Hi. > Yes the cause can be that every function has his own "tolerance" > > SELECT line,geom_line,point,geom_point, > ST_ClosestPoint(geom_line,geom_point), ----- return geometry=geom_point > ST_distance (geom_line,geom_point), ---- return 0 > ST_contains(geom_line,geom_point) ---- return false > > > "line";"geom_line";"point";"geom_point";"st_closestpoint";"st_distance";"st_contains" > > 7646;"0102000020BB0B000006000000A4703D0A471F37412D211F04AF335341FAEDEBE0491F3741325530C2AE335341BD5296014F1F37418FC2F578AE3353414694F606521F3741D2DEE07BAE3353412D211F74541F37418FC2F578AE33534123B9FC675020374112143FF6BC335341";11764;"0101000020BB0B00005713362F611F37410D996234AF335341";"0101000020BB0B00005713362F611F37410D996234AF335341";0;f > > 7646;"0102000020BB0B000006000000A4703D0A471F37412D211F04AF335341FAEDEBE0491F3741325530C2AE335341BD5296014F1F37418FC2F578AE3353414694F606521F3741D2DEE07BAE3353412D211F74541F37418FC2F578AE33534123B9FC675020374112143FF6BC335341";11769;"0101000020BB0B00005EF0DD584620374139BF2762BC335341";"0101000020BB0B00005EF0DD584620374139BF2762BC335341";0;f > > 7646;"0102000020BB0B000006000000A4703D0A471F37412D211F04AF335341FAEDEBE0491F3741325530C2AE335341BD5296014F1F37418FC2F578AE3353414694F606521F3741D2DEE07BAE3353412D211F74541F37418FC2F578AE33534123B9FC675020374112143FF6BC335341";11762;"0101000020BB0B0000A5CBC785841F374156A2A33CB1335341";"0101000020BB0B0000A5CBC785841F374156A2A33CB1335341";0;f > > Remi I don't undesrtand very well your tip to translate date and use > St_SnapToGrid > > I cannot snap (using St_Snap) line to point because I'm working on a road > network and I cannot move the line versus point. > > > Thanks > fb > > > 2013/10/28 Rémi Cura <[email protected]> > >> I had the same problem, >> all function don't react the same way when hitting precision limit. >> >> You may want to translate your data to reduce digits, and/or use >> ST_SnapToGrid on everything before using ST_ClosestPoint. >> >> Cheers, >> Rémi-C >> >> >> 2013/10/28 Nicolas Ribot <[email protected]> >> >>> Hmm this is strange: >>> >>> Finding the closest point (st_closestPoint) or using >>> st_lineLocatePoint to project point onto the line does not work either >>> on the provided dataset. >>> Though the st_distance(line, point) returns 0. >>> >>> Nicolas >>> >>> >>> >>> On 28 October 2013 18:42, Rémi Cura <[email protected]> wrote: >>> > You may want to split not with point but with the projected point one >>> line >>> > (use http://postgis.refractions.net/docs/ST_ClosestPoint.html) >>> > If it is not enough, you may want to translate all your geometries to >>> reduce >>> > the number of digits in coordinates. >>> > Another possibility is to use ST_Snap to snap line to point (won't >>> work the >>> > other way) >>> > >>> > Cheers, >>> > Rémi-C >>> > >>> > >>> > 2013/10/28 Nicolas Ribot <[email protected]> >>> >> >>> >> Hi, >>> >> >>> >> The points are not on the line, probably due to rounding errors. >>> >> >>> >> st_contains(line, point) returns false. >>> >> >>> >> Nicolas >>> >> >>> >> On 28 October 2013 18:07, franco base <[email protected]> wrote: >>> >> > Hi. >>> >> > I have a set of linestring and point on linestring. >>> >> > I want cut the linestring on the point. >>> >> > I can have n points for one linestring, >>> >> > so I use ST_Split >>> >> > (insted of ST_Line_Interpolate_Point and ST_Line_Substring) >>> >> > but it doesn't work. >>> >> > >>> >> > line;geom_line;point;geom_point >>> >> > >>> >> > >>> 7646;"0102000020BB0B000006000000A4703D0A471F37412D211F04AF335341FAEDEBE0491F3741325530C2AE335341BD5296014F1F37418FC2F578AE3353414694F606521F3741D2DEE07BAE3353412D211F74541F37418FC2F578AE33534123B9FC675020374112143FF6BC335341";11764;"0101000020BB0B00005713362F611F37410D996234AF335341" >>> >> > >>> >> > >>> 7646;"0102000020BB0B000006000000A4703D0A471F37412D211F04AF335341FAEDEBE0491F3741325530C2AE335341BD5296014F1F37418FC2F578AE3353414694F606521F3741D2DEE07BAE3353412D211F74541F37418FC2F578AE33534123B9FC675020374112143FF6BC335341";11769;"0101000020BB0B00005EF0DD584620374139BF2762BC335341" >>> >> > >>> >> > >>> 7646;"0102000020BB0B000006000000A4703D0A471F37412D211F04AF335341FAEDEBE0491F3741325530C2AE335341BD5296014F1F37418FC2F578AE3353414694F606521F3741D2DEE07BAE3353412D211F74541F37418FC2F578AE33534123B9FC675020374112143FF6BC335341";11762;"0101000020BB0B0000A5CBC785841F374156A2A33CB1335341" >>> >> > >>> >> > ST_GeometryType(St_Split(geom_line, geom_point)) >>> >> > give "ST_GeometryCollection" >>> >> > >>> >> > but >>> >> > >>> >> > (ST_Dump(ST_Split(geom_line, geom_point))).geom >>> >> > >>> >> > return only 3 linestring (one for record) and the geometry is egual >>> to >>> >> > geom_line >>> >> > >>> >> > >>> >> > thanks. >>> >> > >>> >> > fb >>> >> > >>> >> > _______________________________________________ >>> >> > postgis-users mailing list >>> >> > [email protected] >>> >> > http://lists.osgeo.org/cgi-bin/mailman/listinfo/postgis-users >>> >> _______________________________________________ >>> >> postgis-users mailing list >>> >> [email protected] >>> >> http://lists.osgeo.org/cgi-bin/mailman/listinfo/postgis-users >>> > >>> > >>> > >>> > _______________________________________________ >>> > postgis-users mailing list >>> > [email protected] >>> > http://lists.osgeo.org/cgi-bin/mailman/listinfo/postgis-users >>> _______________________________________________ >>> postgis-users mailing list >>> [email protected] >>> http://lists.osgeo.org/cgi-bin/mailman/listinfo/postgis-users >>> >> >> >> _______________________________________________ >> postgis-users mailing list >> [email protected] >> http://lists.osgeo.org/cgi-bin/mailman/listinfo/postgis-users >> > >
_______________________________________________ postgis-users mailing list [email protected] http://lists.osgeo.org/cgi-bin/mailman/listinfo/postgis-users
