Wrapper over the geoPHP Class to make it integrate with Laravel better.
spinen/laravel-geometry is a Laravel package for wrapper over the geophp class to make it integrate with laravel better..
It currently has 41 GitHub stars and 499.835 downloads on Packagist (latest version 2.9.2).
Install it with composer require spinen/laravel-geometry.
Discover more Laravel packages by spinen
or browse all Laravel packages to compare alternatives.
Last updated
Wrapper over the geoPHP Class to make it integrate with Laravel better.
| Branch | Status | Coverage | Code Quality |
| ------ | :----: | :------: | :----------: |
| Develop | |
|
|
| Master | |
|
|
Install Geometry:
$ composer require spinen/laravel-geometry
The package uses the auto registration feature.
The Geometry Class exposes parseType methods where "Type" is StudlyCase of the geometry type that geoPHP supports. Here is a full list...
The geometries are wrapped in a Spinen\Geometry\Geometries namespace with a little sugar to be able to do
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.
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.
// 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();