yucadoo / laravel-geojson-rule
Laravel Validation Rule for GeoJSON.
Installs: 50 644
Dependents: 0
Suggesters: 0
Security: 0
Stars: 13
Watchers: 2
Forks: 4
Open Issues: 0
Requires
- php: >=7.2
- illuminate/contracts: ^5.5|^6.0|^7.0|^8.0|^9.0|^10|^11.0
- jmikola/geojson: ^1.0
Requires (Dev)
- phpunit/phpunit: >=8.0
- squizlabs/php_codesniffer: ^3.5.7
README
Laravel Validation Rule for GeoJSON. Built on top of the GeoJSON PHP Library. This package is compliant with PSR-1, PSR-2 and PSR-4. If you notice compliance oversights, please send a patch via pull request.
Install
Via Composer
$ composer require yucadoo/laravel-geojson-rule
Usage
Create a new GeoJsonRule
instance without arguments to accept any GeoJSON geometry.
use Illuminate\Support\Facades\Validator; use YucaDoo\LaravelGeoJsonRule\GeoJsonRule; $validator = Validator::make( ['geometry' => '{"type": "Point", "coordinates":[1, 2]}'], ['geometry' => new GeoJsonRule()] // Accept any geometry ); $validator->passes(); // true $validator = Validator::make( ['geometry' => '{"type": "Point", "coordinates":[1]}'], ['geometry' => new GeoJsonRule()] // Accept any geometry ); $validator->passes(); // false $messages = $validator->messages()->get('geometry'); $messages[0]; // The geometry does not satisfy the RFC 7946 GeoJSON Format specification because Position requires at least two elements
Pass the GeoJson geometry class to limit it.
use GeoJson\Geometry\Point; use Illuminate\Support\Facades\Validator; use YucaDoo\LaravelGeoJsonRule\GeoJsonRule; $validator = Validator::make( ['position' => '{"type": "Point", "coordinates":[1, 2]}'], ['position' => new GeoJsonRule(Point::class)] // Accept Points only ); $validator->passes(); // true $validator = Validator::make( ['position' => '{"type": "LineString", "coordinates":[[1, 2], [3, 4]]}'], ['position' => new GeoJsonRule(Point::class)] // Accept Points only ); $validator->passes(); // false $messages = $validator->messages()->get('position'); echo $messages[0]; // The position does not satisfy the RFC 7946 GeoJSON Format specification for Point.
Change log
Please see CHANGELOG for more information on what has changed recently.
Testing
$ composer test
Contributing
Please see CONTRIBUTING and CODE_OF_CONDUCT for details.
Security
If you discover any security related issues, please email hrcajuka@gmail.com instead of using the issue tracker.
Credits
License
The MIT License (MIT). Please see License File for more information.