All Projects → spinen → laravel-geometry

spinen / laravel-geometry

Licence: other
SPINEN's Laravel wrapper over geoPHP

Programming Languages

PHP
23972 projects - #3 most used programming language

Projects that are alternatives of or similar to laravel-geometry

laravel-browser-filter
Laravel middleware to filter routes based on browser types & versions.
Stars: ✭ 20 (-44.44%)
Mutual labels:  laravel-5-package, spinen
laravel-garbage-man
Scheduled job to clean out Laravel's soft deleted records at configured interval
Stars: ✭ 33 (-8.33%)
Mutual labels:  laravel-5-package, spinen
Laravel Mysql Spatial
MySQL Spatial Data Extension integration with Laravel.
Stars: ✭ 578 (+1505.56%)
Mutual labels:  geometry, laravel-5-package
dmc
Dual Marching Cubes Implementation in C++
Stars: ✭ 45 (+25%)
Mutual labels:  geometry
mikktspace-wasm
MikkTSpace vertex tangent calculation for JavaScript/TypeScript/Node.js, using Web Assembly.
Stars: ✭ 19 (-47.22%)
Mutual labels:  geometry
tinymesh
TinyMesh is a light-weight mesh processing library in C/C++.
Stars: ✭ 64 (+77.78%)
Mutual labels:  geometry
laravel-site-protection
Protect your site with a simple password form
Stars: ✭ 38 (+5.56%)
Mutual labels:  laravel-5-package
martinez-src
Mirrored implementations of polygon clipping/CSG/operations algorithm, in C (original, by Martínez et al) and ActionScript3 (port, by Mahir Iqbal)
Stars: ✭ 34 (-5.56%)
Mutual labels:  geometry
cas
Cellular Automata Simulator
Stars: ✭ 22 (-38.89%)
Mutual labels:  geometry
hydra-antlia
A collection of functions for Hydra
Stars: ✭ 45 (+25%)
Mutual labels:  geometry
liang-barsky
Liang-Barsky line-clipping algorithm
Stars: ✭ 32 (-11.11%)
Mutual labels:  geometry
geofeatures2
A lightweight, high performance geometry library in Swift.
Stars: ✭ 18 (-50%)
Mutual labels:  geometry
laravel-vue-component
A Blade directive to ease up Vue workflow for Laravel projects
Stars: ✭ 19 (-47.22%)
Mutual labels:  laravel-5-package
vg
Vector-geometry toolbelt for 3D points and vectors
Stars: ✭ 106 (+194.44%)
Mutual labels:  geometry
magic-box
A magical implementation of Laravel's Eloquent models as injectable, masked resource repositories.
Stars: ✭ 46 (+27.78%)
Mutual labels:  laravel-5-package
variational-surface-cutting
Codebase for "Variational Surface Cutting" by Sharp & Crane, SIGGRAPH 2018
Stars: ✭ 64 (+77.78%)
Mutual labels:  geometry
laravel-decorator
Easily decorate your method calls with laravel-decorator package
Stars: ✭ 125 (+247.22%)
Mutual labels:  laravel-5-package
polliwog
2D and 3D computational geometry library
Stars: ✭ 22 (-38.89%)
Mutual labels:  geometry
ncdfgeom
NetCDF-CF Geometry and Timeseries Tools for R: https://code.usgs.gov/water/ncdfgeom
Stars: ✭ 13 (-63.89%)
Mutual labels:  geometry
euclid
Vector math, geometry, reference frame, and shapes 2D & 3D
Stars: ✭ 22 (-38.89%)
Mutual labels:  geometry

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

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();
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].