All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
RoutingRequestBuilder.h
1 // Copyright eeGeo Ltd (2016), All Rights Reserved
2 
3 #pragma once
4 
5 #include <string>
6 #include "Space.h"
7 #include "Web.h"
8 #include "RoutingQueryOptions.h"
9 
10 namespace Eegeo
11 {
12  namespace Routes
13  {
14  namespace Webservice
15  {
17  {
18  public:
19 
20  RoutingRequestBuilder(const Web::ApiTokenModel& apiTokenModel);
21 
22  std::string CreateRouteRequest(const Eegeo::Space::LatLongAltitude& start, const Eegeo::Space::LatLongAltitude& end) const;
23 
24  std::string CreateRouteRequestWithLevels(
25  const Eegeo::Space::LatLongAltitude& start,
26  int startLevel,
28  int endLevel) const;
29 
30  RoutingRequestBuilder& AddIndoorWaypoint(const Eegeo::Space::LatLong& point, int level);
31  RoutingRequestBuilder& AddWaypoint(const Eegeo::Space::LatLong& point);
32  std::string Finish();
33  void SetTransportationMode(TransportationMode mode);
34  const std::string GetTransportationOptionString() const;
35  const std::string& GetRoutingServiceUrl() const;
36  void SetRoutingServiceUrl(const std::string& serviceUrl);
37  private:
38 
39  std::string GetLocationString(const Eegeo::Space::LatLong& point, int* level);
40  int m_waypointCount;
41  std::string m_waypointString;
42 
43  TransportationMode m_transportationMode;
44  std::string m_routingServiceUrl;
45  const Web::ApiTokenModel& m_apiTokenModel;
46  };
47  }
48  }
49 }