1. Go to this page and download the library: Download coresmart/laravel-spatial library. Choose the download type require.
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
coresmart / laravel-spatial example snippets
use TarfinLabs\LaravelSpatial\Migrations\SpatialMigration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
return new class extends SpatialMigration {
public function up(): void
{
Schema::create('addresses', function (Blueprint $table) {
$table->point('location');
})
}
}
use Illuminate\Database\Eloquent\Model;
use TarfinLabs\LaravelSpatial\Casts\LocationCast;
use TarfinLabs\LaravelSpatial\Traits\HasSpatial;
class Address extends Model {
use HasSpatial;
protected $fillable = [
'id',
'name',
'address',
'location',
];
protected array $casts = [
'location' => LocationCast::class
];
}
use TarfinLabs\LaravelSpatial\Types\Point;
$location = new Point(lat: 28.123456, lng: 39.123456, srid: 4326);
$location->getLat(); // 28.123456
$location->getLng(); // 39.123456
$locatipn->getSrid(); // 4326
return [
'default_srid' => 4326,
];
use TarfinLabs\LaravelSpatial\Types\Point;
use App\Models\Address;
Address::query()
->withinDistanceTo('location', new Point(lat: 25.45634, lng: 35.54331), 10000)
->get();
use TarfinLabs\LaravelSpatial\Types\Point;
use App\Models\Address;
Address::query()
->selectDistanceTo('location', new Point(lat: 25.45634, lng: 35.54331))
->get();
use TarfinLabs\LaravelSpatial\Types\Point;
use App\Models\Address;
// ASC
Address::query()
->orderByDistanceTo('location', new Point(lat: 25.45634, lng: 35.54331))
->get();
// DESC
Address::query()
->orderByDistanceTo('location', new Point(lat: 25.45634, lng: 35.54331), 'desc')
->get();
use App\Models\Address;
$address = Address::find(1);
$address->location; // TarfinLabs\LaravelSpatial\Types\Point
$address->location->getLat();
$address->location->getLng();