aboutsummaryrefslogtreecommitdiffstats
path: root/perllib/FixMyStreet/Map/Google.pm
diff options
context:
space:
mode:
authorMarius Halden <marius.h@lden.org>2021-10-07 13:32:40 +0200
committerMarius Halden <marius.h@lden.org>2021-10-07 13:32:40 +0200
commit09dacfc6b8bf62addeee16c20b1d90c2a256da96 (patch)
tree7caa2bf9e92227ab74448f9b746dd28bbcb81b2a /perllib/FixMyStreet/Map/Google.pm
parent585e57484f9c6332668bf1ac0a6a3b39dbe32223 (diff)
parentcea89fb87a96943708a1db0f646492fbfaaf000f (diff)
Merge tag 'v3.1' into fiksgatami-devfiksgatami-dev
Diffstat (limited to 'perllib/FixMyStreet/Map/Google.pm')
-rw-r--r--perllib/FixMyStreet/Map/Google.pm25
1 files changed, 16 insertions, 9 deletions
diff --git a/perllib/FixMyStreet/Map/Google.pm b/perllib/FixMyStreet/Map/Google.pm
index c1fb05e43..dfebef5a3 100644
--- a/perllib/FixMyStreet/Map/Google.pm
+++ b/perllib/FixMyStreet/Map/Google.pm
@@ -10,8 +10,9 @@ use strict;
use FixMyStreet::Gaze;
use Utils;
-use constant ZOOM_LEVELS => 6;
+use constant ZOOM_LEVELS => 7;
use constant MIN_ZOOM_LEVEL => 13;
+use constant DEFAULT_ZOOM => 3;
sub map_javascript { [
"http://maps.googleapis.com/maps/api/js?sensor=false",
@@ -28,16 +29,16 @@ sub display_map {
my $numZoomLevels = ZOOM_LEVELS;
my $zoomOffset = MIN_ZOOM_LEVEL;
- if ($params{any_zoom}) {
- $numZoomLevels = 19;
- $zoomOffset = 0;
- }
# Adjust zoom level dependent upon population density
- my $dist = $c->stash->{distance}
- || FixMyStreet::Gaze::get_radius_containing_population( $params{latitude}, $params{longitude} );
- my $default_zoom = $c->cobrand->default_map_zoom() ? $c->cobrand->default_map_zoom() : $numZoomLevels - 4;
- $default_zoom = $numZoomLevels - 3 if $dist < 10;
+ my $default_zoom;
+ if (my $cobrand_default_zoom = $c->cobrand->default_map_zoom) {
+ $default_zoom = $cobrand_default_zoom;
+ } else {
+ my $dist = $c->stash->{distance}
+ || FixMyStreet::Gaze::get_radius_containing_population( $params{latitude}, $params{longitude} );
+ $default_zoom = $dist < 10 ? $self->DEFAULT_ZOOM : $self->DEFAULT_ZOOM - 1;
+ }
# Map centre may be overridden in the query string
$params{latitude} = Utils::truncate_coordinate($c->get_param('lat') + 0)
@@ -46,6 +47,12 @@ sub display_map {
if defined $c->get_param('lon');
$params{zoomToBounds} = $params{any_zoom} && !defined $c->get_param('zoom');
+ if ($params{any_zoom}) {
+ $numZoomLevels += $zoomOffset;
+ $default_zoom += $zoomOffset;
+ $zoomOffset = 0;
+ }
+
my $zoom = defined $c->get_param('zoom') ? $c->get_param('zoom') + 0 : $default_zoom;
$zoom = $numZoomLevels - 1 if $zoom >= $numZoomLevels;
$zoom = 0 if $zoom < 0;