1#ifndef OSMSCOUT_ROUTE_DESCRIPTION_H
2#define OSMSCOUT_ROUTE_DESCRIPTION_H
26#include <unordered_map>
120 std::string description;
139 std::string description;
166 const std::string& ref);
198 return originDescription;
203 return targetDescription;
219 std::list<NameDescriptionRef> descriptions;
242 return originDescription;
247 return targetDescription;
289 Move ConvertAngleToMove(
double angle)
const;
290 std::string ConvertMoveToString(Move move)
const;
399 return toDescription;
423 return fromDescription;
428 return toDescription;
450 return fromDescription;
472 return junctionDescription;
485 std::string description;
550 ObjectFileRef object;
556 const ObjectFileRef&
object,
558 const Distance& distance);
593 uint8_t laneCount{1};
601 std::vector<LaneTurn> laneTurns;
606 const std::vector<LaneTurn> &laneTurns);
641 uint8_t from = uint8_t(-1);
642 uint8_t to = uint8_t(-1);
673 explicit ViaDescription(
int sectionNumber,
int nodeCount) : sectionNumber(sectionNumber), nodeCount(nodeCount) {};
691 size_t currentNodeIndex;
692 std::vector<ObjectFileRef> objects;
693 ObjectFileRef pathObject;
694 size_t targetNodeIndex;
698 std::unordered_map<std::string,DescriptionRef> descriptionMap;
699 std::list<DescriptionRef> descriptions;
703 size_t currentNodeIndex,
704 const std::vector<ObjectFileRef>& objects,
705 const ObjectFileRef& pathObject,
706 size_t targetNodeIndex);
710 return currentNodeIndex;
735 return pathObject.Valid();
761 return targetNodeIndex;
792 void SetTime(
const Timestamp::duration &duration);
799 using NodeIterator = std::list<RouteDescription::Node>::const_iterator;
802 std::list<Node> nodes;
803 std::map<DatabaseId, std::string> databaseMapping;
818 size_t currentNodeIndex,
819 const std::vector<ObjectFileRef>& objects,
820 const ObjectFileRef& pathObject,
821 size_t targetNodeIndex);
828 const std::list<Node>&
Nodes()
const
#define OSMSCOUT_API
Definition CoreImportExport.h:45
CrossingWaysDescription(size_t exitCount, const NameDescriptionRef &originDescription, const NameDescriptionRef &targetDescription)
NameDescriptionRef GetOriginDesccription() const
Definition RouteDescription.h:240
size_t GetExitCount() const
Definition RouteDescription.h:230
NameDescriptionRef GetTargetDesccription() const
Definition RouteDescription.h:245
bool HasMultipleExits() const
Definition RouteDescription.h:235
std::string GetDebugString() const override
void AddDescription(const NameDescriptionRef &description)
const std::list< NameDescriptionRef > & GetDescriptions() const
Definition RouteDescription.h:250
Definition RouteDescription.h:104
virtual ~Description()=default
virtual std::string GetDebugString() const =0
std::string GetDescription() const
DestinationDescription(const std::string &description)
std::string GetDebugString() const override
Move GetCurve() const
Definition RouteDescription.h:313
double GetTurnAngle() const
Definition RouteDescription.h:298
DirectionDescription(double turnAngle, double curveAngle)
Move
Definition RouteDescription.h:272
@ sharpRight
Definition RouteDescription.h:279
@ left
Definition RouteDescription.h:274
@ slightlyRight
Definition RouteDescription.h:277
@ slightlyLeft
Definition RouteDescription.h:275
@ sharpLeft
Definition RouteDescription.h:273
@ straightOn
Definition RouteDescription.h:276
@ right
Definition RouteDescription.h:278
double GetCurveAngle() const
Definition RouteDescription.h:303
Move GetTurn() const
Definition RouteDescription.h:308
std::string GetDebugString() const override
const std::vector< LaneTurn > & GetLaneTurns() const
Definition RouteDescription.h:620
bool operator==(const LaneDescription &o) const
LaneDescription(bool oneway, uint8_t laneCount, const std::vector< LaneTurn > &laneTurns)
uint8_t GetLaneCount() const
Definition RouteDescription.h:615
bool operator!=(const LaneDescription &o) const
bool IsOneway() const
Definition RouteDescription.h:610
std::string GetDebugString() const override
MaxSpeedDescription(uint8_t speed)
std::string GetDebugString() const override
uint8_t GetMaxSpeed() const
Definition RouteDescription.h:511
std::string GetDebugString() const override
NameDescriptionRef GetFromDescription() const
Definition RouteDescription.h:421
MotorwayChangeDescription(const NameDescriptionRef &fromDescription, const NameDescriptionRef &toDescription)
NameDescriptionRef GetToDescription() const
Definition RouteDescription.h:426
MotorwayEnterDescription(const NameDescriptionRef &toDescription)
std::string GetDebugString() const override
NameDescriptionRef GetToDescription() const
Definition RouteDescription.h:397
MotorwayJunctionDescription(const NameDescriptionRef &junctionDescription)
std::string GetDebugString() const override
NameDescriptionRef GetJunctionDescription() const
Definition RouteDescription.h:470
NameDescriptionRef GetFromDescription() const
Definition RouteDescription.h:448
MotorwayLeaveDescription(const NameDescriptionRef &fromDescription)
std::string GetDebugString() const override
std::string GetDebugString() const override
NameChangedDescription(const NameDescriptionRef &originDescription, const NameDescriptionRef &targetDescription)
NameDescriptionRef GetTargetDescription() const
Definition RouteDescription.h:201
NameDescriptionRef GetOriginDescription() const
Definition RouteDescription.h:196
std::string GetName() const
NameDescription(const std::string &name, const std::string &ref)
std::string GetDebugString() const override
std::string GetDescription() const
NameDescription(const std::string &name)
std::string GetRef() const
void SetLocation(const GeoCoord &coord)
void SetDistance(Distance distance)
void SetTime(const Timestamp::duration &duration)
DBFileOffset GetDBFileOffset() const
Definition RouteDescription.h:743
const std::vector< ObjectFileRef > & GetObjects() const
Definition RouteDescription.h:716
size_t GetCurrentNodeIndex() const
Definition RouteDescription.h:708
GeoCoord GetLocation() const
Definition RouteDescription.h:783
Node(DatabaseId database, size_t currentNodeIndex, const std::vector< ObjectFileRef > &objects, const ObjectFileRef &pathObject, size_t targetNodeIndex)
DatabaseId GetDatabaseId() const
Definition RouteDescription.h:738
Duration GetTime() const
Definition RouteDescription.h:775
void AddDescription(const char *name, const DescriptionRef &description)
Distance GetDistance() const
Definition RouteDescription.h:767
size_t GetTargetNodeIndex() const
Definition RouteDescription.h:759
bool HasPathObject() const
Definition RouteDescription.h:733
const std::list< DescriptionRef > & GetDescriptions() const
Definition RouteDescription.h:724
DescriptionRef GetDescription(const char *name) const
ObjectFileRef GetPathObject() const
Definition RouteDescription.h:751
bool HasDescription(const char *name) const
NameDescriptionRef GetName() const
Definition RouteDescription.h:572
Distance GetDistance() const
Definition RouteDescription.h:577
POIAtRouteDescription(DatabaseId databaseId, const ObjectFileRef &object, const NameDescriptionRef &name, const Distance &distance)
std::string GetDebugString() const override
DatabaseId GetDatabaseId() const
Definition RouteDescription.h:562
ObjectFileRef GetObject() const
Definition RouteDescription.h:567
bool IsClockwise() const
Definition RouteDescription.h:347
RoundaboutEnterDescription(bool clockwise)
std::string GetDebugString() const override
std::string GetDebugString() const override
size_t GetExitCount() const
Definition RouteDescription.h:370
bool IsClockwise() const
Definition RouteDescription.h:375
RoundaboutLeaveDescription(size_t exitCount, bool clockwise)
std::string GetDebugString() const override
std::string GetDescription() const
StartDescription(const std::string &description)
std::string GetDebugString() const override
SuggestedLaneDescription(uint8_t from, uint8_t to)
uint8_t GetFrom() const
Definition RouteDescription.h:649
uint8_t GetTo() const
Definition RouteDescription.h:654
TargetDescription(const std::string &description)
std::string GetDebugString() const override
std::string GetDescription() const
Definition RouteDescription.h:326
std::string GetDebugString() const override
std::string GetDebugString() const override
std::string GetName() const
TypeNameDescription(const std::string &name)
std::string GetDescription() const
ViaDescription(int sectionNumber, int nodeCount)
Definition RouteDescription.h:673
std::string GetDebugString() const override
int GetSectionNumber() const
Definition RouteDescription.h:677
int GetNodeCount() const
Definition RouteDescription.h:679
void SetDatabaseMapping(const std::map< DatabaseId, std::string > &databaseMapping)
static const char *const DIRECTION_DESC
Definition RouteDescription.h:68
std::shared_ptr< ViaDescription > ViaDescriptionRef
Definition RouteDescription.h:682
static const char *const CROSSING_WAYS_DESC
Definition RouteDescription.h:66
std::shared_ptr< TargetDescription > TargetDescriptionRef
Definition RouteDescription.h:149
static const char *const NODE_VIA_DESC
Definition RouteDescription.h:96
static const char *const POI_AT_ROUTE_DESC
Definition RouteDescription.h:90
static const char *const LANES_DESC
Definition RouteDescription.h:92
static const char *const ROUNDABOUT_ENTER_DESC
Definition RouteDescription.h:72
static const char *const MOTORWAY_LEAVE_DESC
Definition RouteDescription.h:80
static const char *const MOTORWAY_CHANGE_DESC
Definition RouteDescription.h:78
static const char *const MOTORWAY_JUNCTION_DESC
Definition RouteDescription.h:82
void AddNode(DatabaseId database, size_t currentNodeIndex, const std::vector< ObjectFileRef > &objects, const ObjectFileRef &pathObject, size_t targetNodeIndex)
static const char *const SUGGESTED_LANES_DESC
Definition RouteDescription.h:94
std::shared_ptr< NameChangedDescription > NameChangedDescriptionRef
Definition RouteDescription.h:207
std::shared_ptr< RoundaboutEnterDescription > RoundaboutEnterDescriptionRef
Definition RouteDescription.h:353
std::shared_ptr< CrossingWaysDescription > CrossingWaysDescriptionRef
Definition RouteDescription.h:256
std::shared_ptr< MotorwayJunctionDescription > MotorwayJunctionDescriptionRef
Definition RouteDescription.h:476
std::shared_ptr< MotorwayChangeDescription > MotorwayChangeDescriptionRef
Definition RouteDescription.h:432
std::shared_ptr< Description > DescriptionRef
Definition RouteDescription.h:111
std::map< DatabaseId, std::string > GetDatabaseMapping() const
std::shared_ptr< StartDescription > StartDescriptionRef
Definition RouteDescription.h:130
std::shared_ptr< NameDescription > NameDescriptionRef
Definition RouteDescription.h:178
static const char *const WAY_NAME_CHANGED_DESC
Definition RouteDescription.h:64
std::shared_ptr< MaxSpeedDescription > MaxSpeedDescriptionRef
Definition RouteDescription.h:517
std::list< Node > & Nodes()
Definition RouteDescription.h:823
const std::list< Node > & Nodes() const
Definition RouteDescription.h:828
virtual ~RouteDescription()=default
std::shared_ptr< SuggestedLaneDescription > SuggestedLaneDescriptionRef
Definition RouteDescription.h:660
static const char *const NODE_TARGET_DESC
Definition RouteDescription.h:60
std::shared_ptr< TypeNameDescription > TypeNameDescriptionRef
Definition RouteDescription.h:540
static const char *const WAY_TYPE_NAME_DESC
Definition RouteDescription.h:88
static const char *const WAY_NAME_DESC
Definition RouteDescription.h:62
std::shared_ptr< TurnDescription > TurnDescriptionRef
Definition RouteDescription.h:331
static const char *const MOTORWAY_ENTER_DESC
Definition RouteDescription.h:76
static const char *const CROSSING_DESTINATION_DESC
Definition RouteDescription.h:84
static const char *const TURN_DESC
Definition RouteDescription.h:70
std::shared_ptr< MotorwayLeaveDescription > MotorwayLeaveDescriptionRef
Definition RouteDescription.h:454
std::shared_ptr< LaneDescription > LaneDescriptionRef
Definition RouteDescription.h:629
RouteDescription()=default
static const char *const WAY_MAXSPEED_DESC
Definition RouteDescription.h:86
static const char *const NODE_START_DESC
Definition RouteDescription.h:58
static const char *const ROUNDABOUT_LEAVE_DESC
Definition RouteDescription.h:74
std::shared_ptr< MotorwayEnterDescription > MotorwayEnterDescriptionRef
Definition RouteDescription.h:403
std::shared_ptr< DestinationDescription > DestinationDescriptionRef
Definition RouteDescription.h:495
std::shared_ptr< RoundaboutLeaveDescription > RoundaboutLeaveDescriptionRef
Definition RouteDescription.h:381
std::shared_ptr< POIAtRouteDescription > POIAtRouteDescriptionRef
Definition RouteDescription.h:583
std::shared_ptr< DirectionDescription > DirectionDescriptionRef
Definition RouteDescription.h:319
std::list< RouteDescription::Node >::const_iterator NodeIterator
Definition RouteDescription.h:799
uint32_t DatabaseId
Definition DBFileOffset.h:30
std::shared_ptr< RouteDescription > RouteDescriptionRef
Definition RouteDescription.h:834
Timestamp::duration Duration
Definition Time.h:29
Definition DBFileOffset.h:93