spinen/laravel-geometry
| Install | |
|---|---|
composer require spinen/laravel-geometry |
|
| Latest Version: | 2.9.2 |
| PHP: | ^8.1 |
| License: | MIT |
| Last Updated: | May 1, 2025 |
| Links: | GitHub · Packagist |
SPINEN's Laravel Geometry
Wrapper over the geoPHP Class to make it integrate with Laravel better.
Build Status
| Branch | Status | Coverage | Code Quality |
|---|---|---|---|
| Develop | ![]() |
![]() |
|
| Master | ![]() |
![]() |
Prerequisite
NOTES
1) If you need to use < php7.2, please stay with version 1.x
2) Aside from Laravel >= 5.5, the package below is required
Install
Install Geometry:
$ composer require spinen/laravel-geometry
The package uses the auto registration feature.
Using the package
The Geometry Class exposes parseType methods where "Type" is StudlyCase of the geometry type that geoPHP supports. Here is a full list...
- parseEwkb($geometry)
- parseEwkt($geometry)
- parseGeoHash($geometry)
- parseGeoJson($geometry)
- parseGeoRss($geometry)
- parseGoogleGeocode($geometry)
- parseGpx($geometry)
- parseJson($geometry)
- parseKml($geometry)
- parseWkb($geometry)
- parseWkt($geometry)
The geometries are wrapped in a Spinen\Geometry\Geometries namespace with a little sugar to be able to do
- toEwkb()
- toEwkt()
- toGeoHash()
- toGeoJson()
- toGeoRss()
- toGoogleGeocode()
- toGpx()
- toJson()
- toKml()
- toWkb()
- toWkt()
In addition to the above export methods, we have added a toArray that gives an array from the toJson method. For convenience, we have exposed all of the properties of the geometry through a getter, so you have direct access to the property without having ask for the keys in the array.
Area of the polygon
We are estimating the area in meters squared & acres. We expect the estimation to be within 1%, so it is not very accurate. We essentially refactored a js method that Mapbox has in their geojson-area package . You get the area by calling the getAcres or getSquareMeters. There is a shortcut to them as properties, so you can read the "acres" or "square_meters" property.
Example
// Area of Polygon
$points = [[1,1], [2,2], [3,2], [3,4]];
$geoJson = '{"type":"Polygon", "coordinates":[' . json_encode($points) . ']}';
$geo = new geoPHP();
$mapper = new Spinen\Geometry\Support\TypeMapper();
$geometry = new Spinen\Geometry\Geometry($geo, $mapper);
$collection = $geometry->parseGeoJson($geoJson); // see above for more parse options
$squareMeters = $collection->getSquareMeters();
$acres = $collection->getAcres();
Related Packages
RabbitMQ and PHP client for Laravel and Lumen that allows you to add and listen...
Dynamically disable/enable Laravel's Eloquent model observers
Version History
| Version | Released | PHP | Laravel | License |
|---|---|---|---|---|
| 2.9.2 | ^8.1 | ~8| | MIT | |
| 2.9.1 | ^8.1 | ~8| | MIT | |
| 2.9.0 | ^8.1 | ~8| | MIT | |
| 2.8.0 | ^8.1 | ~8| | MIT | |
| 2.7.0 | ^8.1 | ~8| | MIT | |
| 2.6.0 | ^8.1 | ~8| | MIT | |
| 2.5.0 | >=7.2 | ~5.5| | MIT | |
| 2.4.1 | >=7.2 | ~5.5| | MIT | |
| 2.4.0 | >=7.2 | ~5.5| | MIT | |
| 2.3.4 | >=7.2 | ~5.5| | MIT | |
| 2.3.3 | >=7.2 | ~5.5| | MIT | |
| 2.3.2 | >=7.2 | ~5.5| | MIT | |
| 2.3.1 | >=7.2 | ~5.5| | MIT | |
| 2.3.0 | >=7.2 | ~5.5| | MIT | |
| 2.2.0 | >=7.2 | ~5.5| | MIT | |
| 2.1.0 | >=7.2 | 5.5.*| | MIT | |
| 2.0.0 | >=7.2 | 5.5.*| | MIT | |
| 1.1.0 | >=5.5.0 | 5.1.*| | MIT | |
| 1.0.0 | >=5.5.0 | 5.1.*| | MIT | |
| 0.7.0 | >=5.5.0 | 5.1.*| | MIT | |
| 0.6.0 | >=5.5.0 | 5.1.*| | MIT | |
| 0.5.0 | >=5.5.0 | 5.1.*| | MIT | |
| 0.4.0 | >=5.5.0 | 5.1.*| | MIT | |
| 0.3.1 | >=5.5.0 | ~5.1 | MIT | |
| 0.3.0 | >=5.5.0 | ~5.1 | MIT | |
| 0.2.0 | >=5.5.0 | ~5.1 | MIT | |
| 0.1.4 | >=5.5.0 | ~5.1 | MIT | |
| 0.1.3 | >=5.5.0 | ~5.1 | MIT | |
| 0.1.2 | >=5.5.0 | ~5.1 | MIT | |
| 0.1.1 | >=5.5.0 | ~5.1.10 | MIT |
Showing the latest 30 of 31. See every release on Packagist



