libosmscout 1.1.1
Loading...
Searching...
No Matches
RouteDescription.h
Go to the documentation of this file.
1#ifndef OSMSCOUT_ROUTE_DESCRIPTION_H
2#define OSMSCOUT_ROUTE_DESCRIPTION_H
3
4/*
5 This source is part of the libosmscout library
6 Copyright (C) 2009 Tim Teulings
7
8 This library is free software; you can redistribute it and/or
9 modify it under the terms of the GNU Lesser General Public
10 License as published by the Free Software Foundation; either
11 version 2.1 of the License, or (at your option) any later version.
12
13 This library is distributed in the hope that it will be useful,
14 but WITHOUT ANY WARRANTY; without even the implied warranty of
15 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
16 Lesser General Public License for more details.
17
18 You should have received a copy of the GNU Lesser General Public
19 License along with this library; if not, write to the Free Software
20 Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
21*/
22
23#include <list>
24#include <memory>
25#include <string>
26#include <unordered_map>
27#include <vector>
28#include <map>
29
30#include <osmscout/ObjectRef.h>
31#include <osmscout/Path.h>
32#include <osmscout/GeoCoord.h>
36#include <osmscout/util/Time.h>
37
38namespace osmscout {
39
55 {
56 public:
58 static const char* const NODE_START_DESC;
60 static const char* const NODE_TARGET_DESC;
62 static const char* const WAY_NAME_DESC;
64 static const char* const WAY_NAME_CHANGED_DESC;
66 static const char* const CROSSING_WAYS_DESC;
68 static const char* const DIRECTION_DESC;
70 static const char* const TURN_DESC;
72 static const char* const ROUNDABOUT_ENTER_DESC;
74 static const char* const ROUNDABOUT_LEAVE_DESC;
76 static const char* const MOTORWAY_ENTER_DESC;
78 static const char* const MOTORWAY_CHANGE_DESC;
80 static const char* const MOTORWAY_LEAVE_DESC;
82 static const char* const MOTORWAY_JUNCTION_DESC;
84 static const char* const CROSSING_DESTINATION_DESC;
86 static const char* const WAY_MAXSPEED_DESC;
88 static const char* const WAY_TYPE_NAME_DESC;
90 static const char* const POI_AT_ROUTE_DESC;
92 static const char* const LANES_DESC;
94 static const char* const SUGGESTED_LANES_DESC;
96 static const char* const NODE_VIA_DESC;
97
98 public:
104 {
105 public:
106 virtual ~Description() = default;
107
108 virtual std::string GetDebugString() const = 0;
109 };
110
111 using DescriptionRef = std::shared_ptr<Description>;
112
118 {
119 private:
120 std::string description;
121
122 public:
123 explicit StartDescription(const std::string& description);
124
125 std::string GetDebugString() const override;
126
127 std::string GetDescription() const;
128 };
129
130 using StartDescriptionRef = std::shared_ptr<StartDescription>;
131
137 {
138 private:
139 std::string description;
140
141 public:
142 explicit TargetDescription(const std::string& description);
143
144 std::string GetDebugString() const override;
145
146 std::string GetDescription() const;
147 };
148
149 using TargetDescriptionRef = std::shared_ptr<TargetDescription>;
150
157 {
158 private:
159 std::string name;
160 std::string ref;
161
162 public:
163 explicit NameDescription(const std::string& name);
164
165 NameDescription(const std::string& name,
166 const std::string& ref);
167
168 std::string GetDebugString() const override;
169
170 bool HasName() const;
171
172 std::string GetName() const;
173 std::string GetRef() const;
174
175 std::string GetDescription() const;
176 };
177
178 using NameDescriptionRef = std::shared_ptr<NameDescription>;
179
186 {
187 NameDescriptionRef originDescription;
188 NameDescriptionRef targetDescription;
189
190 public:
192 const NameDescriptionRef& targetDescription);
193
194 std::string GetDebugString() const override;
195
197 {
198 return originDescription;
199 }
200
202 {
203 return targetDescription;
204 }
205 };
206
207 using NameChangedDescriptionRef = std::shared_ptr<NameChangedDescription>;
208
214 {
215 private:
216 size_t exitCount;
217 NameDescriptionRef originDescription;
218 NameDescriptionRef targetDescription;
219 std::list<NameDescriptionRef> descriptions;
220
221 public:
222 CrossingWaysDescription(size_t exitCount,
223 const NameDescriptionRef& originDescription,
224 const NameDescriptionRef& targetDescription);
225
226 void AddDescription(const NameDescriptionRef& description);
227
228 std::string GetDebugString() const override;
229
230 size_t GetExitCount() const
231 {
232 return exitCount;
233 }
234
235 bool HasMultipleExits() const
236 {
237 return exitCount>1;
238 }
239
241 {
242 return originDescription;
243 }
244
246 {
247 return targetDescription;
248 }
249
250 const std::list<NameDescriptionRef>& GetDescriptions() const
251 {
252 return descriptions;
253 }
254 };
255
256 using CrossingWaysDescriptionRef = std::shared_ptr<CrossingWaysDescription>;
257
270 {
271 public:
281
282 private:
283 double turnAngle;
284 double curveAngle;
285 Move turn;
286 Move curve;
287
288 private:
289 Move ConvertAngleToMove(double angle) const;
290 std::string ConvertMoveToString(Move move) const;
291
292 public:
293 DirectionDescription(double turnAngle,
294 double curveAngle);
295
296 std::string GetDebugString() const override;
297
298 double GetTurnAngle() const
299 {
300 return turnAngle;
301 }
302
303 double GetCurveAngle() const
304 {
305 return curveAngle;
306 }
307
308 Move GetTurn() const
309 {
310 return turn;
311 }
312
314 {
315 return curve;
316 }
317 };
318
319 using DirectionDescriptionRef = std::shared_ptr<DirectionDescription>;
320
326 {
327 public:
328 std::string GetDebugString() const override;
329 };
330
331 using TurnDescriptionRef = std::shared_ptr<TurnDescription>;
332
338 {
339 private:
340 bool clockwise;
341
342 public:
343 explicit RoundaboutEnterDescription(bool clockwise);
344
345 std::string GetDebugString() const override;
346
347 bool IsClockwise() const
348 {
349 return clockwise;
350 }
351 };
352
353 using RoundaboutEnterDescriptionRef = std::shared_ptr<RoundaboutEnterDescription>;
354
360 {
361 private:
362 size_t exitCount;
363 bool clockwise;
364
365 public:
366 RoundaboutLeaveDescription(size_t exitCount, bool clockwise);
367
368 std::string GetDebugString() const override;
369
370 size_t GetExitCount() const
371 {
372 return exitCount;
373 }
374
375 bool IsClockwise() const
376 {
377 return clockwise;
378 }
379 };
380
381 using RoundaboutLeaveDescriptionRef = std::shared_ptr<RoundaboutLeaveDescription>;
382
388 {
389 private:
390 NameDescriptionRef toDescription;
391
392 public:
393 explicit MotorwayEnterDescription(const NameDescriptionRef& toDescription);
394
395 std::string GetDebugString() const override;
396
398 {
399 return toDescription;
400 }
401 };
402
403 using MotorwayEnterDescriptionRef = std::shared_ptr<MotorwayEnterDescription>;
404
410 {
411 private:
412 NameDescriptionRef fromDescription;
413 NameDescriptionRef toDescription;
414
415 public:
417 const NameDescriptionRef& toDescription);
418
419 std::string GetDebugString() const override;
420
422 {
423 return fromDescription;
424 }
425
427 {
428 return toDescription;
429 }
430 };
431
432 using MotorwayChangeDescriptionRef = std::shared_ptr<MotorwayChangeDescription>;
433
439 {
440 private:
441 NameDescriptionRef fromDescription;
442
443 public:
444 explicit MotorwayLeaveDescription(const NameDescriptionRef& fromDescription);
445
446 std::string GetDebugString() const override;
447
449 {
450 return fromDescription;
451 }
452 };
453
454 using MotorwayLeaveDescriptionRef = std::shared_ptr<MotorwayLeaveDescription>;
455
461 {
462 private:
463 NameDescriptionRef junctionDescription;
464
465 public:
466 explicit MotorwayJunctionDescription(const NameDescriptionRef& junctionDescription);
467
468 std::string GetDebugString() const override;
469
471 {
472 return junctionDescription;
473 }
474 };
475
476 using MotorwayJunctionDescriptionRef = std::shared_ptr<MotorwayJunctionDescription>;
477
483 {
484 private:
485 std::string description;
486
487 public:
488 explicit DestinationDescription(const std::string& description);
489
490 std::string GetDebugString() const override;
491
492 std::string GetDescription() const;
493 };
494
495 using DestinationDescriptionRef = std::shared_ptr<DestinationDescription>;
496
502 {
503 private:
504 uint8_t maxSpeed;
505
506 public:
507 explicit MaxSpeedDescription(uint8_t speed);
508
509 std::string GetDebugString() const override;
510
511 uint8_t GetMaxSpeed() const
512 {
513 return maxSpeed;
514 }
515 };
516
517 using MaxSpeedDescriptionRef = std::shared_ptr<MaxSpeedDescription>;
518
524 {
525 private:
526 std::string name;
527
528 public:
529 explicit TypeNameDescription(const std::string& name);
530
531 std::string GetDebugString() const override;
532
533 bool HasName() const;
534
535 std::string GetName() const;
536
537 std::string GetDescription() const;
538 };
539
540 using TypeNameDescriptionRef = std::shared_ptr<TypeNameDescription>;
541
547 {
548 private:
549 DatabaseId databaseId;
550 ObjectFileRef object;
552 Distance distance;
553
554 public:
556 const ObjectFileRef& object,
557 const NameDescriptionRef& name,
558 const Distance& distance);
559
560 std::string GetDebugString() const override;
561
563 {
564 return databaseId;
565 }
566
567 ObjectFileRef GetObject() const
568 {
569 return object;
570 }
571
573 {
574 return name;
575 }
576
577 Distance GetDistance() const
578 {
579 return distance;
580 }
581 };
582
583 using POIAtRouteDescriptionRef = std::shared_ptr<POIAtRouteDescription>;
584
590 {
591 private:
592 bool oneway{false};
593 uint8_t laneCount{1};
594
601 std::vector<LaneTurn> laneTurns;
602
603 public:
604 LaneDescription(bool oneway,
605 uint8_t laneCount,
606 const std::vector<LaneTurn> &laneTurns);
607
608 std::string GetDebugString() const override;
609
610 bool IsOneway() const
611 {
612 return oneway;
613 }
614
615 uint8_t GetLaneCount() const
616 {
617 return laneCount;
618 }
619
620 const std::vector<LaneTurn>& GetLaneTurns() const
621 {
622 return laneTurns;
623 }
624
625 bool operator==(const LaneDescription &o) const;
626 bool operator!=(const LaneDescription &o) const;
627 };
628
629 using LaneDescriptionRef = std::shared_ptr<LaneDescription>;
630
639 {
640 private:
641 uint8_t from = uint8_t(-1);
642 uint8_t to = uint8_t(-1);
643
644 public:
645 SuggestedLaneDescription(uint8_t from, uint8_t to);
646
647 std::string GetDebugString() const override;
648
649 uint8_t GetFrom() const
650 {
651 return from;
652 }
653
654 uint8_t GetTo() const
655 {
656 return to;
657 }
658 };
659
660 using SuggestedLaneDescriptionRef = std::shared_ptr<SuggestedLaneDescription>;
661
667 {
668 private:
669 int sectionNumber;
670 int nodeCount;
671
672 public:
673 explicit ViaDescription(int sectionNumber, int nodeCount) : sectionNumber(sectionNumber), nodeCount(nodeCount) {};
674
675 std::string GetDebugString() const override;
676
677 int GetSectionNumber() const { return sectionNumber; };
678
679 int GetNodeCount() const { return nodeCount; };
680 };
681
682 using ViaDescriptionRef = std::shared_ptr<ViaDescription>;
683
688 {
689 private:
690 DatabaseId database;
691 size_t currentNodeIndex;
692 std::vector<ObjectFileRef> objects;
693 ObjectFileRef pathObject;
694 size_t targetNodeIndex;
695 Distance distance;
696 Duration time;
697 GeoCoord location;
698 std::unordered_map<std::string,DescriptionRef> descriptionMap;
699 std::list<DescriptionRef> descriptions;
700
701 public:
702 Node(DatabaseId database,
703 size_t currentNodeIndex,
704 const std::vector<ObjectFileRef>& objects,
705 const ObjectFileRef& pathObject,
706 size_t targetNodeIndex);
707
708 size_t GetCurrentNodeIndex() const
709 {
710 return currentNodeIndex;
711 }
712
716 const std::vector<ObjectFileRef>& GetObjects() const
717 {
718 return objects;
719 }
720
724 const std::list<DescriptionRef>& GetDescriptions() const
725 {
726 return descriptions;
727 }
728
733 bool HasPathObject() const
734 {
735 return pathObject.Valid();
736 }
737
739 {
740 return database;
741 }
742
744 {
745 return DBFileOffset(GetDatabaseId(),GetPathObject().GetFileOffset());
746 }
747
751 ObjectFileRef GetPathObject() const
752 {
753 return pathObject;
754 }
755
759 size_t GetTargetNodeIndex() const
760 {
761 return targetNodeIndex;
762 }
763
767 Distance GetDistance() const
768 {
769 return distance;
770 }
771
776 {
777 return time;
778 }
779
783 GeoCoord GetLocation() const
784 {
785 return location;
786 }
787
788 bool HasDescription(const char* name) const;
789 DescriptionRef GetDescription(const char* name) const;
790
791 void SetDistance(Distance distance);
792 void SetTime(const Timestamp::duration &duration);
793 void SetLocation(const GeoCoord &coord);
794
795 void AddDescription(const char* name,
796 const DescriptionRef& description);
797 };
798
799 using NodeIterator = std::list<RouteDescription::Node>::const_iterator;
800
801 private:
802 std::list<Node> nodes;
803 std::map<DatabaseId, std::string> databaseMapping;
804
805 public:
806 RouteDescription() = default;
807 virtual ~RouteDescription() = default;
808
809 void SetDatabaseMapping(const std::map<DatabaseId, std::string>& databaseMapping);
810
811 std::map<DatabaseId, std::string> GetDatabaseMapping() const;
812
813 void Clear();
814
815 bool Empty() const;
816
817 void AddNode(DatabaseId database,
818 size_t currentNodeIndex,
819 const std::vector<ObjectFileRef>& objects,
820 const ObjectFileRef& pathObject,
821 size_t targetNodeIndex);
822
823 std::list<Node>& Nodes()
824 {
825 return nodes;
826 }
827
828 const std::list<Node>& Nodes() const
829 {
830 return nodes;
831 }
832 };
833
834 using RouteDescriptionRef = std::shared_ptr<RouteDescription>;
835}
836
837#endif
#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
void AddDescription(const NameDescriptionRef &description)
const std::list< NameDescriptionRef > & GetDescriptions() const
Definition RouteDescription.h:250
Definition RouteDescription.h:104
virtual std::string GetDebugString() const =0
DestinationDescription(const std::string &description)
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
std::string GetDebugString() const override
uint8_t GetMaxSpeed() const
Definition RouteDescription.h:511
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)
NameDescriptionRef GetToDescription() const
Definition RouteDescription.h:397
MotorwayJunctionDescription(const NameDescriptionRef &junctionDescription)
NameDescriptionRef GetJunctionDescription() const
Definition RouteDescription.h:470
NameDescriptionRef GetFromDescription() const
Definition RouteDescription.h:448
MotorwayLeaveDescription(const NameDescriptionRef &fromDescription)
NameChangedDescription(const NameDescriptionRef &originDescription, const NameDescriptionRef &targetDescription)
NameDescriptionRef GetTargetDescription() const
Definition RouteDescription.h:201
NameDescriptionRef GetOriginDescription() const
Definition RouteDescription.h:196
NameDescription(const std::string &name, const std::string &ref)
std::string GetDebugString() const override
NameDescription(const std::string &name)
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)
DatabaseId GetDatabaseId() const
Definition RouteDescription.h:562
ObjectFileRef GetObject() const
Definition RouteDescription.h:567
bool IsClockwise() const
Definition RouteDescription.h:347
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
StartDescription(const std::string &description)
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
Definition RouteDescription.h:326
std::string GetDebugString() const override
std::string GetDebugString() const override
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
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
Definition Area.h:39
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