diff options
author | Matthew Somerville <matthew@mysociety.org> | 2015-02-20 14:50:47 +0000 |
---|---|---|
committer | Matthew Somerville <matthew-github@dracos.co.uk> | 2015-02-20 16:39:56 +0000 |
commit | c79b9b54210cc5483bed03783417fbeb6ed422cb (patch) | |
tree | 587cb3eba33f205a0bbe1f5ba3b6bc34bb59c6ed /perllib | |
parent | 2e6b053a4b40876b200ccaa5e800168b097a7046 (diff) |
[UK] Output NI grid references to NI councils.
Diffstat (limited to 'perllib')
-rw-r--r-- | perllib/FixMyStreet/DB/ResultSet/Problem.pm | 24 | ||||
-rw-r--r-- | perllib/Utils.pm | 5 |
2 files changed, 17 insertions, 12 deletions
diff --git a/perllib/FixMyStreet/DB/ResultSet/Problem.pm b/perllib/FixMyStreet/DB/ResultSet/Problem.pm index 10d395684..cc0cc5242 100644 --- a/perllib/FixMyStreet/DB/ResultSet/Problem.pm +++ b/perllib/FixMyStreet/DB/ResultSet/Problem.pm @@ -295,16 +295,6 @@ sub send_reports { : _('The user could not locate the problem on a map, but to see the area around the location they entered'); $h{closest_address} = ''; - # If we are in the UK include eastings and northings, and nearest stuff - $h{easting_northing} = ''; - if ( $cobrand->country eq 'GB' ) { - - ( $h{easting}, $h{northing} ) = Utils::convert_latlon_to_en( $h{latitude}, $h{longitude} ); - - # email templates don't have conditionals so we need to farmat this here - $h{easting_northing} = "Easting/Northing: $h{easting}/$h{northing}\n\n"; - } - if ( $row->used_map ) { $h{closest_address} = $cobrand->find_closest( $h{latitude}, $h{longitude}, $row ); } @@ -407,6 +397,20 @@ sub send_reports { next; } + # If we are in the UK include eastings and northings, and nearest stuff + $h{easting_northing} = ''; + if ( $cobrand->country eq 'GB' ) { + + my $coordsyst = 'G'; + $coordsyst = 'I' if grep { /FixMyStreet::SendReport::NI/ } keys %reporters; + ( $h{easting}, $h{northing} ) = Utils::convert_latlon_to_en( $h{latitude}, $h{longitude}, $coordsyst ); + + # email templates don't have conditionals so we need to format this here + $h{easting_northing} = "Easting/Northing"; + $h{easting_northing} .= " (IE)" if $coordsyst eq 'I'; + $h{easting_northing} .= ": $h{easting}/$h{northing}\n\n"; + } + if (mySociety::Config::get('STAGING_SITE') && !mySociety::Config::get('SEND_REPORTS_ON_STAGING')) { # on a staging server send emails to ourselves rather than the bodies %reporters = map { $_ => $reporters{$_} } grep { /FixMyStreet::SendReport::(Email|NI|EmptyHomes)/ } keys %reporters; diff --git a/perllib/Utils.pm b/perllib/Utils.pm index 87e0bd7c9..243b98800 100644 --- a/perllib/Utils.pm +++ b/perllib/Utils.pm @@ -25,12 +25,13 @@ Takes the WGS84 latitude and longitude and returns OSGB36 easting and northing. =cut sub convert_latlon_to_en { - my ( $latitude, $longitude ) = @_; + my ( $latitude, $longitude, $coordsyst ) = @_; + $coordsyst ||= 'G'; local $SIG{__WARN__} = sub { die $_[0] }; my ( $easting, $northing ) = mySociety::Locale::in_gb_locale { - mySociety::GeoUtil::wgs84_to_national_grid( $latitude, $longitude, 'G' ); + mySociety::GeoUtil::wgs84_to_national_grid( $latitude, $longitude, $coordsyst ); }; return ( $easting, $northing ); |