libosmscout 1.1.1
Loading...
Searching...
No Matches
RouteDescriptionBuilder.h
Go to the documentation of this file.
1#ifndef OSMSCOUT_CLIENT_QT_ROUTEDESCRIPTIONBUILDER_H
2#define OSMSCOUT_CLIENT_QT_ROUTEDESCRIPTIONBUILDER_H
3
4/*
5 OSMScout - a Qt backend for libosmscout and libosmscout-map
6 Copyright (C) 2010 Tim Teulings
7 Copyright (C) 2017 Lukas Karas
8
9 This library is free software; you can redistribute it and/or
10 modify it under the terms of the GNU Lesser General Public
11 License as published by the Free Software Foundation; either
12 version 2.1 of the License, or (at your option) any later version.
13
14 This library is distributed in the hope that it will be useful,
15 but WITHOUT ANY WARRANTY; without even the implied warranty of
16 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
17 Lesser General Public License for more details.
18
19 You should have received a copy of the GNU Lesser General Public
20 License along with this library; if not, write to the Free Software
21 Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
22 */
23
27#include <osmscout/Way.h>
28
31
33
34#include <QObject>
35#include <QString>
36#include <memory>
37
38namespace osmscout {
39
44 Q_OBJECT
45
46public:
48 {
49 private:
50 QList<RouteStep> &routeSteps;
51 Distance stopAfter;
53
54 bool skipInformative;
56
57 QStringList streetNames;
58
59 GeoCoord coord;
60 Distance distance;
61 Distance distancePrevious;
62 Duration timestamp;
63 Duration timestampPrevious;
64
65 public:
66 Callback(QList<RouteStep> &routeSteps,
67 const Distance &stopAfter = Distance::Lowest(),
68 bool skipInformative=false);
69
70 ~Callback() override = default;
71
72 void OnStart(const RouteDescription::StartDescriptionRef& startDescription,
73 const RouteDescription::TypeNameDescriptionRef& typeNameDescription,
74 const RouteDescription::NameDescriptionRef& nameDescription) override;
75
76 void OnTargetReached(const RouteDescription::TargetDescriptionRef& targetDescription) override;
77
78 void OnTurn(const RouteDescription::TurnDescriptionRef& turnDescription,
79 const RouteDescription::CrossingWaysDescriptionRef& crossingWaysDescription,
80 const RouteDescription::DirectionDescriptionRef& directionDescription,
81 const RouteDescription::TypeNameDescriptionRef& typeNameDescription,
82 const RouteDescription::NameDescriptionRef& nameDescription) override;
83
85 const RouteDescription::CrossingWaysDescriptionRef& crossingWaysDescription) override;
86
88 const RouteDescription::NameDescriptionRef& nameDescription) override;
89
91 const RouteDescription::CrossingWaysDescriptionRef& crossingWaysDescription) override;
92
94 const RouteDescription::MotorwayJunctionDescriptionRef& motorwayJunctionDescription,
95 const RouteDescription::DirectionDescriptionRef& directionDescription,
96 const RouteDescription::DestinationDescriptionRef& crossingDestinationDescription) override;
97
99 const RouteDescription::MotorwayJunctionDescriptionRef& motorwayJunctionDescription,
100 const RouteDescription::DirectionDescriptionRef& directionDescription,
101 const RouteDescription::NameDescriptionRef& nameDescription,
102 const RouteDescription::DestinationDescriptionRef& destinationDescription) override;
103
104 void OnPathNameChange(const RouteDescription::NameChangedDescriptionRef& nameChangedDescription) override;
105
107
108 void BeforeNode(const RouteDescription::Node& node) override;
109
110 bool Continue() const override;
111
112 RouteStep MkStep(const QString &name);
113 };
114public:
115 ~RouteDescriptionBuilder() override = default;
116
117 void GenerateRouteSteps(const osmscout::RouteDescription &routeDescription,
118 QList<RouteStep> &routeSteps) const;
119
121 const RouteDescription::NodeIterator &last) const;
122
125 const GeoCoord &coord) const;
126
127};
128
129}
130
131#endif //OSMSCOUT_CLIENT_QT_ROUTEDESCRIPTIONBUILDER_H
#define OSMSCOUT_CLIENT_QT_API
Definition ClientQtImportExport.h:45
Definition RouteDescription.h:688
Callback(QList< RouteStep > &routeSteps, const Distance &stopAfter=Distance::Lowest(), bool skipInformative=false)
void PushStreetName(const RouteDescription::NameDescriptionRef &nameDescription)
void OnPathNameChange(const RouteDescription::NameChangedDescriptionRef &nameChangedDescription) override
void BeforeNode(const RouteDescription::Node &node) override
void OnMotorwayEnter(const RouteDescription::MotorwayEnterDescriptionRef &motorwayEnterDescription, const RouteDescription::CrossingWaysDescriptionRef &crossingWaysDescription) override
void OnTargetReached(const RouteDescription::TargetDescriptionRef &targetDescription) override
void OnMotorwayLeave(const RouteDescription::MotorwayLeaveDescriptionRef &motorwayLeaveDescription, const RouteDescription::MotorwayJunctionDescriptionRef &motorwayJunctionDescription, const RouteDescription::DirectionDescriptionRef &directionDescription, const RouteDescription::NameDescriptionRef &nameDescription, const RouteDescription::DestinationDescriptionRef &destinationDescription) override
void OnStart(const RouteDescription::StartDescriptionRef &startDescription, const RouteDescription::TypeNameDescriptionRef &typeNameDescription, const RouteDescription::NameDescriptionRef &nameDescription) override
void OnTurn(const RouteDescription::TurnDescriptionRef &turnDescription, const RouteDescription::CrossingWaysDescriptionRef &crossingWaysDescription, const RouteDescription::DirectionDescriptionRef &directionDescription, const RouteDescription::TypeNameDescriptionRef &typeNameDescription, const RouteDescription::NameDescriptionRef &nameDescription) override
RouteStep MkStep(const QString &name)
void OnMotorwayChange(const RouteDescription::MotorwayChangeDescriptionRef &motorwayChangeDescription, const RouteDescription::MotorwayJunctionDescriptionRef &motorwayJunctionDescription, const RouteDescription::DirectionDescriptionRef &directionDescription, const RouteDescription::DestinationDescriptionRef &crossingDestinationDescription) override
void OnRoundaboutLeave(const RouteDescription::RoundaboutLeaveDescriptionRef &roundaboutLeaveDescription, const RouteDescription::NameDescriptionRef &nameDescription) override
void OnRoundaboutEnter(const RouteDescription::RoundaboutEnterDescriptionRef &roundaboutEnterDescription, const RouteDescription::CrossingWaysDescriptionRef &crossingWaysDescription) override
Definition RouteDescriptionBuilder.h:43
RouteStep GenerateNextRouteInstruction(const RouteDescription::NodeIterator &previous, const RouteDescription::NodeIterator &last, const GeoCoord &coord) const
void GenerateRouteSteps(const osmscout::RouteDescription &routeDescription, QList< RouteStep > &routeSteps) const
std::list< RouteStep > GenerateRouteInstructions(const RouteDescription::NodeIterator &first, const RouteDescription::NodeIterator &last) const
~RouteDescriptionBuilder() override=default
Definition RouteDescription.h:55
std::shared_ptr< TargetDescription > TargetDescriptionRef
Definition RouteDescription.h:149
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< StartDescription > StartDescriptionRef
Definition RouteDescription.h:130
std::shared_ptr< NameDescription > NameDescriptionRef
Definition RouteDescription.h:178
std::shared_ptr< TypeNameDescription > TypeNameDescriptionRef
Definition RouteDescription.h:540
std::shared_ptr< TurnDescription > TurnDescriptionRef
Definition RouteDescription.h:331
std::shared_ptr< MotorwayLeaveDescription > MotorwayLeaveDescriptionRef
Definition RouteDescription.h:454
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< DirectionDescription > DirectionDescriptionRef
Definition RouteDescription.h:319
std::list< RouteDescription::Node >::const_iterator NodeIterator
Definition RouteDescription.h:799
Definition RouteStep.h:43
Definition Area.h:39
Timestamp::duration Duration
Definition Time.h:29
Definition RouteDescriptionPostprocessor.h:54