Realice búsquedas de radio rápidas y eficientes en sus modelos Laravel Eloquent.
Laravel Geoly proporciona una manera conveniente para que sus modelos Laravel Eloquent realicen consultas en un radio determinado alrededor de una posición. Es increíblemente rápido al usar un cuadro delimitador para reducir los posibles resultados y calcular la distancia solo en el subconjunto restante. Laravel Geoly funciona tanto en MySQL como en PostgreSQL.
Simplemente solicite el proyecto a través del compositor:
$ composer require akuechler/laravel-geoly
Geoly asume las dos columnas latitude
y longitude
en su modelo elocuente. Simplemente agréguelos a su migración si aún no están presentes.
$ table -> double ( ' latitude ' );
$ table -> double ( ' longitude ' );
Si prefiere utilizar otros nombres para las columnas de su base de datos, especifíquelos en su modelo.
const LATITUDE = ' lat ' ;
const LONGITUDE = ' lng ' ;
Utilice el paquete Geoly dentro de su modelo Eloquent.
class YourModel extends Model
{
use Geoly ;
...
}
Para buscar todos los modelos dentro de un radio específico alrededor de una posición, agregue el alcance radius
a su consulta.
$ query = YourModel :: radius ( $ latitude , $ longitude , $ radius );
$ query -> get ();
Este proyecto está fuertemente inspirado en el artículo de Laravel Geographical and Movable Type Scripts sobre Selección de puntos dentro de un círculo delimitador.