Hi Stefan, Perhaps you could use math to solve the problem (only if the points are in a Euclidean plane):
You have the coordinate of the point, and you have the coordinates of the endpoints of the line. As a third, you have the orthogonal distance between the point and the line. Next, you need to calculate the distance between one endpoint of the line, and the point. Mathworld: http://mathworld.wolfram.com/Point-PointDistance2-Dimensional.html Now you have 2 distances in the triangle, and you can use Pythagoras to solve your missing distance (the distance between the endpoint, and the orthogonal crossing point) Hope this helps, grtz, wouter -- Wouter http://blog.giswhat.be On 4 March 2010 13:35, Schuster Stefan <[email protected]> wrote: > Hi again, > > > > while trying to implement my suggested solution, I realised that it is not > only ugly, but it also doesn’t work, as there is no “CIRCLE” Geometry I > could use. > > Therefore, I really need help, thanks in advance! > > > > Stefan > > > > > > ________________________________ > > Von: Schuster Stefan [mailto:[email protected]] > Gesendet: Donnerstag, 4. März 2010 12:42 > An: [email protected] > Betreff: [Geotools-gt2-users] position on LineString that is closest to > Point > > > > Hi, > > > > Assume I have a Point p and a LineString ls. > > > > By the statement > > double dist = ls.distance(p) > > I easily can figure out the distance between them. > > > > But now I want to now the Point p_cut on the LineString that was used to > calculate the distance, more accurate I want to know the length of the > LineString from the beginning to the Point p_cut. > > > > Any suggestions? > > > > My first idea was to create a circle around Point p with a radius of > distance, and the intersection between this circle and the LineString is > point p_cut. > > To get the length of LineString from the beginning to this point the > following algorithm could do it: > > > > Create new empty line String lsCopy > > Add first coordinate of the original LineString to lsCopy > > DO > > Add next coordinate of the original LineString to lsCopy > > IF NOT lsCopy intersects p_cut THEN > > Continue; > > ELSE > > Remove last coordinate from ls_copy > > Add coordinates of p_cut to ls_copy > > WHILE original LineString has next coordinate > > > > > > I have not yet tried it, I guess it would work but this looks very ugly and > I wonder if there is a more beautiful solution? > > > > Thanks for help > > > > Stefan > > > > ------------------------------------------------------------------------------ > Download Intel® Parallel Studio Eval > Try the new software tools for yourself. Speed compiling, find bugs > proactively, and fine-tune applications for parallel performance. > See why Intel Parallel Studio got high marks during beta. > http://p.sf.net/sfu/intel-sw-dev > _______________________________________________ > Geotools-gt2-users mailing list > [email protected] > https://lists.sourceforge.net/lists/listinfo/geotools-gt2-users > > ------------------------------------------------------------------------------ Download Intel® Parallel Studio Eval Try the new software tools for yourself. Speed compiling, find bugs proactively, and fine-tune applications for parallel performance. See why Intel Parallel Studio got high marks during beta. http://p.sf.net/sfu/intel-sw-dev _______________________________________________ Geotools-gt2-users mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/geotools-gt2-users
