A geospatial library and set of utilities for Laravel
109
10
3
Package Data
Maintainer Username: ralphschindler
Package Create Date: 2016-10-02
Package Last Update: 2017-07-22
Language: PHP
License: UNLICENSE
Last Refreshed: 2024-12-22 03:05:39
Package Statistics
Total Downloads: 109
Monthly Downloads: 0
Daily Downloads: 0
Total Stars: 10
Total Watchers: 3
Total Forks: 1
Total Open Issues: 0

LaraGis

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();
}