code I item #378, was opened at 2007-04-22 22:57
Status: Open
Priority: 3
Submitted By: Hamish Bowman (hamish)
Assigned to: Nobody (None)
Summary: v.distance: bogus distances for Lat/Lon locations
Issue type: module bug
Issue status: None
GRASS version: 6.2
GRASS component: vector
Operating system: all
Operating system version:
GRASS CVS checkout date, if applies (YYMMDD):
Initial Comment:
Hi,
v.distance in a lat/lon location gives distances in degrees, which is useless in most cases as lat and lon are not equally scaled and the result is a line at some given angle.
[v.distance/main.c line 470]
tseg = Vect_line_distance ( TPoints, FPoints->x[0], FPoints->y[0], 0, 0,
&tmp_tx, &tmp_ty, NULL, &tmp_dist, NULL, &tmp_talong);
From looking at
lib/vector/Vlib/line.c Vect_line_distance()
and
lib/vector/diglib/line_dist.c dig_distance2_point_to_line()
I take it Vect_line_distance() is assuming euclidian space.
perhaps Vect_line_distance() should be using Vect_line_geodesic_length(), or more simply G_geodesic_distance(), when (G_projection() == PROJECTION_LL) ?
thanks,
Hamish
----------------------------------------------------------------------
You can respond by visiting:
http://wald.intevation.org/tracker/?func=detail&atid=204&aid=378&group_id=21