在 Perl 中如何从任意地址获取纬度和经度?可以使用外部 API。
最佳答案
这是一个快速的 perl 函数,可以获取任意地址的纬度和经度。它使用来自 CPAN 和 Google 的 Geocode API 的 LWP::Simple 和 JSON。如果你想要完整的数据,你可以使用 json 或 xml,这个使用 json 并且只获取并返回纬度和经度。
use strict;
use LWP::Simple; # from CPAN
use JSON qw( decode_json ); # from CPAN
sub getLatLong($){
my ($address) = @_;
my $format = "json"; #can also to 'xml'
my $geocodeapi = "https://maps.googleapis.com/maps/api/geocode/";
my $url = $geocodeapi . $format . "?sensor=false&address=" . $address;
my $json = get($url);
my $d_json = decode_json( $json );
my $lat = $d_json->{results}->[0]->{geometry}->{location}->{lat};
my $lng = $d_json->{results}->[0]->{geometry}->{location}->{lng};
return ($lat, $lng);
}
关于perl - 使用 perl 和 Google 的 Geocode API 获取地址的纬度和经度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13716524/