aboutsummaryrefslogtreecommitdiffstats
path: root/perllib/FixMyStreet/Geocode
diff options
context:
space:
mode:
authorMatthew Somerville <matthew-github@dracos.co.uk>2015-02-13 12:25:34 +0000
committerMatthew Somerville <matthew-github@dracos.co.uk>2015-02-13 12:25:34 +0000
commitd2569bfe991ce1635131a1b1cf67cd55c3f258a4 (patch)
tree99a9e07df04f8f8b25becf61cd09625ac1750694 /perllib/FixMyStreet/Geocode
parent0db002a977d00d0a6e11333e190de4746e009bfb (diff)
parentda63f72c27e16d491f9103b9a8cbdb2fd96d2b59 (diff)
Merge branch 'issues/fms-mobile/190'
Conflicts: perllib/FixMyStreet/Geocode/Google.pm
Diffstat (limited to 'perllib/FixMyStreet/Geocode')
-rw-r--r--perllib/FixMyStreet/Geocode/Bing.pm19
-rw-r--r--perllib/FixMyStreet/Geocode/FixaMinGata.pm41
-rw-r--r--perllib/FixMyStreet/Geocode/Google.pm19
-rw-r--r--perllib/FixMyStreet/Geocode/OSM.pm19
-rw-r--r--perllib/FixMyStreet/Geocode/Zurich.pm18
5 files changed, 53 insertions, 63 deletions
diff --git a/perllib/FixMyStreet/Geocode/Bing.pm b/perllib/FixMyStreet/Geocode/Bing.pm
index c62a87767..d7db10ae6 100644
--- a/perllib/FixMyStreet/Geocode/Bing.pm
+++ b/perllib/FixMyStreet/Geocode/Bing.pm
@@ -8,7 +8,7 @@ package FixMyStreet::Geocode::Bing;
use strict;
-use mySociety::Locale;
+use Utils;
# string STRING CONTEXT
# Looks up on Bing Maps API, and caches, a user-inputted location.
@@ -52,15 +52,14 @@ sub string {
|| $valid_locations[-1]{address}{locality} eq $_->{address}{locality}
);
- ( $latitude, $longitude ) = @{ $_->{point}->{coordinates} };
- # These co-ordinates are output as query parameters in a URL, make sure they have a "."
- mySociety::Locale::in_gb_locale {
- push (@$error, {
- address => $address,
- latitude => sprintf('%0.6f', $latitude),
- longitude => sprintf('%0.6f', $longitude)
- });
- };
+ ( $latitude, $longitude ) =
+ map { Utils::truncate_coordinate($_) }
+ @{ $_->{point}->{coordinates} };
+ push (@$error, {
+ address => $address,
+ latitude => $latitude,
+ longitude => $longitude
+ });
push (@valid_locations, $_);
}
diff --git a/perllib/FixMyStreet/Geocode/FixaMinGata.pm b/perllib/FixMyStreet/Geocode/FixaMinGata.pm
index 68e5bc8a5..3ad98b148 100644
--- a/perllib/FixMyStreet/Geocode/FixaMinGata.pm
+++ b/perllib/FixMyStreet/Geocode/FixaMinGata.pm
@@ -18,7 +18,7 @@ use strict;
use LWP::Simple;
use Memcached;
use XML::Simple;
-use mySociety::Locale;
+use Utils;
my $osmapibase = "http://www.openstreetmap.org/api/";
my $nominatimbase = "http://nominatim.openstreetmap.org/";
@@ -40,8 +40,8 @@ sub string {
my %query_params = (
q => $s,
format => 'json',
- addressdetails => 1,
- limit => 20,
+ addressdetails => 1,
+ limit => 20,
#'accept-language' => '',
email => 'info' . chr(64) . 'morus.se',
);
@@ -58,32 +58,25 @@ sub string {
my ( %locations, $error, @valid_locations, $latitude, $longitude );
foreach (@$js) {
- # These co-ordinates are output as query parameters in a URL, make sure they have a "."
- next if $_->{class} eq "boundary";
-
- my @s = split(/,/, $_->{display_name});
-
- my $address = join(",", @s[0,1,2]);
-
+ next if $_->{class} eq "boundary";
+ my @s = split(/,/, $_->{display_name});
+ my $address = join(",", @s[0,1,2]);
$locations{$address} = [$_->{lat}, $_->{lon}];
}
- my ($key) = keys %locations;
-
- return { latitude => $locations{$key}[0], longitude => $locations{$key}[1] } if scalar keys %locations == 1;
- return { error => _('Sorry, we could not find that location.') } if scalar keys %locations == 0;
-
- foreach $key (keys %locations) {
- ( $latitude, $longitude ) = ($locations{$key}[0], $locations{$key}[1]);
- mySociety::Locale::in_gb_locale {
- push (@$error, {
- address => $key,
- latitude => sprintf('%0.6f', $latitude),
- longitude => sprintf('%0.6f', $longitude)
- });
- };
+ foreach my $key (keys %locations) {
+ ( $latitude, $longitude ) =
+ map { Utils::truncate_coordinate($_) }
+ ($locations{$key}[0], $locations{$key}[1]);
+ push (@$error, {
+ address => $key,
+ latitude => $latitude,
+ longitude => $longitude
+ });
+ push (@valid_locations, $_);
}
+ return { latitude => $latitude, longitude => $longitude } if scalar @valid_locations == 1;
return { error => $error };
}
diff --git a/perllib/FixMyStreet/Geocode/Google.pm b/perllib/FixMyStreet/Geocode/Google.pm
index 8d3280ae7..35fcec36f 100644
--- a/perllib/FixMyStreet/Geocode/Google.pm
+++ b/perllib/FixMyStreet/Geocode/Google.pm
@@ -7,7 +7,7 @@
package FixMyStreet::Geocode::Google;
use strict;
-use mySociety::Locale;
+use Utils;
# string STRING CONTEXT
# Looks up on Google Maps API, and caches, a user-inputted location.
@@ -53,15 +53,14 @@ sub string {
next unless $_->{AddressDetails}->{Accuracy} >= 4;
my $address = $_->{address};
next unless $c->cobrand->geocoded_string_check( $address );
- ( $longitude, $latitude ) = @{ $_->{Point}->{coordinates} };
- # These co-ordinates are output as query parameters in a URL, make sure they have a "."
- mySociety::Locale::in_gb_locale {
- push (@$error, {
- address => $address,
- latitude => sprintf('%0.6f', $latitude),
- longitude => sprintf('%0.6f', $longitude)
- });
- };
+ ( $longitude, $latitude ) =
+ map { Utils::truncate_coordinate($_) }
+ @{ $_->{Point}->{coordinates} };
+ push (@$error, {
+ address => $address,
+ latitude => $latitude,
+ longitude => $longitude
+ });
push (@valid_locations, $_);
}
return { latitude => $latitude, longitude => $longitude } if scalar @valid_locations == 1;
diff --git a/perllib/FixMyStreet/Geocode/OSM.pm b/perllib/FixMyStreet/Geocode/OSM.pm
index 9a27b1576..f165963d7 100644
--- a/perllib/FixMyStreet/Geocode/OSM.pm
+++ b/perllib/FixMyStreet/Geocode/OSM.pm
@@ -12,7 +12,7 @@ use strict;
use LWP::Simple;
use Memcached;
use XML::Simple;
-use mySociety::Locale;
+use Utils;
my $osmapibase = "http://www.openstreetmap.org/api/";
my $nominatimbase = "http://nominatim.openstreetmap.org/";
@@ -50,15 +50,14 @@ sub string {
my ( $error, @valid_locations, $latitude, $longitude );
foreach (@$js) {
- # These co-ordinates are output as query parameters in a URL, make sure they have a "."
- ( $latitude, $longitude ) = ( $_->{lat}, $_->{lon} );
- mySociety::Locale::in_gb_locale {
- push (@$error, {
- address => $_->{display_name},
- latitude => sprintf('%0.6f', $latitude),
- longitude => sprintf('%0.6f', $longitude)
- });
- };
+ ( $latitude, $longitude ) =
+ map { Utils::truncate_coordinate($_) }
+ ( $_->{lat}, $_->{lon} );
+ push (@$error, {
+ address => $_->{display_name},
+ latitude => $latitude,
+ longitude => $longitude
+ });
push (@valid_locations, $_);
}
diff --git a/perllib/FixMyStreet/Geocode/Zurich.pm b/perllib/FixMyStreet/Geocode/Zurich.pm
index d0355e1e5..aad918b0e 100644
--- a/perllib/FixMyStreet/Geocode/Zurich.pm
+++ b/perllib/FixMyStreet/Geocode/Zurich.pm
@@ -15,7 +15,7 @@ use Digest::MD5 qw(md5_hex);
use File::Path ();
use Geo::Coordinates::CH1903;
use Storable;
-use mySociety::Locale;
+use Utils;
my ($soap, $method, $security);
@@ -92,14 +92,14 @@ sub string {
my ( $error, @valid_locations, $latitude, $longitude );
foreach (@$results) {
- ($latitude, $longitude) = Geo::Coordinates::CH1903::to_latlon($_->{easting}, $_->{northing});
- mySociety::Locale::in_gb_locale {
- push (@$error, {
- address => $_->{text},
- latitude => sprintf('%0.6f', $latitude),
- longitude => sprintf('%0.6f', $longitude)
- });
- };
+ ($latitude, $longitude) =
+ map { Utils::truncate_coordinate($_) }
+ Geo::Coordinates::CH1903::to_latlon($_->{easting}, $_->{northing});
+ push (@$error, {
+ address => $_->{text},
+ latitude => $latitude,
+ longitude => $longitude
+ });
push (@valid_locations, $_);
last if lc($_->{text}) eq lc($s);
}