Fix rounding issue in query coordinates by using toFixed

that internally uses boost::numeric_cast<std::int32_t>
instead of static_cast<std::int32_t>
This commit is contained in:
Michael Krasnyk 2016-06-05 18:04:43 +02:00
parent 3881ead8e5
commit 543e4fb57d
No known key found for this signature in database
GPG Key ID: 3854C9454FE00649

View File

@ -111,15 +111,15 @@ struct BaseParametersGrammar : boost::spirit::qi::grammar<Iterator, Signature>
qi::_1, qi::_1,
qi::_2)]; qi::_2)];
location_rule = (double_ > qi::lit(',') > location_rule =
double_)[qi::_val = ph::bind( (double_ > qi::lit(',') >
[](double lon, double lat) { double_)[qi::_val = ph::bind(
return util::Coordinate( [](double lon, double lat) {
util::FixedLongitude(lon * COORDINATE_PRECISION), return util::Coordinate(util::toFixed(util::FloatLongitude(lon)),
util::FixedLatitude(lat * COORDINATE_PRECISION)); util::toFixed(util::FloatLatitude(lat)));
}, },
qi::_1, qi::_1,
qi::_2)]; qi::_2)];
polyline_rule = qi::as_string[qi::lit("polyline(") > +polyline_chars > ')'] polyline_rule = qi::as_string[qi::lit("polyline(") > +polyline_chars > ')']
[qi::_val = ph::bind( [qi::_val = ph::bind(