使用Perl从纬度和经度查找时区

uxh89sit  于 2023-01-21  发布在  Perl
关注(0)|答案(2)|浏览(142)

我正在寻找一种方法来使用Perl获得与给定的纬度和经度相对应的时区。任何运行在Linux上的程序都可以。
我有图片与时间在UTC和GPS坐标,我想用他们在一个网站上与当地时间和日期。
我在CPAN上找到了Geo::Location::TimeZone模块,看起来它可以完成这项工作,但它不工作,我仍在试图找出原因。

uqjltbpv

uqjltbpv1#

根据您需要执行的查找的数量和使用条款,Google Time Zone服务看起来使用起来微不足道。

use strict;
use warnings;

use LWP::Simple;
use JSON::Any;

my ($lat, $long) = (39.6034810,-119.6822510);
my $apikey = 'whatever';
my $time = time();

my $location = JSON::Any->jsonToObj(get("https://maps.googleapis.com/maps/api/timezone/json?location=$lat,$long&timestamp=$time&sensor=false&key=$apikey"));
say $location->{timeZoneId};    # America/Los_Angeles
say $location->{timeZoneName};  # Pacific Standard Time
ie3xauqp

ie3xauqp2#

我写了Geo::Location::TimeZoneFinder,它使用了Timezone Boundary Builder项目发布的shapefile,这个shapefile也可以和Geo::ShapeFile一起使用。

相关问题