aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDave Arter <davea@mysociety.org>2017-11-24 11:55:00 +0000
committerDave Arter <davea@mysociety.org>2017-11-24 15:02:23 +0000
commite4e245caf847b4fa8866ccecd0abf7b8d6a516a8 (patch)
tree2b813b4c14658140ce138358367d6f1c16b3a48d
parentd92f7d8f839623a0b11282073f377009d4f89220 (diff)
Ensure calculated lat/lon are sent to DB in correct format
When viewing /around without the `js=1` parameter in a Spanish locale the incorrect decimal separator was being passed to the DB query, causing a crash. Fixes mysociety/fixmystreet-commercial#942
-rw-r--r--CHANGELOG.md1
-rw-r--r--perllib/FixMyStreet/Map.pm12
2 files changed, 7 insertions, 6 deletions
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 5a4c65d6e..187322f61 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -33,6 +33,7 @@
- Stop page jumping too far down on inspect form. #1863
- Prevent multiple 'Expand map' links appearing. #1909
- Superusers without a from_body can make reports again. #1913
+ - Fix crash when viewing /around in certain locales. #1916
- Admin improvements:
- Character length limit can be placed on report detailed information #1848
- Inspector panel shows nearest address if available #1850
diff --git a/perllib/FixMyStreet/Map.pm b/perllib/FixMyStreet/Map.pm
index 0c75ab891..91c198913 100644
--- a/perllib/FixMyStreet/Map.pm
+++ b/perllib/FixMyStreet/Map.pm
@@ -83,13 +83,13 @@ sub map_features {
# use deltas that are roughly 500m in the UK - so we get a 1 sq km search box
my $lat_delta = 0.00438;
my $lon_delta = 0.00736;
- $p{min_lon} = $p{longitude} - $lon_delta;
- $p{min_lat} = $p{latitude} - $lat_delta;
- $p{max_lon} = $p{longitude} + $lon_delta;
- $p{max_lat} = $p{latitude} + $lat_delta;
+ $p{min_lon} = Utils::truncate_coordinate($p{longitude} - $lon_delta);
+ $p{min_lat} = Utils::truncate_coordinate($p{latitude} - $lat_delta);
+ $p{max_lon} = Utils::truncate_coordinate($p{longitude} + $lon_delta);
+ $p{max_lat} = Utils::truncate_coordinate($p{latitude} + $lat_delta);
} else {
- $p{longitude} = ($p{max_lon} + $p{min_lon} ) / 2;
- $p{latitude} = ($p{max_lat} + $p{min_lat} ) / 2;
+ $p{longitude} = Utils::truncate_coordinate(($p{max_lon} + $p{min_lon} ) / 2);
+ $p{latitude} = Utils::truncate_coordinate(($p{max_lat} + $p{min_lat} ) / 2);
}
$p{page} = $c->get_param('p') || 1;