Сначала вам нужно перевести почтовый индекс в полезные координаты. Например, значения Easting и Northing из таблицы поиска почтового индекса, как и здесь: http://www.doogal.co.uk/UKPostcodes.php
Эти Easting and Northing - это координаты сетки UK Ordnance Survey в метрах от происхождения карты OS.
Преобразуйте их в километры путем деления на 1000
Затем используйте простую формулу треугольника Пифагора. Скажем, что две точки имеют значения Ист и Норт (в километрах) от E1, N1 и E2, N2
Расстояние между ними в килолометрах = Квадратный корень (abs (E1-E2) ^ 2 + abs (N1 -M2) ^ 2)
Вы можете сделать это
Types::select('*')
->get()
->groupBy(DB::raw('type'));
. в вашей модели Type вы можете добавить связь с Projects и, наконец, использовать метод with
, чтобы включить все проекты в каждый Type
экземпляр.
Некоторым псевдокодом может быть:
class Type extends Model
{
public function projects()
{
return $this->hasMany('App\Project');
}
}
function test()
{
$types = Types::with('projects')->get();
foreach ($types as $type) {
echo $type->name;
foreach ($type->projects as $project) {
echo $project->name;
}
}
}