aboutsummaryrefslogtreecommitdiffstats
path: root/perllib/FixMyStreet/Map/WMTSBase.pm
diff options
context:
space:
mode:
Diffstat (limited to 'perllib/FixMyStreet/Map/WMTSBase.pm')
-rw-r--r--perllib/FixMyStreet/Map/WMTSBase.pm20
1 files changed, 14 insertions, 6 deletions
diff --git a/perllib/FixMyStreet/Map/WMTSBase.pm b/perllib/FixMyStreet/Map/WMTSBase.pm
index 13b6d8091..e35ae13c9 100644
--- a/perllib/FixMyStreet/Map/WMTSBase.pm
+++ b/perllib/FixMyStreet/Map/WMTSBase.pm
@@ -42,7 +42,8 @@ sub zoom_parameters {
# A hash of parameters used in calculations for map tiles
sub tile_parameters {
my $params = {
- url => '', # URL of the map tiles, up to the /{z}/{x}/{y} part
+ urls => [ '' ], # URL of the map tiles, up to the /{z}/{x}/{y} part
+ layer_names => [ '' ],
wmts_version => '1.0.0',
layer_style => '',
matrix_set => '',
@@ -206,14 +207,14 @@ sub get_map_hash {
numZoomLevels => $self->zoom_parameters->{default_zoom},
tile_size => $self->tile_parameters->{size},
tile_dpi => $self->tile_parameters->{dpi},
- tile_url => $self->tile_parameters->{url},
+ tile_urls => encode_json $self->tile_parameters->{urls},
tile_suffix => $self->tile_parameters->{suffix},
- layer_name => $self->tile_parameters->{layer_name},
+ layer_names => encode_json $self->tile_parameters->{layer_names},
layer_style => $self->tile_parameters->{layer_style},
matrix_set => $self->tile_parameters->{matrix_set},
map_projection => $self->tile_parameters->{projection},
- origin_x => $self->tile_parameters->{origin_x},
- origin_y => $self->tile_parameters->{origin_y},
+ origin_x => force_float_format($self->tile_parameters->{origin_x}),
+ origin_y => force_float_format($self->tile_parameters->{origin_y}),
scales => encode_json \@scales,
};
}
@@ -222,7 +223,7 @@ sub tile_base_url {
my $self = shift;
my $params = $self->tile_parameters;
return sprintf '%s/%s/%s/%s/%s',
- $params->{url}, $params->{wmts_version}, $params->{layer_name},
+ $params->{urls}[0], $params->{wmts_version}, $params->{layer_names}[0],
$params->{layer_style}, $params->{matrix_set};
}
@@ -336,4 +337,11 @@ sub click_to_wgs84 {
return ( $lat, $lon );
}
+sub force_float_format {
+ my $in = shift;
+ return mySociety::Locale::in_gb_locale {
+ sprintf( '%f', $in );
+ };
+}
+
1;