dynamic-screen / laravel-geographical
轻松地为您的记录添加经纬度列,并使用继承的功能来计算距离
1.0.2
2019-09-13 09:16 UTC
Requires
- php: >=5.6.4
- laravel/framework: 5.*|6.*
This package is auto-updated.
Last update: 2024-09-04 19:35:24 UTC
README
轻松地为您的记录添加经纬度列,并使用继承的功能来计算距离。
首先,要么更新您的数据库,要么将此添加到每个模型的迁移中
$table->double('longitude'); $table->double('latitude');
最后,在您的模型中使用
use Geographical;
1. 距离
查找从特定位置到您表中的所有条目的距离。
$query = Model::distance($latitude, $longitude); $asc = $query->orderBy('distance', 'ASC')->get();
2. 地理围栏
查找您表中的所有在圆形地理围栏内的条目。
$query = Model::geofence($latitude, $longitude, $inner_radius, $outer_radius); $all = $query->get();
单位
默认的距离单位是 英里。您可以通过在模型中添加以下内容将其更改为 公里
protected static $kilometers = true;
备注
- 该方法返回一个
Eloquent\Builder对象,以便您可以根据需要添加可选条件。 - 您可以在结果中使用
distance作为聚合列。(聚合列不能用于WHERE,请使用HAVING来执行任何条件。) - 如果您为纬度和经度使用不同的列名,请在 Model.php 中提及它们
const LATITUDE = 'lat'; const LONGITUDE = 'lng';
安装
需要 PHP 5.6.4+ 和 Laravel 5+。
要获取 Laravel Geographical 的最新版本,只需使用 Composer 安装项目即可。
$ composer require malhal/laravel-geographical