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]);
|
||||
|
||||
std::cout << "Searching: " << current_coordinate << std::endl;
|
||||
std::vector<std::pair<PhantomNode, double>> candidates;
|
||||
if (!facade->IncrementalFindPhantomNodeForCoordinateWithDistance(
|
||||
if (!facade->IncrementalFindPhantomNodeForCoordinateWithMaxDistance(
|
||||
route_parameters.coordinates[current_coordinate],
|
||||
candidates,
|
||||
last_distance,
|
||||
last_distance/2.0,
|
||||
5,
|
||||
20))
|
||||
{
|
||||
std::cout << "Nothing found for " << current_coordinate << std::endl;
|
||||
continue;
|
||||
return 400;
|
||||
}
|
||||
|
||||
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
|
||||
|
@ -104,9 +104,8 @@ template <class EdgeDataT> class BaseDataFacade
|
||||
virtual bool
|
||||
IncrementalFindPhantomNodeForCoordinate(const FixedPointCoordinate &input_coordinate,
|
||||
PhantomNode &resulting_phantom_node) = 0;
|
||||
|
||||
virtual bool
|
||||
IncrementalFindPhantomNodeForCoordinateWithDistance(const FixedPointCoordinate &input_coordinate,
|
||||
IncrementalFindPhantomNodeForCoordinateWithMaxDistance(const FixedPointCoordinate &input_coordinate,
|
||||
std::vector<std::pair<PhantomNode, double>> &resulting_phantom_node_vector,
|
||||
const double max_distance,
|
||||
const unsigned min_number_of_phantom_nodes,
|
||||
|
@ -417,7 +417,7 @@ template <class EdgeDataT> class InternalDataFacade final : public BaseDataFacad
|
||||
}
|
||||
|
||||
bool
|
||||
IncrementalFindPhantomNodeForCoordinateWithDistance(const FixedPointCoordinate &input_coordinate,
|
||||
IncrementalFindPhantomNodeForCoordinateWithMaxDistance(const FixedPointCoordinate &input_coordinate,
|
||||
std::vector<std::pair<PhantomNode, double>> &resulting_phantom_node_vector,
|
||||
const double max_distance,
|
||||
const unsigned min_number_of_phantom_nodes,
|
||||
|
@ -405,7 +405,7 @@ template <class EdgeDataT> class SharedDataFacade final : public BaseDataFacade<
|
||||
}
|
||||
|
||||
bool
|
||||
IncrementalFindPhantomNodeForCoordinateWithDistance(const FixedPointCoordinate &input_coordinate,
|
||||
IncrementalFindPhantomNodeForCoordinateWithMaxDistance(const FixedPointCoordinate &input_coordinate,
|
||||
std::vector<std::pair<PhantomNode, double>> &resulting_phantom_node_vector,
|
||||
const double max_distance,
|
||||
const unsigned min_number_of_phantom_nodes,
|
||||
|
Loading…
Reference in New Issue
Block a user