perl - GeoLite2 是否提供坐标?
问题描述
我很困惑,免费的 GeoLite2 数据库是否不再提供坐标(纬度、经度)?
我一直在使用 GeoLite,并且能够使用Geo::IP
和->latitude
调用来获取坐标。我查看了文档并 greppedGeoIP2::Database::Reader
但没有引用坐标。似乎只有在通过 Web API 查询 Maxmind 时才可用。
注意:经过仔细考虑,考虑到客户的反馈,我们决定不从 GeoLite2 数据库中删除纬度和经度坐标。
Maxmind 似乎暗示它应该仍然存在?但是如何使用 Perl 访问它呢?
解决方案
GeoLite2 提供纬度和经度。使用 Perl GeoIP2
API,您应该能够访问如下:
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% 置信度)。
推荐阅读
- .net-standard - .Net 标准项目依赖项
- apache - Websocket 在 Chrome 上连接,但在 Firefox 上没有
- r - 从 NC 文件中提取月度和年度温度数据
- elasticsearch - Logstash 匹配多个值
- laravel - 路由器视图未加载
- html - 显示具有变量名称并控制宽度%的并排图像
- c - 使用 FFMPEG 从 NV12 原始数据转换为 H264 时出现颜色不匹配
- arrays - Excel 到特定组织格式的文本
- android - Android Studio 在项目选项卡中缺少“外部库”
- rust - 如何在 actix-web 中解析查询字符串?