New "sides" setting in base parameters for phantom nodes.

- Adding sides parameter into base parameters, it can take the values SIDE, OPPOSITE or DEFAULT.
 - Adding url parser for "sides" parameter, url values are "s" for SIDE, "o" for OPPOSITE and "d" for DEFAULT, example : "sides=s;s".
 - Checking parameters, if "sides" parameter is used, the number of parameter is the same as number of location.
 - Create a phantom to start at side driving or Opposite side driving.

Signed-off-by: FILLAU Jean-Maxime <jean-maxime.fillau@mapotempo.com>
This commit is contained in:
FILLAU Jean-Maxime
2017-05-18 17:05:11 +02:00
committed by Patrick Niklaus
parent 579a1ed42e
commit 8e70c87e64
10 changed files with 141 additions and 12 deletions
+10 -1
View File
@@ -16,6 +16,8 @@
#include <string>
#include <vector>
#include <util/log.hpp>
namespace osrm
{
namespace engine
@@ -224,10 +226,17 @@ class BasePlugin
const bool use_hints = !parameters.hints.empty();
const bool use_bearings = !parameters.bearings.empty();
const bool use_radiuses = !parameters.radiuses.empty();
const bool use_sides = !parameters.sides.empty();
BOOST_ASSERT(parameters.IsValid());
for (const auto i : util::irange<std::size_t>(0UL, parameters.coordinates.size()))
{
SideValue sideValue = engine::SideValue::BOTH;
// TODO init at SIDE for test
// SideValue sideValue = engine::SideValue::DEFAULT;
if (use_sides && parameters.sides[i])
sideValue = parameters.sides[i]->side;
if (use_hints && parameters.hints[i] &&
parameters.hints[i]->IsValid(parameters.coordinates[i], facade))
{
@@ -268,7 +277,7 @@ class BasePlugin
{
phantom_node_pairs[i] =
facade.NearestPhantomNodeWithAlternativeFromBigComponent(
parameters.coordinates[i]);
parameters.coordinates[i], sideValue);
}
}