Geo::Coder::Google
場所の配列から座標のリストを取得するために使用しようとしています。私の問題は、場所の配列が別のスクリプトによって生成され、Google マップでは見つからない奇妙な場所、つまりCorseMétéoが含まれることがあります。
これにより、次のエラー メッセージが生成されます。
"Google Maps API returned error: 500 Can't connect to maps.google.com:80 (Bad hostname) at geoTest.pl line 24.".
私のコードは次のようになります:
#!/usr/bin/perl -w
use strict;
use locale;
use warnings;
#use diagnostics;
use utf8;
binmode(STDIN, "encoding(utf8)");
binmode(STDOUT, "encoding(utf8)");
binmode(STDERR, "encoding(utf8)");
use Geo::Coder::Google;
my @place = ('Daluis', 'Corse', 'CorseMétéo');
my ($long, $lat);
foreach my $place(@place){
my $geocoder = Geo::Coder::Google->new(apikey => '{MyAPIkey}');
my $response;
until (defined $response){
$response = $geocoder->geocode(location => $place);
}
($long, $lat) = @{ $response->{Point}{coordinates} };
print "$long\n";
print "$lat\n";
}
通常、この perl モジュールは番地の位置を特定するために使用されますが、より大きな地理的位置ではかなりうまく動作するようです。
誰かが同様の問題を抱えていましたか?
ありがとうございました。