ADD рассчёт длины трека при импорте

This commit is contained in:
Krivchikov Dmitry 2016-05-17 20:27:22 +03:00
parent e714778062
commit 801413690b
1 changed files with 40 additions and 20 deletions

View File

@ -2,6 +2,7 @@
class TracksController extends Controller class TracksController extends Controller
{ {
function __construct() function __construct()
{ {
if (!App::$user->id) { if (!App::$user->id) {
@ -16,7 +17,6 @@ class TracksController extends Controller
self::addScript('/js/bootstrap.min.js'); self::addScript('/js/bootstrap.min.js');
self::addStyle('/css/bootstrap.min.css'); self::addStyle('/css/bootstrap.min.css');
self::addStyle('/css/bootstrap-theme.min.css'); self::addStyle('/css/bootstrap-theme.min.css');
} }
function actionIndex() function actionIndex()
@ -90,6 +90,7 @@ class TracksController extends Controller
) )
); );
$distance = 0;
$wayPoints = array(); $wayPoints = array();
$tracks = array(); $tracks = array();
$latlngs = array(); $latlngs = array();
@ -130,11 +131,12 @@ class TracksController extends Controller
'description' => '', 'description' => '',
) )
); );
$distanceTmp = 0;
$prevPoint = array();
$tracksCounter++; $tracksCounter++;
$trackPoints = array(); $trackPoints = array();
foreach ($trkpt as $tpt) { foreach ($trkpt as $tpt) {
$trackPoint = TrackPoints::model()->add( $trackPoint = TrackPoints::model()->add(
array( array(
'trackId' => $track->id, 'trackId' => $track->id,
@ -145,11 +147,29 @@ class TracksController extends Controller
'speed' => 0, 'speed' => 0,
) )
); );
if ($prevPoint) {
$distanceTmp += Geo::distance($prevPoint, array('lat' => floatval($tpt['lat']), 'lng' => floatval($tpt['lon'])));
// print $distanceTmp.'<br/>';
}
$prevPoint = array(
'lat' => floatval($tpt['lat']),
'lng' => floatval($tpt['lon']),
);
}
$distance += $distanceTmp;
$track->distance = $distanceTmp;
$track->save();
} }
} }
} }
} }
}
$trip->distance = $distance;
$trip->save();
App::redirect('/tracks'); App::redirect('/tracks');
} }