Add support for a default_bearing_radius flag (#6575)

This commit is contained in:
Whytro
2023-03-25 00:49:33 +09:00
committed by GitHub
parent d6afe91d8f
commit d51631401e
19 changed files with 95 additions and 34 deletions
+19 -14
View File
@@ -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 =
+4 -1
View File
@@ -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 &params,
+3 -2
View File
@@ -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)
{
}
+5 -2
View File
@@ -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)
{
}