diff options
author | Matthew Somerville <matthew@mysociety.org> | 2020-07-16 13:08:56 +0100 |
---|---|---|
committer | Matthew Somerville <matthew@mysociety.org> | 2020-07-16 13:08:56 +0100 |
commit | 4770393b3de8d38649a66b9608048c15ec73347a (patch) | |
tree | d74345e076000d8e193532c6710dfd779d46768e | |
parent | 2915ec9562bcb43f981d08ed2fa64a13c78a6a58 (diff) |
Add aerial option to OSM maps.
-rw-r--r-- | CHANGELOG.md | 2 | ||||
-rw-r--r-- | perllib/FixMyStreet/Map/Bing.pm | 10 | ||||
-rw-r--r-- | perllib/FixMyStreet/Map/OSM.pm | 4 | ||||
-rw-r--r-- | templates/web/base/maps/bing.html | 9 | ||||
-rw-r--r-- | templates/web/base/maps/osm.html | 8 | ||||
-rw-r--r-- | web/js/map-OpenStreetMap.js | 7 |
6 files changed, 20 insertions, 20 deletions
diff --git a/CHANGELOG.md b/CHANGELOG.md index 2af6f052c..9f7dc615b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -9,7 +9,7 @@ - Add lazy image loading on list items. - Improve Bing geocoder results. - Add option of checking passwords against Have I Been Pwned. - - Add aerial maps option to Bing maps. + - Add aerial maps option to Bing and OSM maps. - Changes: - Mark user as active when sent an email alert. - Bugfixes: diff --git a/perllib/FixMyStreet/Map/Bing.pm b/perllib/FixMyStreet/Map/Bing.pm index 723dcd6dc..17bdc3a53 100644 --- a/perllib/FixMyStreet/Map/Bing.pm +++ b/perllib/FixMyStreet/Map/Bing.pm @@ -8,8 +8,6 @@ use strict; sub map_type { '' } -sub map_template { 'bing' } - sub map_javascript { [ '/vendor/OpenLayers/OpenLayers.fixmystreet.js', '/js/map-OpenLayers.js', @@ -31,14 +29,6 @@ sub get_quadkey { return $key; } -sub display_map { - my ($self, $c, %params) = @_; - - $params{aerial} = $c->get_param("aerial") ? 1 : 0; - - $self->SUPER::display_map($c, %params); -} - my $road_base = '//%s.ssl.ak.dynamic.tiles.virtualearth.net/comp/ch/%s?mkt=en-US&it=G,L&src=t&shading=hill&og=969&n=z'; my $aerial_base = '//%s.ssl.ak.dynamic.tiles.virtualearth.net/comp/ch/%s?mkt=en-US&it=A,G,L&src=t&og=969&n=z'; diff --git a/perllib/FixMyStreet/Map/OSM.pm b/perllib/FixMyStreet/Map/OSM.pm index 417fdca0b..47c1c8535 100644 --- a/perllib/FixMyStreet/Map/OSM.pm +++ b/perllib/FixMyStreet/Map/OSM.pm @@ -21,11 +21,13 @@ sub map_template { 'osm' } sub map_javascript { [ '/vendor/OpenLayers/OpenLayers.wfs.js', '/js/map-OpenLayers.js', + FixMyStreet->config('BING_MAPS_API_KEY') ? ('/js/map-bing-ol.js') : (), '/js/map-OpenStreetMap.js', ] } sub map_tiles { my ( $self, %params ) = @_; + return FixMyStreet::Map::Bing->map_tiles(%params) if $params{aerial}; my ( $x, $y, $z ) = ( $params{x_tile}, $params{y_tile}, $params{zoom_act} ); my $tile_url = $self->base_tile_url(); return [ @@ -59,6 +61,8 @@ sub display_map { if defined $c->get_param('lon'); $params{zoomToBounds} = $params{any_zoom} && !defined $c->get_param('zoom'); + $params{aerial} = $c->get_param("aerial") && FixMyStreet->config('BING_MAPS_API_KEY') ? 1 : 0; + my %data; $data{cobrand} = $c->cobrand; $data{distance} = $c->stash->{distance}; diff --git a/templates/web/base/maps/bing.html b/templates/web/base/maps/bing.html deleted file mode 100644 index d30fc2600..000000000 --- a/templates/web/base/maps/bing.html +++ /dev/null @@ -1,9 +0,0 @@ -[% map_sub_links = BLOCK %] - [% IF c.req.params.aerial %] - <a id="map_layer_toggle" href="[% c.uri_with( { aerial => 0 } ) %]">[% loc('Roads') %]</a> - [% ELSE %] - <a id="map_layer_toggle" href="[% c.uri_with( { aerial => 1 } ) %]">[% loc('Aerial') %]</a> - [% END %] -[% END %] - -[% map_html = INCLUDE maps/openlayers.html %] diff --git a/templates/web/base/maps/osm.html b/templates/web/base/maps/osm.html index 70d05929f..560055f3b 100644 --- a/templates/web/base/maps/osm.html +++ b/templates/web/base/maps/osm.html @@ -1,3 +1,11 @@ +[% map_sub_links = BLOCK %][% IF c.config.BING_MAPS_API_KEY %] + [% IF c.req.params.aerial %] + <a id="map_layer_toggle" href="[% c.uri_with( { aerial => 0 } ) %]">[% loc('Roads') %]</a> + [% ELSE %] + <a id="map_layer_toggle" href="[% c.uri_with( { aerial => 1 } ) %]">[% loc('Aerial') %]</a> + [% END %] +[% END %][% END %] + [% map.copyright = ''; # This is handled with OpenLayers.Control.Attribution map_html = INCLUDE maps/openlayers.html diff --git a/web/js/map-OpenStreetMap.js b/web/js/map-OpenStreetMap.js index 9ed3a2ee3..bd3497343 100644 --- a/web/js/map-OpenStreetMap.js +++ b/web/js/map-OpenStreetMap.js @@ -7,6 +7,13 @@ fixmystreet.maps.config = function() { new OpenLayers.Control.PermalinkFMS('map'), new OpenLayers.Control.PanZoomFMS({id: 'fms_pan_zoom' }) ]; + + if (OpenLayers.Layer.BingAerial) { + fixmystreet.layer_options = [ + { map_type: fixmystreet.map_type }, + { map_type: OpenLayers.Layer.BingAerial } + ]; + } }; // http://www.openstreetmap.org/openlayers/OpenStreetMap.js (added maxResolution) |