danhunsaker/laravel-spatial
| Install | |
|---|---|
composer require danhunsaker/laravel-spatial |
|
| Latest Version: | v1.0.1 |
| PHP: | ^7.2 |
| Laravel: | 5 · 6 · 7 |
| License: | MIT |
| Last Updated: | Feb 15, 2022 |
| Links: | GitHub · Packagist |
Laravel Spatial extension
This package is fully undocumented and unstable, and is a combination of the two great packages:
Installation
Installation made super-easy with composer:
composer require danhunsaker/laravel-spatial
Requirements
Works with PostgreSQL installed PostGIS extension and MySQL at least version 5.6.
If you try using it on a shared host which is not fulfilling those requirements, change your provider.
Usage
Migrations
Add spatial fields to your migrations the same way you would any others:
$table->point('point_column');
$table->linestring('line_string_column');
$table->polygon('polygon_column');
$table->geometry('geometry_column');
$table->multipoint('multi_point_column');
$table->multilinestring('multi_line_string_column');
$table->multipolygon('multi_polygon_column');
$table->geometrycollection('geometry_collection_column');
Models
Any models that use spatial fields need to use the LaravelSpatial\Eloquent\SpatialTrait, and list the spatial fields themselves in the $spatialFields property:
use LaravelSpatial\Eloquent\SpatialTrait;
// ...
class MyModel extends Model
{
use SpatialTrait;
// ...
protected $spatialFields = ['location'];
// ...
}
Values
We use the GeoJson PHP Library for describing spatial fields as GeoJSON object, e.g.:
use GeoJSON\Geometry\Point;
// ...
$eloquent = new MyModel();
$eloquent->location = new Point([49.7, 6.9]);
// ...
$eloquent->save();
Related Packages
Powerful PHP database abstraction layer (DBAL) with many features for database s...
Laravel Serializable Closure provides an easy and secure way to serialize closur...
Cli error handling for console/command-line PHP applications.
Version History
| Version | Released | PHP | Laravel | License |
|---|---|---|---|---|
| v1.0.1 | ^7.2 | ^5.7 || | MIT | |
| v1.0.0 | ^7.2 | ^5.7 || | MIT | |
| v0.1.1 | ^7.2 | ~5.5.0 || | MIT | |
| v0.1.0 | ^5.6.4| | ^5.3 | MIT |