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
Add the Service Provider to config/app.php
:
'providers' => [
// ...
Spinen\Geometry\GeometryServiceProvider::class,
];
[Optional] Add the Facade to config/app.php
:
'aliases' => [
// ...
'Geo' => Spinen\Geometry\GeometryFacade::class,
];
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.
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.