dockflow/geonames

一个与 geonames.org 地理位置服务交互的 Laravel (php) 包。

这个包的官方仓库似乎已消失,因此该包已被冻结。

2.0.5 2019-12-15 16:40 UTC

README

Latest Stable Version Total Downloads License

一个用于与 geonames.org 地理位置服务交互的 Laravel (php) 包。

备注

为了让这个包“完善”,还有很多工作要做。我已经把它做到可以用于我的下一个项目。有时间的话,我会改进这个包的文档和测试。感谢理解。

安装

composer require michaeldrennen/geonames

然后在 app.php 配置文件中的 providers 数组中添加 geonames 提供者

MichaelDrennen\Geonames\GeonamesServiceProvider::class,

之后,运行迁移命令

php artisan migrate

是否想安装美国、加拿大和墨西哥的所有 geonames 记录以及以英文拉入功能代码定义文件?

php artisan geonames:install --country=US --country=CA --country=MX --language=en

是否只想安装 geonames 数据库中的所有内容?

php artisan geonames:install

维护

现在您的 geonames 数据库已经在您的系统上运行并运行良好,您需要保持其更新。

我有一个更新脚本,您需要将其安排在 Laravel 中每天运行。

有关如何安排 Laravel artisan 命令的一些信息

https://laravel.net.cn/docs/5.6/scheduling#scheduling-artisan-commands

您可以在以下位置阅读此通知:http://download.geonames.org/export/dump/

“最后修改”时间戳为中央欧洲时间。

看起来 geonames 大约在凌晨3点 CET 更新他们的数据。

因此,如果您将系统安排在凌晨4点 CET 之后运行 geonames:update artisan 命令,您应该没问题。

我喜欢让我的服务器在 GMT 上运行。这保持了事情的一致性。

(中央欧洲时间比格林威治标准时间快1小时)

假设您的服务器在 GMT 上运行,您的更新命令如下所示

$schedule->command('geonames:update')->dailyAt('3:00');

更新 artisan 命令将处理 geonames 表的更新和删除。

注意事项

您是否得到类似以下内容:1071 指定键太长

@see https://news.laravel.net.cn/laravel-5-4-key-too-long-error

将以下内容添加到您的 AppServiceProvider.php 文件中

Schema::defaultStringLength(191);