首页 > 解决方案 > GeoLite2 是否提供坐标?

问题描述

我很困惑,免费的 GeoLite2 数据库是否不再提供坐标(纬度、经度)?

我一直在使用 GeoLite,并且能够使用Geo::IP->latitude调用来获取坐标。我查看了文档并 greppedGeoIP2::Database::Reader但没有引用坐标。似乎只有在通过 Web API 查询 Maxmind 时才可用。

注意:经过仔细考虑,考虑到客户的反馈,我们决定不从 GeoLite2 数据库中删除纬度和经度坐标。

Maxmind 似乎暗示它应该仍然存在?但是如何使用 Perl 访问它呢?

标签: perlgeoipgeoip2geolite2geolitecity

解决方案


GeoLite2 提供纬度和经度。使用 Perl GeoIP2API,您应该能够访问如下:

my $reader = GeoIP2::Database::Reader->new(
    file    => '/path/to/database',
);
my $city = $reader->city( ip => '24.24.24.24' );
say $city->location->latitude;
say $city->location->longitude;

请注意,这些坐标是粗略估计。请参阅以公里$city->location->accuracy_radius为单位的坐标的估计精度(67% 置信度)。


推荐阅读