Skip to content
Postcode distance sorting package for Laravel Eloquent Collections
PHP
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
config
database/migrations
src
.gitignore
LICENSE
README.md
composer.json

README.md

Geo Sorter for Laravel

Postcode distance sorting package for Laravel Collections.

UNITED KINGDOM POSTCODES ONLY

🚀 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.

📌 Credits

Ayeo/Geo is used to calculate the distance between coordinates.

💬 Support

Please raise an issue on GitHub if there is a problem.

🔑 License

This is open-sourced software licensed under the MIT License.

You can’t perform that action at this time.