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

Method MatchTrack

tools/track_analyzing/track_matcher.cpp:71–121  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

69}
70
71void TrackMatcher::MatchTrack(vector<DataPoint> const & track, vector<MatchedTrack> & matchedTracks)
72{
73 m_pointsCount += track.size();
74
75 vector<Step> steps;
76 steps.reserve(track.size());
77 for (auto const & routePoint : track)
78 steps.emplace_back(routePoint);
79
80 for (size_t trackBegin = 0; trackBegin < steps.size();)
81 {
82 for (; trackBegin < steps.size(); ++trackBegin)
83 {
84 steps[trackBegin].FillCandidatesWithNearbySegments(m_dataSource, *m_graph, *m_vehicleModel, m_mwmId);
85 if (steps[trackBegin].HasCandidates())
86 break;
87
88 ++m_nonMatchedPointsCount;
89 }
90
91 if (trackBegin >= steps.size())
92 break;
93
94 size_t trackEnd = trackBegin;
95 for (; trackEnd < steps.size() - 1; ++trackEnd)
96 {
97 Step & nextStep = steps[trackEnd + 1];
98 Step const & prevStep = steps[trackEnd];
99 nextStep.FillCandidates(prevStep, *m_graph);
100 if (!nextStep.HasCandidates())
101 break;
102 }
103
104 steps[trackEnd].ChooseNearestSegment();
105
106 for (size_t i = trackEnd; i > trackBegin; --i)
107 steps[i - 1].ChooseSegment(steps[i], *m_graph);
108
109 ++m_tracksCount;
110
111 matchedTracks.push_back({});
112 MatchedTrack & matchedTrack = matchedTracks.back();
113 for (size_t i = trackBegin; i <= trackEnd; ++i)
114 {
115 Step const & step = steps[i];
116 matchedTrack.emplace_back(step.GetDataPoint(), step.GetSegment());
117 }
118
119 trackBegin = trackEnd + 1;
120 }
121}
122
123// TrackMatcher::Step ------------------------------------------------------------------------------
124TrackMatcher::Step::Step(DataPoint const & dataPoint)

Callers 1

MatchTracksFunction · 0.80

Calls 11

FillCandidatesMethod · 0.80
ChooseNearestSegmentMethod · 0.80
ChooseSegmentMethod · 0.80
backMethod · 0.80
GetSegmentMethod · 0.80
sizeMethod · 0.45
reserveMethod · 0.45
emplace_backMethod · 0.45
HasCandidatesMethod · 0.45
push_backMethod · 0.45

Tested by

no test coverage detected