diff options
author | sleske <sleske@ffa7fe5e-494d-0410-b361-a75ebd5db220> | 2012-09-24 19:35:03 +0000 |
---|---|---|
committer | sleske <sleske@ffa7fe5e-494d-0410-b361-a75ebd5db220> | 2012-09-24 19:35:03 +0000 |
commit | ce37ee0d4cd2231208cbac036bae376ed9d88d33 (patch) | |
tree | 2593f6d5199ea1bab73aad55e28bd2f3b0e3d5b6 /navit/osd | |
parent | 0d7204c1ef582891eb4d0287763fb25fbe7edbfe (diff) | |
download | navit-svn-ce37ee0d4cd2231208cbac036bae376ed9d88d33.tar.gz |
Fix:osd_core:Calculate map scale in screen center; (partial) fix for #985.
git-svn-id: http://svn.code.sf.net/p/navit/code/trunk/navit@5240 ffa7fe5e-494d-0410-b361-a75ebd5db220
Diffstat (limited to 'navit/osd')
-rw-r--r-- | navit/osd/core/osd_core.c | 10 |
1 files changed, 4 insertions, 6 deletions
diff --git a/navit/osd/core/osd_core.c b/navit/osd/core/osd_core.c index 41da193b..5852a141 100644 --- a/navit/osd/core/osd_core.c +++ b/navit/osd/core/osd_core.c @@ -3346,7 +3346,6 @@ osd_scale_draw(struct osd_priv_common *opc, struct navit *nav) struct point item_pos,scale_line_start,scale_line_end; struct point p[10],bbox[4]; - struct coord c[2]; struct attr transformation,imperial_attr; int scale_x_offset,scale_length_on_map,scale_length_pixels; double distance_on_map; @@ -3374,15 +3373,14 @@ osd_scale_draw(struct osd_priv_common *opc, struct navit *nav) scale_line_start.x+=(scale_item.w-width_reduced)/2; scale_line_end=scale_line_start; scale_line_end.x+=width_reduced; - p[0]=scale_line_start; - p[1]=scale_line_end; - transform_reverse(transformation.u.transformation, &p[0], &c[0]); - transform_reverse(transformation.u.transformation, &p[1], &c[1]); - distance_on_map=transform_distance(transform_get_projection(transformation.u.transformation), &c[0], &c[1]); + + distance_on_map=transform_pixels_to_map_distance(transformation.u.transformation, width_reduced); scale_length_on_map=round_to_nice_value(distance_on_map); scale_length_pixels=scale_length_on_map/distance_on_map*width_reduced; scale_x_offset=(scale_item.w-scale_length_pixels) / 2; + p[0]=scale_line_start; + p[1]=scale_line_end; p[0].x+=scale_x_offset; p[1].x-=scale_x_offset; p[2]=p[0]; |