Add support for a default_bearing_radius flag (#6575)
This commit is contained in:
@@ -181,24 +181,29 @@ Status MatchPlugin::HandleRequest(const RoutingAlgorithmsInterface &algorithms,
|
||||
if (tidied.parameters.radiuses.empty())
|
||||
{
|
||||
search_radiuses.resize(tidied.parameters.coordinates.size(),
|
||||
routing_algorithms::DEFAULT_GPS_PRECISION * RADIUS_MULTIPLIER);
|
||||
default_radius.has_value()
|
||||
? *default_radius
|
||||
: routing_algorithms::DEFAULT_GPS_PRECISION * RADIUS_MULTIPLIER);
|
||||
}
|
||||
else
|
||||
{
|
||||
search_radiuses.resize(tidied.parameters.coordinates.size());
|
||||
std::transform(tidied.parameters.radiuses.begin(),
|
||||
tidied.parameters.radiuses.end(),
|
||||
search_radiuses.begin(),
|
||||
[](const boost::optional<double> &maybe_radius) {
|
||||
if (maybe_radius)
|
||||
{
|
||||
return *maybe_radius * RADIUS_MULTIPLIER;
|
||||
}
|
||||
else
|
||||
{
|
||||
return routing_algorithms::DEFAULT_GPS_PRECISION * RADIUS_MULTIPLIER;
|
||||
}
|
||||
});
|
||||
std::transform(
|
||||
tidied.parameters.radiuses.begin(),
|
||||
tidied.parameters.radiuses.end(),
|
||||
search_radiuses.begin(),
|
||||
[default_radius = this->default_radius](const boost::optional<double> &maybe_radius) {
|
||||
if (maybe_radius)
|
||||
{
|
||||
return *maybe_radius * RADIUS_MULTIPLIER;
|
||||
}
|
||||
else
|
||||
{
|
||||
return default_radius.has_value()
|
||||
? *default_radius
|
||||
: routing_algorithms::DEFAULT_GPS_PRECISION * RADIUS_MULTIPLIER;
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
auto candidates_lists =
|
||||
|
||||
@@ -10,7 +10,10 @@
|
||||
namespace osrm::engine::plugins
|
||||
{
|
||||
|
||||
NearestPlugin::NearestPlugin(const int max_results_) : max_results{max_results_} {}
|
||||
NearestPlugin::NearestPlugin(const int max_results_, const boost::optional<double> default_radius_)
|
||||
: BasePlugin(default_radius_), max_results{max_results_}
|
||||
{
|
||||
}
|
||||
|
||||
Status NearestPlugin::HandleRequest(const RoutingAlgorithmsInterface &algorithms,
|
||||
const api::NearestParameters ¶ms,
|
||||
|
||||
@@ -14,8 +14,9 @@
|
||||
namespace osrm::engine::plugins
|
||||
{
|
||||
|
||||
TablePlugin::TablePlugin(const int max_locations_distance_table)
|
||||
: max_locations_distance_table(max_locations_distance_table)
|
||||
TablePlugin::TablePlugin(const int max_locations_distance_table,
|
||||
const boost::optional<double> default_radius)
|
||||
: BasePlugin(default_radius), max_locations_distance_table(max_locations_distance_table)
|
||||
{
|
||||
}
|
||||
|
||||
|
||||
@@ -15,8 +15,11 @@
|
||||
namespace osrm::engine::plugins
|
||||
{
|
||||
|
||||
ViaRoutePlugin::ViaRoutePlugin(int max_locations_viaroute, int max_alternatives)
|
||||
: max_locations_viaroute(max_locations_viaroute), max_alternatives(max_alternatives)
|
||||
ViaRoutePlugin::ViaRoutePlugin(int max_locations_viaroute,
|
||||
int max_alternatives,
|
||||
boost::optional<double> default_radius)
|
||||
: BasePlugin(default_radius), max_locations_viaroute(max_locations_viaroute),
|
||||
max_alternatives(max_alternatives)
|
||||
{
|
||||
}
|
||||
|
||||
|
||||
@@ -81,6 +81,7 @@ Napi::Object Engine::Init(Napi::Env env, Napi::Object exports)
|
||||
* @param {Number} [options.max_radius_map_matching] Max. radius size supported in map matching query (default: 5).
|
||||
* @param {Number} [options.max_results_nearest] Max. results supported in nearest query (default: unlimited).
|
||||
* @param {Number} [options.max_alternatives] Max. number of alternatives supported in alternative routes query (default: 3).
|
||||
* @param {Number} [options.default_radius] Default radius for queries (default: unlimited).
|
||||
*
|
||||
* @class OSRM
|
||||
*
|
||||
|
||||
@@ -147,7 +147,10 @@ inline unsigned generateServerProgramOptions(const int argc,
|
||||
"Max. number of alternatives supported in the MLD route query") //
|
||||
("max-matching-radius",
|
||||
value<double>(&config.max_radius_map_matching)->default_value(-1.0),
|
||||
"Max. radius size supported in map matching query. Default: unlimited.");
|
||||
"Max. radius size supported in map matching query. Default: unlimited.") //
|
||||
("default-radius",
|
||||
value<boost::optional<double>>(&config.default_radius),
|
||||
"Default radius size for queries. Default: unlimited.");
|
||||
|
||||
// hidden options, will be allowed on command line, but will not be shown to the user
|
||||
boost::program_options::options_description hidden_options("Hidden options");
|
||||
|
||||
Reference in New Issue
Block a user