7

I have a table with a column of type Spatial point ,,

I want the query to insert the values of that column with laravel

and if there a queries to get items within a specific range ?

any help here ??

That's my table here :

public function up()
{
    Schema::create('markers', function(Blueprint $table)
    {
        $table->integer('marker_id')->primary();
        $table->string('marker_name', 45);
        $table->timestamp('created_at')->default(DB::raw('CURRENT_TIMESTAMP'));
    });
    DB::raw("ALTER TABLE markers ADD COLUMN location POINT");
}
Mahmoud Nassar
  • 609
  • 7
  • 16

1 Answers1

11

You can insert data as follows:

ModelName::firstOrCreate(
    array(
        ..//other fields
        'location' => DB::raw("(GeomFromText('POINT(37.774929 -122.419415)'))")
    )
);

To retrieve data:

SELECT X(`location`), Y(`location`) FROM markers;

I too was stuck here & got help from: Spatial Point functions using Laravel Eloquent ORM. Hope this helps.

Community
  • 1
  • 1
Nishant Jani
  • 1,965
  • 8
  • 30
  • 41
  • As a side note. I got the error `GeomFromText does not exist`. So I had to change it to `ST_GeomFromText` – Refilon Mar 08 '22 at 14:43