[GRASS-dev] [bug #2793] (grass) v.segment: side offset is ignored

Hamish hamish_nospam at yahoo.com
Thu May 3 08:08:02 EDT 2007


> > Markus Neteler via RT wrote:
> > > https://intevation.de/rt/webrt?serial_num=2793
> > > 
> > > Apparently Vect_point_on_line() lacks support for side offset.
> > > Indeed, it doesn't even have such a parameter.
> 
> Hamish:
> > if we know the slope of the line at the point (angle*), it is easy
> > enough to calculate a point perpendicular to it (in the x,y plane)
> > offset by a certain distance with a little trig.

now functional in CVS. please test.

Backport to 6.2 or comment out references to offset in the help page?

> > shift offset to the left or right?

I have set it to shift to the left as you go along the line, for little
reason other than I had to pick something and that's the side of the
road we drive on here. If there is a reason to have positive offsets
shift to the right (e.g. v.lrs or vector topology side 1,2 conventions;
Cartesian axes make +x go to the right; electro-magnetic interactions;
other..) let me know and I'll swap it.

Untested on 3D points & lines. Right now it outputs in the xy plane, but
full 3D points would be possible using Vect_point_on_line(...,slope);
(probably reuse Lat/lon code for that!) but offset is only 1D right now.
Vect_line_parallel() is only 2D AFAICT, so lines would require more
work, but would be a cool feature to have. (but again with the 1D offset)


still open:
> can anyone compose a nice example (x2) for the v.segment help page?


Hamish




More information about the grass-dev mailing list