aboutsummaryrefslogtreecommitdiffstats
path: root/perllib/FixMyStreet/Map/WMTSBase.pm
diff options
context:
space:
mode:
authorDave Arter <davea@mysociety.org>2016-06-29 11:07:36 +0100
committerDave Arter <davea@mysociety.org>2016-07-07 11:28:33 +0100
commit5b9670512542f54588cc89f2eefc943db26b9ee2 (patch)
treeb929b12826b3a916e68003559a222bd62f4ac53f /perllib/FixMyStreet/Map/WMTSBase.pm
parent6d3cbb5d58c0297959c541da50faaf39884ffe1c (diff)
[Zurich] Use new LV95/CH1903+ geocoder and base map tiles
- Use new `getLocation95` method for geocoding addresses - Replace Coordinates::CH1903 with Coordinates::CH1903Plus - Refactor Map::Zurich to use WMTSBase instead of duplicating code - Slightly refactor map templates to make using custom WMTS tiles easier - Use correct sizes for marker pins on maps Closes mysociety/FixMyStreet-Commercial#769. Closes mysociety/FixMyStreet-Commercial#768.
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;