Advertisement
Guest User

OSRM

a guest
Mar 12th, 2015
526
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.04 KB | None | 0 0
  1. //
  2. //  Router.cpp
  3. //  
  4. //
  5. //  Created by Leonardo Yvens on 12/02/15.
  6. //  
  7. //
  8.  
  9. #include "Router.h"
  10. #include "boost/filesystem/path.hpp"
  11. #include "ServerPaths.h"
  12. #include "ProgramOptions.h"
  13. #include <InternalDataFacade.h>
  14. #include <viaroute.hpp>
  15.  
  16. ViaRoutePlugin<InternalDataFacade<QueryEdge::EdgeData>> *router;
  17.  
  18. void Router::init_data(std::string path_string)
  19. {
  20.     //fetch data from files
  21.     ServerPaths paths;
  22.     paths["base"] = path_string;
  23.     boost::filesystem::path path = paths["base"];
  24.     populate_base_path(paths);
  25.    
  26.     //construct router object
  27.     InternalDataFacade<QueryEdge::EdgeData> *query_data_facade = new InternalDataFacade<QueryEdge::EdgeData>(paths);
  28.     router = new ViaRoutePlugin<InternalDataFacade<QueryEdge::EdgeData>>(query_data_facade);
  29. }
  30.  
  31. //makes call to OSRM and returns route weights
  32. void Router::route(FixedPointCoordinate start, FixedPointCoordinate end)
  33. {
  34.     //using namespace boost::network;
  35.     using namespace boost::posix_time;
  36.     using boost::lexical_cast;
  37.     using std::string;
  38.    
  39.     RouteParameters route_parameters;
  40.     route_parameters.zoom_level = 18;           // no generalization
  41.     route_parameters.print_instructions = false; // turn by turn instructions
  42.     route_parameters.alternate_route = false;    // get an alternate route, too
  43.     route_parameters.geometry = false;           // retrieve geometry of route
  44.     route_parameters.compression = false;        // polyline encoding
  45.     route_parameters.check_sum = UINT_MAX;      // see wiki
  46.     route_parameters.service = "viaroute";      // that's routing
  47.     route_parameters.output_format = "json";
  48.     route_parameters.jsonp_parameter = ""; // set for jsonp wrapping
  49.     route_parameters.language = "";        // unused atm
  50.    
  51.     // start_coordinate
  52.     route_parameters.coordinates.push_back(start);
  53.     // target_coordinate
  54.     route_parameters.coordinates.push_back(end);
  55.    
  56.     http::Reply reply;
  57.     router->HandleRequest(route_parameters, reply);
  58.    
  59.     std::vector<char> replyContent = reply.content;
  60. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement