From 543e4fb57db9a22bc83461eb97480b7d78d3ea4d Mon Sep 17 00:00:00 2001 From: Michael Krasnyk Date: Sun, 5 Jun 2016 18:04:43 +0200 Subject: [PATCH] Fix rounding issue in query coordinates by using toFixed that internally uses boost::numeric_cast instead of static_cast --- include/server/api/base_parameters_grammar.hpp | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/include/server/api/base_parameters_grammar.hpp b/include/server/api/base_parameters_grammar.hpp index a0399706c..912d7bf5f 100644 --- a/include/server/api/base_parameters_grammar.hpp +++ b/include/server/api/base_parameters_grammar.hpp @@ -111,15 +111,15 @@ struct BaseParametersGrammar : boost::spirit::qi::grammar qi::_1, qi::_2)]; - location_rule = (double_ > qi::lit(',') > - double_)[qi::_val = ph::bind( - [](double lon, double lat) { - return util::Coordinate( - util::FixedLongitude(lon * COORDINATE_PRECISION), - util::FixedLatitude(lat * COORDINATE_PRECISION)); - }, - qi::_1, - qi::_2)]; + location_rule = + (double_ > qi::lit(',') > + double_)[qi::_val = ph::bind( + [](double lon, double lat) { + return util::Coordinate(util::toFixed(util::FloatLongitude(lon)), + util::toFixed(util::FloatLatitude(lat))); + }, + qi::_1, + qi::_2)]; polyline_rule = qi::as_string[qi::lit("polyline(") > +polyline_chars > ')'] [qi::_val = ph::bind(