Get all nodes in dense areas but make sure we don't underflow in sparse ones
This commit is contained in:
parent
3a5e41ed91
commit
59727a6967
@ -81,30 +81,18 @@ template <class DataFacadeT> class MapMatchingPlugin : public BasePlugin
|
|||||||
route_parameters.coordinates[current_coordinate - 1],
|
route_parameters.coordinates[current_coordinate - 1],
|
||||||
route_parameters.coordinates[current_coordinate]);
|
route_parameters.coordinates[current_coordinate]);
|
||||||
|
|
||||||
std::cout << "Searching: " << current_coordinate << std::endl;
|
|
||||||
std::vector<std::pair<PhantomNode, double>> candidates;
|
std::vector<std::pair<PhantomNode, double>> candidates;
|
||||||
if (!facade->IncrementalFindPhantomNodeForCoordinateWithDistance(
|
if (!facade->IncrementalFindPhantomNodeForCoordinateWithMaxDistance(
|
||||||
route_parameters.coordinates[current_coordinate],
|
route_parameters.coordinates[current_coordinate],
|
||||||
candidates,
|
candidates,
|
||||||
last_distance,
|
last_distance/2.0,
|
||||||
5,
|
5,
|
||||||
20))
|
20))
|
||||||
{
|
{
|
||||||
std::cout << "Nothing found for " << current_coordinate << std::endl;
|
return 400;
|
||||||
continue;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
candidate_lists.push_back(candidates);
|
candidate_lists.push_back(candidates);
|
||||||
|
|
||||||
std::cout << current_coordinate << " (" << (last_distance / 2.0) << ") : "
|
|
||||||
<< candidates.size() << std::endl;
|
|
||||||
|
|
||||||
BOOST_ASSERT(candidate_lists[current_coordinate].size() == 10);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (2 > candidate_lists.size())
|
|
||||||
{
|
|
||||||
return 400;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// call the actual map matching
|
// call the actual map matching
|
||||||
|
@ -104,9 +104,8 @@ template <class EdgeDataT> class BaseDataFacade
|
|||||||
virtual bool
|
virtual bool
|
||||||
IncrementalFindPhantomNodeForCoordinate(const FixedPointCoordinate &input_coordinate,
|
IncrementalFindPhantomNodeForCoordinate(const FixedPointCoordinate &input_coordinate,
|
||||||
PhantomNode &resulting_phantom_node) = 0;
|
PhantomNode &resulting_phantom_node) = 0;
|
||||||
|
|
||||||
virtual bool
|
virtual bool
|
||||||
IncrementalFindPhantomNodeForCoordinateWithDistance(const FixedPointCoordinate &input_coordinate,
|
IncrementalFindPhantomNodeForCoordinateWithMaxDistance(const FixedPointCoordinate &input_coordinate,
|
||||||
std::vector<std::pair<PhantomNode, double>> &resulting_phantom_node_vector,
|
std::vector<std::pair<PhantomNode, double>> &resulting_phantom_node_vector,
|
||||||
const double max_distance,
|
const double max_distance,
|
||||||
const unsigned min_number_of_phantom_nodes,
|
const unsigned min_number_of_phantom_nodes,
|
||||||
|
@ -417,7 +417,7 @@ template <class EdgeDataT> class InternalDataFacade final : public BaseDataFacad
|
|||||||
}
|
}
|
||||||
|
|
||||||
bool
|
bool
|
||||||
IncrementalFindPhantomNodeForCoordinateWithDistance(const FixedPointCoordinate &input_coordinate,
|
IncrementalFindPhantomNodeForCoordinateWithMaxDistance(const FixedPointCoordinate &input_coordinate,
|
||||||
std::vector<std::pair<PhantomNode, double>> &resulting_phantom_node_vector,
|
std::vector<std::pair<PhantomNode, double>> &resulting_phantom_node_vector,
|
||||||
const double max_distance,
|
const double max_distance,
|
||||||
const unsigned min_number_of_phantom_nodes,
|
const unsigned min_number_of_phantom_nodes,
|
||||||
|
@ -405,7 +405,7 @@ template <class EdgeDataT> class SharedDataFacade final : public BaseDataFacade<
|
|||||||
}
|
}
|
||||||
|
|
||||||
bool
|
bool
|
||||||
IncrementalFindPhantomNodeForCoordinateWithDistance(const FixedPointCoordinate &input_coordinate,
|
IncrementalFindPhantomNodeForCoordinateWithMaxDistance(const FixedPointCoordinate &input_coordinate,
|
||||||
std::vector<std::pair<PhantomNode, double>> &resulting_phantom_node_vector,
|
std::vector<std::pair<PhantomNode, double>> &resulting_phantom_node_vector,
|
||||||
const double max_distance,
|
const double max_distance,
|
||||||
const unsigned min_number_of_phantom_nodes,
|
const unsigned min_number_of_phantom_nodes,
|
||||||
|
Loading…
Reference in New Issue
Block a user