我正在尝试使用Geo::Coder::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 模块用于地理定位街道地址,但它似乎在更大的地理位置上运行得很好。
有人有类似的问题吗?
谢谢你。