---------------------------------------
> Date: Sun, 27 Sep 2015 20:59:31 +0200
> From: szy...@gmail.com
> To: viking-devel@lists.sourceforge.net
> Subject: [Viking-devel] Possible bug in scaling
>
> Hi,
>
> I found some strange behaviour of Viking.
>
> When I zoom out as much as possible and move map up and down, then scale
> label at the bottom of map increase and decrease. I expect that
> direction of this changes should switch on equator, but it isn't. It is
> about N 70. When I zoom in, border of changes goes to equator.
>
> Also, when I'm moving cursor to south, value on status bar skips from
> about S 79 to N 10.
>
> Does someone observe something that?
>

Sorry for the delay in replying, I had originally typed a longish reply which I 
subsequently lost.

Yes this is what one observes.

This could be considered an artefact of how Viking is drawing the scale bar and 
also to some extent the cursor position reading.

Primarily these are due to the projection used to draw the Earth's sphere on to 
a 2D surface, as such Viking defaults to using a Mercator projection (as per 
Google Maps + OSM).

See https://en.wikipedia.org/wiki/Web_Mercator

The projection holds true until about +/-85N/S (as it expands to infinity at 
the poles). Viking makes no attempt to limit the display to between these 
limits and so the cursor position values wrap around. (My impression that the 
mathematics works between +/-80N/S - which is what is observed in Viking's 
cursor readout).

Given that very few people live outside the 80N <-> 80S this is not too much of 
a problem for general usage of Viking.

This leads on the scale bar. The scale is actually only applicable to the 
current latitude - thus for areas covering typical walk/cycle activities or 
viewing a country the scale will be accurate. However when zoomed out to see 
whole continents or more where the view covers 10's of degrees of latitude the 
scale is somewhat arbitrary.

In fact Viking in vik_viewport_draw_scale() uses the latitude of the bottom of 
the screen (i.e. close to where the scale bar is drawn), hence causing the 
scroll bar to resize when it does when one moves the map.

I suspect you expect the scale to use the centre latitude of the map - which to 
be fair makes more sense - and I agree.

Try changing these in vikviewport.c:
    vik_viewport_screen_to_coord ( vvp, 0, vvp->height, &left );
    vik_viewport_screen_to_coord ( vvp, vvp->width/SCSIZE, vvp->height, &right 
);
to -->
    vik_viewport_screen_to_coord ( vvp, 0, vvp->height/2, &left );
    vik_viewport_screen_to_coord ( vvp, vvp->width/SCSIZE, vvp->height/2, 
&right );

I think I will commit this change.

> BR,
> Szymon
>
> ------------------------------------------------------------------------------
> _______________________________________________
> Viking-devel mailing list
> Viking-devel@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/viking-devel
> Viking home page: http://viking.sf.net/
                                          
------------------------------------------------------------------------------
Give your users amazing mobile app experiences with Intel XDK.
Use one codebase in this all-in-one HTML5 development environment.
Design, debug & build mobile apps & 2-D/3-D games for multiple OSs.
Then get your creation into app stores sooner, with many ways to monetize.
http://pubads.g.doubleclick.net/gampad/clk?id=254741551&iu=/4140
_______________________________________________
Viking-devel mailing list
Viking-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/viking-devel
Viking home page: http://viking.sf.net/

Reply via email to