Looking to hire Laravel developers? Try LaraJobs

laravel-geonames maintained by yaroslawww

Description
Import and manipulate geonames data in your project.
Last update
2022/09/12 16:58 (dev-master)
License
Downloads
26
Tags

Comments
comments powered by Disqus

Laravel geonames.

Packagist License Packagist Version Total Downloads Build Status Code Coverage Scrutinizer Code Quality

Import and manipulate geonames data in your project.

Installation

Install the package via composer:

composer require yaroslawww/laravel-geonames
# or
composer require yaroslawww/laravel-geonames --dev

Optionally you can publish the config file with:

php artisan vendor:publish --provider="LaraGeoData\ServiceProvider" --tag="config"

Allow import local infile:

[
    'mysql_geo' => [
        // ....
        'options'    => [PDO::MYSQL_ATTR_LOCAL_INFILE=>true],
     ],
]

Usage

Commands

Manipulate dump files

Download dump files:

php artisan geonames:download GB.zip FR.zip --postal=GB.zip --postal=GB_full.csv.zip --postal=FR.zip --extract --force

Clear all downloaded files:

php artisan geonames:download:truncate

Make migrations

php artisan geonames:make:migration geonames
# or
php artisan geonames:make:migration geonames --suffix=gb

php artisan geonames:make:migration postalcodes --suffix=gb
php artisan geonames:make:migration admin_areas_view --suffix=gb --replaces=level:1
php artisan geonames:make:migration admin_areas_view --suffix=gb --replaces=level:2
php artisan geonames:make:migration admin_areas_view --suffix=gb --replaces=level:3

Import dump data to tables

php artisan geonames:import:file-to-db geonames
# or
php artisan geonames:import:file-to-db geonames --suffix=gb
# or
php artisan geonames:import:file-to-db geonames path/to/my/file.csv --suffix=gb

php artisan geonames:import:file-to-db postalcodes --suffix=gb
php artisan geonames:import:file-to-db postalcodes postal_codes/GB_full.txt --suffix=gb

Models

Geocodes

Initialise table:

$model = new Geoname();
# or
$model = Geoname::makeUsingSuffix('gb');
# or
# .env:  GEONAMES_DEFAULT_SUFFIX=gb
$model = new Geoname();

Use table:

Geoname::nearestInMiles(24.76778, 56.16306, 1.5)->orderByNearest()->get()
// or
$model = Geoname::makeUsingSuffix('gb');
$nearestLocation = $model->newQuery()->nearestInMiles(24.76778, 56.16306, 1.5)->orderByNearest()->firstOrFail();
echo $nearestLocation->distance;

Credits

  • Think Studio