X-Git-Url: https://git.street.me.uk/andy/viking.git/blobdiff_plain/92806042fbacaadd1a9216d01c7b2503ede459af..ab4553c3321e7d41330252da08d42a4c3b558110:/src/vikwebtoolcenter.c diff --git a/src/vikwebtoolcenter.c b/src/vikwebtoolcenter.c index eed97c1c..7ba2ad77 100644 --- a/src/vikwebtoolcenter.c +++ b/src/vikwebtoolcenter.c @@ -207,7 +207,11 @@ static guint8 webtool_center_mpp_to_zoom ( VikWebtool *self, gdouble mpp ) { return i; } } - return 255; + // Handle mpp smaller than 1 + // return a useful value such that '17 - this number' gives a natural number. + // Ideally should return '-1' or '0.5' but that's tricky with an unsigned int type! + // (i.e. should rework to support zoom levels of 18 or 19) + return 0; } static gchar *webtool_center_get_url ( VikWebtool *self, VikWindow *vwindow ) @@ -226,9 +230,11 @@ static gchar *webtool_center_get_url ( VikWebtool *self, VikWindow *vwindow ) coord = vik_viewport_get_center ( viewport ); vik_coord_to_latlon ( coord, &ll ); - // zoom - g_assert ( vik_viewport_get_xmpp ( viewport ) == vik_viewport_get_ympp ( viewport ) ); - zoom = vik_webtool_center_mpp_to_zoom ( self, vik_viewport_get_zoom ( viewport ) ); + // zoom - ideally x & y factors need to be the same otherwise use a default + if ( vik_viewport_get_xmpp ( viewport ) == vik_viewport_get_ympp ( viewport ) ) + zoom = vik_webtool_center_mpp_to_zoom ( self, vik_viewport_get_zoom ( viewport ) ); + else + zoom = 1.0; // Cannot simply use g_strdup_printf and gdouble due to locale. // As we compute an URL, we have to think in C locale.