laralabs / geo-sorter
Postcode distance sorting package for Laravel Collections.
Installs: 2 086
Dependents: 0
Suggesters: 0
Security: 0
Stars: 1
Watchers: 2
Forks: 2
Open Issues: 0
Requires
- php: ^7.3|^8.0
- ayeo/geo: 1.0.*
- illuminate/support: ^5.5|^6.0|^7.0|^8.0|^9.0|^10.0|^11.0
Requires (Dev)
- mockery/mockery: ^1.0
- orchestra/testbench: ^3.4|^4.0|^5.0|^6.0|^7.0|^8.0|^9.0
- phpunit/phpunit: >6.0
This package is auto-updated.
Last update: 2024-11-13 21:27:37 UTC
README
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.