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
commit22db9cc2aee8b5ddd6fd6ee2b818e2b4d1704f6f (patch)
tree2593f6d5199ea1bab73aad55e28bd2f3b0e3d5b6 /navit/osd
parent36c0b9e1468ad877f760175c0ae6027ef55e186a (diff)
downloadnavit-22db9cc2aee8b5ddd6fd6ee2b818e2b4d1704f6f.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 41da193b4..5852a141d 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];