On 2015-02-26 Jan Tosovsky wrote: > On 2015-02-26 Martin Davis wrote: > > On 2015-02-24 Jan Tosovsky wrote: > > > > > > http://drifted.in/other/jts/snapping.png (exaggerated) > > > > > > Can I somehow snap line fragment endpoints (blue) to the > > > specific path (red) if the distance is in a specified > > > tolerance? > > > > Have you looked at: DistanceOp.nearestPoints ? > > ... > > > > Or if you are working only with lines, look at LengthIndexedLine > > project() and extractPoint() > > Wow, thanks, it looks promising, I'll give it a try.
Hmm, see http://drifted.in/other/jts/jts_snap.png // RED Coordinate[] coords = new Coordinate[4]; coords[0] = new Coordinate(0, 0); coords[1] = new Coordinate(1, 0); coords[2] = new Coordinate(1, 1); coords[3] = new Coordinate(0, 1); Geometry reference = factory.createLineString(coords); // BLUE coords = new Coordinate[2]; coords[0] = new Coordinate(0.1, 0.5); coords[1] = new Coordinate(0.5, 0.1); Geometry geometry = factory.createLineString(coords); Coordinate[] nearestPoints = DistanceOp.nearestPoints(reference, geometry); for (Coordinate coordinate : nearestPoints) { System.out.println(coordinate.toString()); } // (0.5, 0.0, NaN) // (0.5, 0.1, NaN) So this method can be used for determining nearest points on two geometries, but it cannot be used for analyzing the oposite line endpoint. ================= The same data, but different handling: Coordinate[] coordsF = geometry.getCoordinates(); PointPairDistance distance = new PointPairDistance(); DistanceToPoint.computeDistance(reference, coordsF[0], distance); System.out.println(distance.toString()); // LINESTRING ( 0.1 0.0, 0.1 0.5 ) Here I'd expect rather LINESTRING ( 0.0 0.5, 0.1 0.5 ). Currently only Y axis difference seems to be taken into an account. Is it a bug or feature? Is there any way to get the minimum distance regardless X/Y direction? DistanceToPoint.computeDistance(reference, coordsF[coordsF.length - 1], distance); System.out.println(distance.toString()); // LINESTRING ( 0.5 0.0, 0.5 0.1 ) // This is correct. Thanks, Jan
<<attachment: winmail.dat>>
------------------------------------------------------------------------------ Dive into the World of Parallel Programming The Go Parallel Website, sponsored by Intel and developed in partnership with Slashdot Media, is your hub for all things parallel software development, from weekly thought leadership blogs to news, videos, case studies, tutorials and more. Take a look and join the conversation now. http://goparallel.sourceforge.net/
_______________________________________________ Jts-topo-suite-user mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/jts-topo-suite-user
