в таблице есть колонки (длина и долгота).
Мне нужно посчитать расстояние.
Я посчитал проудену расстояние для каждой строки и у меня получилось
lng | lat | Расстояние
49.82981500 | 49.82981500 | 1
49.82981500 | 49.82981500 | 2
49.82981500 | 49.82981500 | 1
49.82981500 | 49.82981500 | 4
а мне нужно чтобы добавляло каждый элемент к предыдущему
lng | lat | Расстояние
49.82981500 | 49.82981500 | 1
49.82981500 | 49.82981500 | 3
49.82981500 | 49.82981500 | 4
49.82981500 | 49.82981500 | 8
Мой код View
Код: Выделить всё
<?php Pjax::begin(['enablePushState' => false, 'enableReplaceState' => false]); ?>
<?= GridView::widget([
'dataProvider' => $dataProvider,
'columns' => [
['class' => 'yii\grid\SerialColumn'],
'date_s',
'status',
'lat',
'lng',
'speed',
[
'header' => 'Відстань',
'content'=>function($data){
return $data->getLong();
},
],
],
]); ?>
<?php Pjax::end(); ?></div>
Код: Выделить всё
public function getLong() {
if ($this->id != 1) {
$get = self::find()->where(['<', 'id', $this->id])->orderBy('id DESC')->limit(1)->one();
$data = sqrt(pow(($this->lat - $get->lat),2)+pow(($this->lng - $get->lng),2));
return $data;
}
return 0;
}