summaryrefslogtreecommitdiff
path: root/navit/osd
diff options
context:
space:
mode:
authorsleske <sleske@ffa7fe5e-494d-0410-b361-a75ebd5db220>2012-09-24 19:35:03 +0000
committersleske <sleske@ffa7fe5e-494d-0410-b361-a75ebd5db220>2012-09-24 19:35:03 +0000
commitce37ee0d4cd2231208cbac036bae376ed9d88d33 (patch)
tree2593f6d5199ea1bab73aad55e28bd2f3b0e3d5b6 /navit/osd
parent0d7204c1ef582891eb4d0287763fb25fbe7edbfe (diff)
downloadnavit-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.c10
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];