spinen / laravel-geometry by david.mathews

Wrapper over the geoPHP Class to make it integrate with Laravel better.
330,918
40
9
Package Data
Maintainer Username: david.mathews
Maintainer Contact: thaison.le@spinen.com (Thai-Son Le)
Package Create Date: 2015-11-10
Package Last Update: 2024-04-08
Home Page: https://spinen.com
Language: PHP
License: MIT
Last Refreshed: 2024-12-15 15:01:31
Package Statistics
Total Downloads: 330,918
Monthly Downloads: 4,221
Daily Downloads: 16
Total Stars: 40
Total Watchers: 9
Total Forks: 15
Total Open Issues: 0

SPINEN's Laravel Geometry

Latest Stable Version Total Downloads Latest Unstable Version License

Wrapper over the geoPHP Class to make it integrate with Laravel better.

Build Status

| Branch | Status | Coverage | Code Quality | | ------ | :----: | :------: | :----------: | | Develop | Build Status | Code Coverage | Scrutinizer Code Quality | | Master | Build Status | Code Coverage | Scrutinizer Code Quality |

Prerequisite

NOTE: If you need to use < php7.2, please stay with version 1.x

Aside from Laravel >= 5.5, there is 1 package that 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.