laralabs/geo-sorter
Geo Sorter for Laravel
Postcode distance sorting package for Laravel Collections.
UNITED KINGDOM POSTCODES ONLY
:rocket: Quick Start
Installation
Require the package in the composer.json of your project.
composer require laralabs/geo-sorter
Publish the configuration file.
php artisan vendor:publish --tag=geosorter-config
Edit the configuration file and set your desired settings. If you want to use a custom database table name, set it here and cache your config before moving onto the next step.
Create the postcodes table by running the following command:
php artisan migrate
Once the database table has been created, run the following command to populate it with the latest UK Postcode District data.
php artisan geosorter:update
Usage
A helper function and facade are available, choose your preferred method. The sortByPostcode method accepts three arguments, the third argument being an optional $sort which can be used to override the sort order defined in the config.
Facade:
<?php
$collection = Addresses::all();
$postcode = 'B61 XYZ';
$collection = GeoSorter::sortByPostcode($collection, $postcode, 'ASC');
Helper:
<?php
$collection = Addresses::all();
$postcode = 'B61 XYZ';
$collection = geo_sorter()->sortByPostcode($collection, $postcode);
The above code would sort the Addresses collection in distance from the given postcode B61 XYZ.
:pushpin: Credits
Ayeo/Geo is used to calculate the distance between coordinates.
:speech_balloon: Support
Please raise an issue on GitHub if there is a problem.
:key: License
This is open-sourced software licensed under the MIT License.
Related Packages
Powerful PHP database abstraction layer (DBAL) with many features for database s...
Laravel Serializable Closure provides an easy and secure way to serialize closur...
Cli error handling for console/command-line PHP applications.