Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //
- // Router.cpp
- //
- //
- // Created by Leonardo Yvens on 12/02/15.
- //
- //
- #include "Router.h"
- #include "boost/filesystem/path.hpp"
- #include "ServerPaths.h"
- #include "ProgramOptions.h"
- #include <InternalDataFacade.h>
- #include <viaroute.hpp>
- ViaRoutePlugin<InternalDataFacade<QueryEdge::EdgeData>> *router;
- void Router::init_data(std::string path_string)
- {
- //fetch data from files
- ServerPaths paths;
- paths["base"] = path_string;
- boost::filesystem::path path = paths["base"];
- populate_base_path(paths);
- //construct router object
- InternalDataFacade<QueryEdge::EdgeData> *query_data_facade = new InternalDataFacade<QueryEdge::EdgeData>(paths);
- router = new ViaRoutePlugin<InternalDataFacade<QueryEdge::EdgeData>>(query_data_facade);
- }
- //makes call to OSRM and returns route weights
- void Router::route(FixedPointCoordinate start, FixedPointCoordinate end)
- {
- //using namespace boost::network;
- using namespace boost::posix_time;
- using boost::lexical_cast;
- using std::string;
- RouteParameters route_parameters;
- route_parameters.zoom_level = 18; // no generalization
- route_parameters.print_instructions = false; // turn by turn instructions
- route_parameters.alternate_route = false; // get an alternate route, too
- route_parameters.geometry = false; // retrieve geometry of route
- route_parameters.compression = false; // polyline encoding
- route_parameters.check_sum = UINT_MAX; // see wiki
- route_parameters.service = "viaroute"; // that's routing
- route_parameters.output_format = "json";
- route_parameters.jsonp_parameter = ""; // set for jsonp wrapping
- route_parameters.language = ""; // unused atm
- // start_coordinate
- route_parameters.coordinates.push_back(start);
- // target_coordinate
- route_parameters.coordinates.push_back(end);
- http::Reply reply;
- router->HandleRequest(route_parameters, reply);
- std::vector<char> replyContent = reply.content;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement