ralphschindler / laragis
A geospatial library and set of utilities for Laravel
dev-master / 1.0.x-dev
2017-07-22 22:22 UTC
Requires
- php: >=5.5
Requires (Dev)
- illuminate/database: ~5.3
- illuminate/support: ~5.3
- phpunit/phpunit: ~5.5
This package is auto-updated.
Last update: 2024-12-20 23:01:37 UTC
README
LaraGis provides geospatial database and Eloquent features to Laravel.
Features:
- Simple Entity API, for use in casting model properties
- Fast serialization of geospatial data from MySql (not PHP userland) via
ST_AsGeoJSON()
Installation
To get started with Socialite, add to your composer.json
file as a dependency:
composer require ralphschindler/laragis
Configuration
After installing the Socialite library, register the LaraGis\LaraGisProvider
in your config/app.php
configuration file:
'providers' => [ // Other service providers... LaraGis\LaraGisProvider::class, ],
Basic Usage
To use in Eloquent
based models, use the LaraGisTrait
, and specify a column to be cast into a geospatial datatype with the laragis
key in the $casts array:
class Place extends Model { use LaraGisTrait; protected $table = 'places'; protected $casts = [ 'coordinates' => 'laragis' ]; }
$place = App\Places::find(1); $coordinates = $place->coordinates; echo $coordinates->getLatitudeLongitude(); // "30, -90"
Entity API
/** * @property double $latitude * @property double $longitude */ class Coordinates { public function __construct($latitude = null, $longitude = null); public function setLatitude($latitude); public function getLatitude(); public function setLongitude($longitude); public function getLongitude(); public function castToString($separator, $coordinatesOrder = self::LATITUDE_FIRST) } class Area implements \IteratorAggregate, \Countable { public function addCoordinates(Coordinates $coordinates); public function getCoordinates(); }