laravel-mysql-spatial icon indicating copy to clipboard operation
laravel-mysql-spatial copied to clipboard

Laravel 9 Support

Open SteveEdson opened this issue 3 years ago • 19 comments

Hi, I believe this package requires illuminate/database: ^8.0, which conflicts with ^9.0 required by Laravel 9.

Thanks

SteveEdson avatar Feb 08 '22 11:02 SteveEdson

I've tested PR #184 on my production environment and works without any issue. Hopefully @grimzy will merge it as soon as possible.

sikhlana avatar Feb 09 '22 12:02 sikhlana

Excellent, Sikhlana!

joelasaxton avatar Feb 09 '22 21:02 joelasaxton

17 days are gone.

zishang520 avatar Feb 25 '22 09:02 zishang520

To be honest this package looks pretty much abandoned (there could be many reasons for that). It's annoying but we'll probably have to suck it up and move on at some point. Unless someone wants to take the mantle – fork the project and take maintenance on (I don't)

osteel avatar Feb 25 '22 10:02 osteel

@osteel totally aggree! We have move to use https://github.com/MatanYadaev/laravel-eloquent-spatial

eschricker avatar Feb 25 '22 10:02 eschricker

@eschricker yep, does the job as far as I'm concerned. Cheers!

osteel avatar Feb 25 '22 18:02 osteel

@eschricker @osteel Thanks for sharing the link to https://github.com/MatanYadaev/laravel-eloquent-spatial

Since you both appear to have moved to that from this library, can you say a few words about what the migration was like?

I currently use this library to to perform queries with distanceSphereValue and orderByDistance. Do you think migrating over would be fairly problem-free?

vesper8 avatar Feb 26 '22 15:02 vesper8

@vesper8 The migration was really easy and made the code more readable in my opinion . laravel-eloquent-spatial supports custom casts instead of using the property $spatialFields. As opposed to using the SpatialTrait to add querying functions, a CustomerEloquentBuilder is used. All supported functions are listed here: https://github.com/MatanYadaev/laravel-eloquent-spatial/blob/master/API.md The functions you need to use should be whereDistanceSphere and orderByDistanceSphere. I think the migration should be problem free.

eschricker avatar Feb 26 '22 16:02 eschricker

@vesper8 I only need casting Point values in and out so far, so the transition was very easy. Even feels more "Laravel native", to be honest. But I can't speak for your use case

osteel avatar Feb 27 '22 10:02 osteel

I m waiting for a update of this package with laravel 9 too...

Jul000 avatar Mar 07 '22 20:03 Jul000

I m waiting for a update of this package with laravel 9 too...

I just migrated to https://github.com/MatanYadaev/laravel-eloquent-spatial and just as they mention above, it was extremely straightforward and easy, I suggest you do the same

vesper8 avatar Mar 07 '22 22:03 vesper8

I was waiting too, but honestly it seems like it is not going to happen. I will probably be following @vesper8 and @eschricker and migrating to MatanYadaev and give an update on how it went here.

Mullersen avatar Mar 07 '22 22:03 Mullersen

The main problem with Matan Yadaev package is the no support of srid, if someone has a solution ?

Jul000 avatar Mar 08 '22 10:03 Jul000

@Julien0510 I already raised an issue regarding this: https://github.com/MatanYadaev/laravel-eloquent-spatial/issues/27

I am working on adding support for SRID since I already helped grimzy once with this package. But unfortunately the development is currently paused as I am working on a high-priority project rn.

sikhlana avatar Mar 08 '22 10:03 sikhlana

I had no idea SRID existed or what it was, after reading a bit about it, it seems like it basically makes things faster by adding a faster index to a table containing Point columns? It's not something I currently use at the scale I'm at, but I'd definitely adopt it if it promises to make things faster. So I'm hoping @sikhlana finds the time to add that PR after he's done with his current project.

vesper8 avatar Mar 08 '22 14:03 vesper8

I'm also in the need to move to Laravel 9 and I'm using SRID a lot in my app. @sikhlana, let us know if you find the time to make SRID work on MatanYadaev package and we will try your PR 🙏

desaintflorent avatar Apr 24 '22 16:04 desaintflorent

SRID is not to make it faster by any means. A SRID tells the geometry "calculator" what coordinate system the geometry belongs to. Unless you have worked with spatial data, most people don't realize that a latitude and longitude could represent several different physical locations on the earth, depending on what coordinate system it is for. There are many different coordinate systems used to project physical locations on the earth. There is no default coordinate system defined, but... most of the lat/long/polygons that you see on the internet are for the World Geodetic System of 1984, aka WGS84. Which is Spatial Reference ID 4326.

If you do not know what your points/polygons in your data were projected from, aka what SRID they are for. Importing them with a unknown SRID or a wrong SRID can cause your points/polygons to be off placed on the earth. Ex: A point in San Francisco could be placed out in the pacific ocean. Your query results could be way off. I would not use any spatial engine that does not support SRIDs for it's geometry data types. Unless you know what the spatial engine assumes all the geometry points are, and make sure you project your data from it's SRID to what the spatial engine's SRID it is expecting.

One of the most annoying things when it comes to working with spatial data, is importing data from a third-party that uses some odd-ball coordinate system. Forcing you to run the entire data set through a projection calculator to project it from one SRID to the SRID you need it to be, before even being able to import it.

johnwc avatar May 07 '22 00:05 johnwc

See : https://github.com/grimzy/laravel-mysql-spatial/issues/192#issuecomment-1175762690

SupianIDz avatar Jul 06 '22 04:07 SupianIDz

@grimzy waiting for a update of this package with laravel 9.

nouman-ashraf-awan avatar Oct 31 '22 13:10 nouman-ashraf-awan

@grimzy This is much needed. Please add compatibility for Laravel 9.

nouman-ashraf-awan avatar May 18 '23 18:05 nouman-ashraf-awan