Smarter search radius formula for map matching

This commit is contained in:
kerrick-lyft
2016-09-20 10:26:53 -07:00
committed by Patrick Niklaus
parent 44e4728bde
commit b73c59088c
3 changed files with 43 additions and 10 deletions
+21 -1
View File
@@ -33,13 +33,33 @@ struct MatchParametersGrammar final : public RouteParametersGrammar<Iterator, Si
(qi::uint_ %
';')[ph::bind(&engine::api::MatchParameters::timestamps, qi::_r1) = qi::_1];
search_radius_base_rule =
qi::lit("search_radius_base=") > qi::double_[
ph::bind(&engine::api::MatchParameters::search_radius_base, qi::_r1) = qi::_1];
search_radius_multiplier_rule =
qi::lit("search_radius_multiplier=") > qi::double_[
ph::bind(&engine::api::MatchParameters::search_radius_multiplier, qi::_r1) = qi::_1];
search_radius_max_rule =
qi::lit("search_radius_max=") > qi::double_[
ph::bind(&engine::api::MatchParameters::search_radius_max, qi::_r1) = qi::_1];
root_rule = BaseGrammar::query_rule(qi::_r1) > -qi::lit(".json") >
-('?' > (timestamps_rule(qi::_r1) | BaseGrammar::base_rule(qi::_r1)) % '&');
-('?' > (timestamps_rule(qi::_r1) |
search_radius_base_rule(qi::_r1) |
search_radius_multiplier_rule(qi::_r1) |
search_radius_max_rule(qi::_r1) |
BaseGrammar::base_rule(qi::_r1))
% '&');
}
private:
qi::rule<Iterator, Signature> root_rule;
qi::rule<Iterator, Signature> timestamps_rule;
qi::rule<Iterator, Signature> search_radius_base_rule;
qi::rule<Iterator, Signature> search_radius_multiplier_rule;
qi::rule<Iterator, Signature> search_radius_max_rule;
};
}
}