Führen Sie schnelle und effiziente Radiussuchen für Ihre Laravel Eloquent-Modelle durch.
Laravel Geoly bietet Ihren Laravel Eloquent-Modellen eine praktische Möglichkeit, in einem bestimmten Radius um eine Position abzufragen. Es geht blitzschnell, indem ein Begrenzungsrahmen verwendet wird, um die möglichen Ergebnisse einzuschränken und die Entfernung nur für die verbleibende Teilmenge zu berechnen. Laravel Geoly funktioniert sowohl auf MySQL als auch auf PostgreSQL.
Fordern Sie einfach das Projekt über Composer an:
$ composer require akuechler/laravel-geoly
Geoly geht in Ihrem eloquenten Modell von den beiden Spalten latitude
und longitude
aus. Fügen Sie sie einfach zu Ihrer Migration hinzu, falls sie noch nicht vorhanden sind.
$ table -> double ( ' latitude ' );
$ table -> double ( ' longitude ' );
Wenn Sie lieber andere Namen für Ihre Datenbankspalten verwenden möchten, geben Sie diese in Ihrem Modell an.
const LATITUDE = ' lat ' ;
const LONGITUDE = ' lng ' ;
Verwenden Sie das Geoly-Paket in Ihrem Eloquent-Modell.
class YourModel extends Model
{
use Geoly ;
...
}
Um nach allen Modellen innerhalb eines bestimmten Radius um eine Position zu suchen, fügen Sie Ihrer Abfrage den radius
hinzu.
$ query = YourModel :: radius ( $ latitude , $ longitude , $ radius );
$ query -> get ();
Dieses Projekt ist stark vom Artikel „Auswählen von Punkten innerhalb eines Begrenzungskreises“ von Laravel Geographical and Movable Type Scripts inspiriert.