Return indices instead of points
This commit is contained in:
parent
f46b259384
commit
89460dd39c
@ -192,10 +192,10 @@ template <class DataFacadeT> class MapMatchingPlugin : public BasePlugin
|
||||
for (auto& sub : sub_matchings)
|
||||
{
|
||||
// classify result
|
||||
double trace_length = sub_trace_lengths[sub.end_idx-1] - sub_trace_lengths[sub.begin_idx];
|
||||
double trace_length = sub_trace_lengths[sub.indices.back()] - sub_trace_lengths[sub.indices.front()];
|
||||
TraceClassification classification = classify(trace_length,
|
||||
sub.length,
|
||||
(sub.end_idx - sub.begin_idx) - sub.nodes.size());
|
||||
(sub.indices.back() - sub.indices.front() + 1) - sub.nodes.size());
|
||||
if (classification.first == ClassifierT::ClassLabel::POSITIVE)
|
||||
{
|
||||
sub.confidence = classification.second;
|
||||
@ -255,18 +255,16 @@ template <class DataFacadeT> class MapMatchingPlugin : public BasePlugin
|
||||
descriptor->SetConfig(descriptor_config);
|
||||
descriptor->Run(raw_route, temp_result);
|
||||
|
||||
JSON::Array input_points;
|
||||
for(const auto& n: sub.nodes) {
|
||||
JSON::Array coord;
|
||||
coord.values.emplace_back(n.location.lat / COORDINATE_PRECISION);
|
||||
coord.values.emplace_back(n.location.lon / COORDINATE_PRECISION);
|
||||
input_points.values.push_back(coord);
|
||||
JSON::Array indices;
|
||||
for (const auto& i : sub.indices)
|
||||
{
|
||||
indices.values.emplace_back(i);
|
||||
}
|
||||
|
||||
JSON::Object subtrace;
|
||||
subtrace.values["geometry"] = temp_result.values["route_geometry"];
|
||||
subtrace.values["confidence"] = sub.confidence;
|
||||
subtrace.values["input_points"] = input_points;
|
||||
subtrace.values["indices"] = indices;
|
||||
subtrace.values["matched_points"] = temp_result.values["via_points"];
|
||||
|
||||
traces.values.push_back(subtrace);
|
||||
|
@ -74,8 +74,7 @@ namespace Matching
|
||||
struct SubMatching
|
||||
{
|
||||
std::vector<PhantomNode> nodes;
|
||||
unsigned begin_idx;
|
||||
unsigned end_idx;
|
||||
std::vector<unsigned> indices;
|
||||
double length;
|
||||
double confidence;
|
||||
};
|
||||
@ -507,9 +506,6 @@ template <class DataFacadeT> class MapMatching final
|
||||
continue;
|
||||
}
|
||||
|
||||
matching.begin_idx = sub_matching_begin;
|
||||
matching.end_idx = parent_timestamp_index;
|
||||
|
||||
// loop through the columns, and only compare the last entry
|
||||
auto max_element_iter = std::max_element(model.viterbi[parent_timestamp_index].begin(),
|
||||
model.viterbi[parent_timestamp_index].end());
|
||||
@ -534,11 +530,13 @@ template <class DataFacadeT> class MapMatching final
|
||||
|
||||
matching.length = 0.0f;
|
||||
matching.nodes.resize(reconstructed_indices.size());
|
||||
matching.indices.resize(reconstructed_indices.size());
|
||||
for (auto i = 0u; i < reconstructed_indices.size(); ++i)
|
||||
{
|
||||
auto timestamp_index = reconstructed_indices[i].first;
|
||||
auto location_index = reconstructed_indices[i].second;
|
||||
|
||||
matching.indices[i] = timestamp_index;
|
||||
matching.nodes[i] = timestamp_list[timestamp_index][location_index].first;
|
||||
matching.length += model.path_lengths[timestamp_index][location_index];
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user