Начал делать разрезание трека на части, но что-то работает не так - тупаются точки
This commit is contained in:
parent
4b17d0e630
commit
eccbb9c48a
|
|
@ -81,7 +81,7 @@ class EdittrackController extends Controller
|
||||||
$trip->json = '';
|
$trip->json = '';
|
||||||
$trip->save();
|
$trip->save();
|
||||||
|
|
||||||
App::redirect('/tracks/edit/id/'.$trip->id);
|
App::redirect('/tracks/edit/id/' . $trip->id);
|
||||||
}
|
}
|
||||||
|
|
||||||
function actionMergetrack()
|
function actionMergetrack()
|
||||||
|
|
@ -99,7 +99,7 @@ class EdittrackController extends Controller
|
||||||
}
|
}
|
||||||
|
|
||||||
$takeIt = $mergetId = $merget = FALSE;
|
$takeIt = $mergetId = $merget = FALSE;
|
||||||
$tracks = Tracks::model()->getAll(array('where'=>'`tripId` = ?'), array($trip->id));
|
$tracks = Tracks::model()->getAll(array('where' => '`tripId` = ?'), array($trip->id));
|
||||||
foreach ($tracks as $key => $value) {
|
foreach ($tracks as $key => $value) {
|
||||||
if ($takeIt) {
|
if ($takeIt) {
|
||||||
$mergetId = $key;
|
$mergetId = $key;
|
||||||
|
|
@ -129,7 +129,7 @@ class EdittrackController extends Controller
|
||||||
$trip->json = '';
|
$trip->json = '';
|
||||||
$trip->save();
|
$trip->save();
|
||||||
|
|
||||||
App::redirect('/tracks/edit/id/'.$trip->id);
|
App::redirect('/tracks/edit/id/' . $trip->id);
|
||||||
}
|
}
|
||||||
|
|
||||||
function actionWaypoint()
|
function actionWaypoint()
|
||||||
|
|
@ -170,7 +170,7 @@ class EdittrackController extends Controller
|
||||||
$trip->json = '';
|
$trip->json = '';
|
||||||
$trip->save();
|
$trip->save();
|
||||||
|
|
||||||
App::redirect('/tracks/edit/id/'.$trip->id);
|
App::redirect('/tracks/edit/id/' . $trip->id);
|
||||||
}
|
}
|
||||||
|
|
||||||
function actionGettrackdetails()
|
function actionGettrackdetails()
|
||||||
|
|
@ -187,8 +187,129 @@ class EdittrackController extends Controller
|
||||||
App::error404();
|
App::error404();
|
||||||
}
|
}
|
||||||
|
|
||||||
$trackpoints = TrackPoints::model()->getAll(array('where' => '`trackId` = '.$track->id, 'asArray' => TRUE, 'noKeys' => TRUE,));
|
$trackpoints = TrackPoints::model()->getAll(array('where' => '`trackId` = ' . $track->id, 'asArray' => TRUE, 'noKeys' => TRUE,));
|
||||||
|
|
||||||
self::renderPartial('json.php', $trackpoints);
|
self::renderPartial('json.php', $trackpoints);
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
function actionCut()
|
||||||
|
{
|
||||||
|
$id = intval(App::getParam('id'));
|
||||||
|
|
||||||
|
$trackPoint = TrackPoints::model()->getByPK($id);
|
||||||
|
if ($trackPoint->isEmpty()) {
|
||||||
|
App::error404();
|
||||||
|
}
|
||||||
|
|
||||||
|
$track = Tracks::model()->getByPK($trackPoint->trackId);
|
||||||
|
if ($track->isEmpty()) {
|
||||||
|
App::error404();
|
||||||
|
}
|
||||||
|
|
||||||
|
$trip = Trips::model()->getByPK($track->tripId);
|
||||||
|
if ($trip->isEmpty() || $trip->owner != App::$user->id) {
|
||||||
|
App::error404();
|
||||||
|
}
|
||||||
|
|
||||||
|
$tracks = Tracks::model()->getAll(array('where' => '`tripId` = ?'), array($trip->id));
|
||||||
|
foreach ($tracks as $trk) {
|
||||||
|
$newTrack = Tracks::model()->add(
|
||||||
|
array(
|
||||||
|
'tripId' => $trip->id,
|
||||||
|
'name' => $trk->name,
|
||||||
|
'distance' => $trk->distance,
|
||||||
|
'description' => $trk->description,
|
||||||
|
)
|
||||||
|
);
|
||||||
|
|
||||||
|
|
||||||
|
if ($trk->id == $track->id) {
|
||||||
|
// $prevPoint = false;
|
||||||
|
// $distanceTmp = 0;
|
||||||
|
$trackPoints = TrackPoints::model()->getAll(array('where'=>'`trackId` = ? AND `id` <= ?', 'order' => 'id'), array($trk->id, $trackPoint->id));
|
||||||
|
foreach ($trackPoints as $tpt) {
|
||||||
|
TrackPoints::model()->add(
|
||||||
|
array(
|
||||||
|
'trackId' => $newTrack->id,
|
||||||
|
'lat' => floatval($tpt->lat),
|
||||||
|
'lng' => floatval($tpt->lng),
|
||||||
|
'alt' => $tpt->alt,
|
||||||
|
'createdAt' => $tpt->createdAt,
|
||||||
|
'speed' => $tpt->speed,
|
||||||
|
)
|
||||||
|
);
|
||||||
|
|
||||||
|
// if ($prevPoint) {
|
||||||
|
// $distanceTmp += Geo::distance($prevPoint, array('lat' => floatval($tpt->lat), 'lng' => floatval($tpt->lng)));
|
||||||
|
// }
|
||||||
|
//
|
||||||
|
// $prevPoint = array(
|
||||||
|
// 'lat' => floatval($tpt->lat),
|
||||||
|
// 'lng' => floatval($tpt->lng),
|
||||||
|
// );
|
||||||
|
}
|
||||||
|
// $newTrack->distance = $distanceTmp;
|
||||||
|
// $newTrack->save();
|
||||||
|
|
||||||
|
$prevPoint = false;
|
||||||
|
$distanceTmp = 0;
|
||||||
|
$newTrack = Tracks::model()->add(
|
||||||
|
array(
|
||||||
|
'tripId' => $trip->id,
|
||||||
|
'name' => $trk->name . ' / #2',
|
||||||
|
'distance' => $trk->distance,
|
||||||
|
'description' => $trk->description,
|
||||||
|
)
|
||||||
|
);
|
||||||
|
|
||||||
|
$trackPoints = TrackPoints::model()->getAll(array('where'=>'`trackId` = ? AND `id` >= ?', 'order' => 'id'), array($trk->id, $trackPoint->id));
|
||||||
|
foreach ($trackPoints as $tpt) {
|
||||||
|
TrackPoints::model()->add(
|
||||||
|
array(
|
||||||
|
'trackId' => $newTrack->id,
|
||||||
|
'lat' => floatval($tpt->lat),
|
||||||
|
'lng' => floatval($tpt->lng),
|
||||||
|
'alt' => $tpt->alt,
|
||||||
|
'createdAt' => $tpt->createdAt,
|
||||||
|
'speed' => $tpt->speed,
|
||||||
|
)
|
||||||
|
);
|
||||||
|
|
||||||
|
// if ($prevPoint) {
|
||||||
|
// $distanceTmp += Geo::distance($prevPoint, array('lat' => floatval($tpt->lat), 'lng' => floatval($tpt->lng)));
|
||||||
|
// }
|
||||||
|
//
|
||||||
|
// $prevPoint = array(
|
||||||
|
// 'lat' => floatval($tpt->lat),
|
||||||
|
// 'lng' => floatval($tpt->lng),
|
||||||
|
// );
|
||||||
|
}
|
||||||
|
// $newTrack->distance = $distanceTmp;
|
||||||
|
// $newTrack->save();
|
||||||
|
} else {
|
||||||
|
$trackPoints = TrackPoints::model()->getAll(array('where'=>'`trackId` = ?', 'order' => 'id'), array($trk->id));
|
||||||
|
foreach ($trackPoints as $tpt) {
|
||||||
|
TrackPoints::model()->add(
|
||||||
|
array(
|
||||||
|
'trackId' => $newTrack->id,
|
||||||
|
'lat' => floatval($tpt->lat),
|
||||||
|
'lng' => floatval($tpt->lng),
|
||||||
|
'alt' => $tpt->alt,
|
||||||
|
'createdAt' => $tpt->createdAt,
|
||||||
|
'speed' => $tpt->speed,
|
||||||
|
)
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
App::DB()->query("DELETE FROM `trackPoints` WHERE `trackId` = ".$trk->id);
|
||||||
|
$trk->delete($trk->id);
|
||||||
|
}
|
||||||
|
|
||||||
|
$trip->json = '';
|
||||||
|
$trip->save();
|
||||||
|
|
||||||
|
App::redirect('/tracks/edit/id/' . $trip->id);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
|
||||||
|
|
@ -621,7 +621,7 @@ class JsonController extends Controller
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
$tracks = Tracks::model()->getAll(array('where' => '`tripId` = ?'), array($trip->id));
|
$tracks = Tracks::model()->getAll(array('where' => '`tripId` = ?', 'order' => 'id'), array($trip->id));
|
||||||
if ($tracks) {
|
if ($tracks) {
|
||||||
foreach ($tracks as $track) {
|
foreach ($tracks as $track) {
|
||||||
$resLatlngs = array();
|
$resLatlngs = array();
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,7 @@
|
||||||
|
/*
|
||||||
|
* To change this license header, choose License Headers in Project Properties.
|
||||||
|
* To change this template file, choose Tools | Templates
|
||||||
|
* and open the template in the editor.
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -49,7 +49,7 @@
|
||||||
<a href="/edittrack/deletetrack/id/<?= $track->id ?>" class="btn btn-danger" onclick="return confirm('Вы уверены, что хотите удалить фрагмент трека?')" title="Удалить фрагмент трека"><span class="glyphicon glyphicon-trash" aria-hidden="true"></span></a>
|
<a href="/edittrack/deletetrack/id/<?= $track->id ?>" class="btn btn-danger" onclick="return confirm('Вы уверены, что хотите удалить фрагмент трека?')" title="Удалить фрагмент трека"><span class="glyphicon glyphicon-trash" aria-hidden="true"></span></a>
|
||||||
<a href="#" class="btn btn-default" onclick="loadTrackDetails(<?= $track->id ?>)" title="Просмотреть точки"><span class="glyphicon glyphicon-list" aria-hidden="true"></span></a>
|
<a href="#" class="btn btn-default" onclick="loadTrackDetails(<?= $track->id ?>)" title="Просмотреть точки"><span class="glyphicon glyphicon-list" aria-hidden="true"></span></a>
|
||||||
<?php if ($tracksCounter < count($tracks)):?>
|
<?php if ($tracksCounter < count($tracks)):?>
|
||||||
<a href="/edittrack/mergetrack/id/<?= $track->id ?>" class="btn btn-default" onclick="return confirm('Вы уверены, что хотите совместить фрагмент трека с идущим ниже?')" title="Слить с идущим ниже"><span class="glyphicon glyphicon-save" aria-hidden="true"></span></a>
|
<a href="/edittrack/mergetrack/id/<?= $track->id ?>" class="btn btn-default" onclick="return confirm('Вы уверены, что хотите совместить фрагмент трека с идущим ниже?')" title="Слить с идущим ниже"><span class="glyphicon glyphicon-resize-small" aria-hidden="true"></span></a>
|
||||||
<?php endif; ?>
|
<?php endif; ?>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
@ -170,7 +170,7 @@
|
||||||
$('#trackpointsList'+id).html('');
|
$('#trackpointsList'+id).html('');
|
||||||
if (typeof (data) != 'undefined') {
|
if (typeof (data) != 'undefined') {
|
||||||
for (var i = 0; i < data.length; i++) {
|
for (var i = 0; i < data.length; i++) {
|
||||||
$('<div>' + data[i].id + ' - ' + data[i].lat + ' / '+ data[i].lng+'</div>').appendTo('#trackpointsList'+id);
|
$(makeRow(data[i])).appendTo('#trackpointsList'+id);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
@ -179,4 +179,14 @@
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function makeRow(data)
|
||||||
|
{
|
||||||
|
row = '<div class="trackPoint">';
|
||||||
|
row += data.id + ' - ' + data.lat + ' / '+ data.lng;
|
||||||
|
row += ' <a href="/edittrack/cut/id/'+data.id+'" title="Разрезать трек в этой точке"><span class="glyphicon glyphicon-resize-full" aria-hidden="true"></span></a> ';
|
||||||
|
row += '</div>';
|
||||||
|
return row;
|
||||||
|
}
|
||||||
|
|
||||||
</script>
|
</script>
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue