spinen / laravel-geometry
Wrapper over the geoPHP Class to make it integrate with Laravel better.
Installs: 332 004
Dependents: 1
Suggesters: 0
Security: 0
Stars: 40
Watchers: 9
Forks: 15
Open Issues: 0
Requires
- php: ^8.1
- illuminate/contracts: ~8|~9|~10|~11
- illuminate/support: ~8|~9|~10|~11
- phayes/geophp: ~1.2
Requires (Dev)
- laravel/pint: ^1.6
- mockery/mockery: ^1.5.1
- phpunit/phpunit: ^9.6.5
- psy/psysh: ^0.11.1
- symfony/var-dumper: ^6.2
- dev-develop
- 2.9.1
- 2.9.0
- 2.8.0
- 2.7.0
- 2.6.0
- 2.5.0
- 2.4.1
- 2.4.0
- 2.3.4
- 2.3.3
- 2.3.2
- 2.3.1
- 2.3.0
- 2.2.0
- 2.1.0
- 2.0.0
- 1.1.0
- 1.0.0
- 0.7.0
- 0.6.0
- 0.5.0
- 0.4.0
- 0.3.1
- 0.3.0
- 0.2.0
- 0.1.4
- 0.1.3
- 0.1.2
- 0.1.1
- 0.1.0
- dev-master
- dev-feature/supportL10
- dev-feature/php8Testing
- dev-feature/fixBadges
- dev-feature/moveToFuniq
- dev-feature/supportLaravel7
- dev-feature/addLaravel5.8Support
This package is auto-updated.
Last update: 2024-12-08 22:17:10 UTC
README
Wrapper over the geoPHP Class to make it integrate with Laravel better.
Build Status
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();