summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authormartin-s <martin-s@ffa7fe5e-494d-0410-b361-a75ebd5db220>2008-05-13 12:15:24 +0000
committermartin-s <martin-s@ffa7fe5e-494d-0410-b361-a75ebd5db220>2008-05-13 12:15:24 +0000
commit9c2467e42ba04d6d948a2f2704ca0708842d35b9 (patch)
tree9fa09fff59c771841bc9b5112948e3d70f391be3
parent81f49c2173892b9c4efcf6a8dd87aa1d11922f15 (diff)
downloadnavit-svn-9c2467e42ba04d6d948a2f2704ca0708842d35b9.tar.gz
Fix:Core:Added offroad limit to tracking
git-svn-id: http://svn.code.sf.net/p/navit/code/trunk/navit/src@1044 ffa7fe5e-494d-0410-b361-a75ebd5db220
-rw-r--r--track.c9
1 files changed, 5 insertions, 4 deletions
diff --git a/track.c b/track.c
index 42c2db5e..3f08b9a0 100644
--- a/track.c
+++ b/track.c
@@ -45,9 +45,10 @@ struct tracking {
};
-int angle_factor=4;
+int angle_factor=30;
int connected_pref=-10;
int nostop_pref=10;
+int offroad_limit_pref=5000;
struct coord *
@@ -263,7 +264,7 @@ tracking_update(struct tracking *tr, struct coord *c, int angle)
dbg(2, "%d: (0x%x,0x%x)-(0x%x,0x%x)\n", i, sd->c[i].x, sd->c[i].y, sd->c[i+1].x, sd->c[i+1].y);
value=transform_distance_line_sq(&sd->c[i], &sd->c[i+1], c, &lpnt);
if (value < INT_MAX/2)
- value += tracking_angle_delta(angle, t->angle[i], dir)*angle_factor;
+ value += tracking_angle_delta(angle, t->angle[i], dir)*angle_factor>>4;
if (tracking_is_connected(tr->curr, &sd->c[i]))
value += connected_pref;
if (lpnt.x == tr->last_out.x && lpnt.y == tr->last_out.y)
@@ -286,8 +287,8 @@ tracking_update(struct tracking *tr, struct coord *c, int angle)
}
t=t->next;
}
- dbg(1,"tr->curr_line=%p\n", tr->curr_line);
- if (!tr->curr_line)
+ dbg(1,"tr->curr_line=%p min=%d\n", tr->curr_line, min);
+ if (!tr->curr_line || min > offroad_limit_pref)
return 0;
dbg(1,"found 0x%x,0x%x\n", tr->last_out.x, tr->last_out.y);
*c=tr->last_out;