Mahmoud Nassar
Mahmoud Nassar

Reputation: 609

How to insert [Spatial Point] values with a query in MySQL in Laravel

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

Upvotes: 7

Views: 8393

Answers (1)

Nishant Jani
Nishant Jani

Reputation: 1993

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.

Upvotes: 11

Related Questions