MCPcopy Create free account
hub / github.com/comaps/comaps / SaveTrackRecording

Method SaveTrackRecording

libs/map/bookmark_manager.cpp:1103–1148  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

1101}
1102
1103kml::TrackId BookmarkManager::SaveTrackRecording(std::string trackName)
1104{
1105 CHECK_THREAD_CHECKER(m_threadChecker, ());
1106 auto const & tracker = GpsTracker::Instance();
1107 CHECK(!tracker.IsEmpty(), ("Track recording should be not be empty"));
1108
1109 kml::MultiGeometry geometry;
1110 geometry.m_lines.emplace_back();
1111 geometry.m_timestamps.emplace_back();
1112 auto & line = geometry.m_lines.back();
1113 auto & timestamps = geometry.m_timestamps.back();
1114 auto const trackSize = tracker.GetTrackSize();
1115 line.reserve(trackSize);
1116 timestamps.reserve(trackSize);
1117
1118 tracker.ForEachTrackPoint([&line, &timestamps](location::GpsInfo const & pt, size_t id) -> bool
1119 {
1120 line.emplace_back(mercator::FromLatLon(pt.m_latitude, pt.m_longitude), pt.m_altitude);
1121 timestamps.emplace_back(pt.m_timestamp);
1122 return true;
1123 });
1124
1125 kml::TrackData trackData;
1126 trackData.m_geometry = std::move(geometry);
1127
1128 if (trackName.empty())
1129 trackName = GenerateTrackRecordingName();
1130 kml::SetDefaultStr(trackData.m_name, trackName);
1131
1132 kml::ColorData colorData;
1133 colorData.m_rgba = GenerateTrackRecordingColor().GetRGBA();
1134 kml::TrackLayer layer;
1135 layer.m_color = std::move(colorData);
1136
1137 std::vector<kml::TrackLayer> m_layers;
1138 m_layers.emplace_back(layer);
1139 trackData.m_layers = std::move(m_layers);
1140 trackData.m_timestamp = kml::TimestampClock::now();
1141
1142 auto editSession = GetEditSession();
1143 auto const track = editSession.CreateTrack(std::move(trackData));
1144 auto const groupId = LastEditedBMCategory();
1145 auto const trackId = track->GetId();
1146 AttachTrack(trackId, groupId);
1147 return trackId;
1148}
1149
1150std::string BookmarkManager::GenerateTrackRecordingName() const
1151{

Callers 1

Calls 12

SetDefaultStrFunction · 0.85
backMethod · 0.80
GetTrackSizeMethod · 0.80
ForEachTrackPointMethod · 0.80
GetRGBAMethod · 0.80
CreateTrackMethod · 0.80
FromLatLonFunction · 0.50
IsEmptyMethod · 0.45
emplace_backMethod · 0.45
reserveMethod · 0.45
emptyMethod · 0.45
GetIdMethod · 0.45

Tested by

no test coverage detected