diff options
author | Edmund von der Burg <evdb@ecclestoad.co.uk> | 2011-02-08 15:06:26 -0300 |
---|---|---|
committer | Edmund von der Burg <evdb@ecclestoad.co.uk> | 2011-02-08 15:06:26 -0300 |
commit | 25bae8206e17be0f3a0420b4e78987d66c941efa (patch) | |
tree | 1c5dddb457951aebc9a630f2dc27b2724081d67f | |
parent | 39ad32551edc48261ea3bd4f6e3519007471e227 (diff) |
added a helper sub
Fixes to get map pins working when map is moved
-rw-r--r-- | perllib/FixMyStreet/Map/Tilma/Original.pm | 24 |
1 files changed, 16 insertions, 8 deletions
diff --git a/perllib/FixMyStreet/Map/Tilma/Original.pm b/perllib/FixMyStreet/Map/Tilma/Original.pm index a8c44ccac..5f5a102ac 100644 --- a/perllib/FixMyStreet/Map/Tilma/Original.pm +++ b/perllib/FixMyStreet/Map/Tilma/Original.pm @@ -15,6 +15,11 @@ use Cobrand; use mySociety::Web qw(ent NewURL); use mySociety::GeoUtil qw(national_grid_to_wgs84); +sub _ll_to_en { + my ($lat, $lon) = @_; + return mySociety::GeoUtil::wgs84_to_national_grid( $lat, $lon, 'G' ); +} + sub header_js { return ' <script type="text/javascript" src="/js/map-tilma.js"></script> @@ -39,17 +44,14 @@ sub _display_map { # convert map center point to easting, northing ( $params{easting}, $params{northing} ) = - mySociety::GeoUtil::wgs84_to_national_grid( # - $params{latitude}, $params{longitude}, 'G' - ); + _ll_to_en( $params{latitude}, $params{longitude} ); # FIXME - convert all pins to lat, lng # all the pins are currently [lat, lng, colour] - convert them foreach my $pin ( @{ $params{pins} ||= [] } ) { - my ( $e, $n ) = ( $pin->[0], $pin->[1] ); - my ( $lat, $lon ) = - mySociety::GeoUtil::wgs84_to_national_grid( $e, $n, 'G' ); - ( $pin->[0], $pin->[1] ) = ( $lat, $lon ); + my ( $lat, $lon ) = ( $pin->[0], $pin->[1] ); + my ( $e, $n ) = _ll_to_en( $lat, $lon ); + ( $pin->[0], $pin->[1] ) = ( $e, $n ); } # X/Y tile co-ords may be overridden in the query string @@ -170,10 +172,14 @@ sub map_pins { my $e = FixMyStreet::Map::tile_to_os($x); my $n = FixMyStreet::Map::tile_to_os($y); - my ($around_map, $around_map_list, $nearby, $dist) = FixMyStreet::Map::map_features_easting_northing($q, $e, $n, $interval); + + my ( $around_map, $around_map_list, $nearby, $dist ) = + FixMyStreet::Map::map_features_easting_northing( $q, $e, $n, $interval ); my $pins = ''; foreach (@$around_map) { + ( $_->{easting}, $_->{northing} ) = + _ll_to_en( $_->{latitude}, $_->{longitude} ); my $px = FixMyStreet::Map::os_to_px($_->{easting}, $sx); my $py = FixMyStreet::Map::os_to_px($_->{northing}, $sy, 1); my $col = $_->{state} eq 'fixed' ? 'green' : 'red'; @@ -181,6 +187,8 @@ sub map_pins { } foreach (@$nearby) { + ( $_->{easting}, $_->{northing} ) = + _ll_to_en( $_->{latitude}, $_->{longitude} ); my $px = FixMyStreet::Map::os_to_px($_->{easting}, $sx); my $py = FixMyStreet::Map::os_to_px($_->{northing}, $sy, 1); my $col = $_->{state} eq 'fixed' ? 'green' : 'red'; |