yucadoo/laravel-geojson-rule
laravel-geojson-rule
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.
Related Packages
Version History
| Version | Released | PHP | Laravel | License |
|---|---|---|---|---|
| 2.0.7 | >=7.2 | ^5.5| | MIT | |
| 2.0.6 | >=7.2 | ^5.5| | MIT | |
| 2.0.5 | >=7.2 | ^5.5| | MIT | |
| 2.0.4 | >=7.2 | ^5.5| | MIT | |
| 2.0.3 | >=7.2 | ^5.5| | MIT | |
| 2.0.2 | >=7.2 | ^5.5| | MIT | |
| 2.0.1 | ~7.2 | ^5.5| | MIT | |
| 2.0.0 | ~7.2 | ^5.5| | MIT | |
| 1.0.1 | ~7.2 | ^5.5| | MIT | |
| 1.0.0 | ~7.2 | ^5.5| | MIT |