1 #ifndef OSMSCOUT_ROUTINGSERVICE_H 2 #define OSMSCOUT_ROUTINGSERVICE_H 28 #include <unordered_map> 29 #include <unordered_set> 31 #include <osmscout/CoreFeatures.h> 73 RoutePosition(
const ObjectFileRef&
object,
79 return object.Valid();
101 RoutePosition routePosition;
105 RoutePositionResult();
107 RoutePositionResult(
const RoutePosition &routePosition,
const Distance &distance);
111 return routePosition;
121 return routePosition.IsValid();
138 bool debugPerformance;
143 void SetDebugPerformance(
bool debug);
145 bool IsDebugPerformance()
const;
161 virtual void Reset() = 0;
170 virtual void Progress(
const Distance ¤tMaxDistance,
171 const Distance &overallDistance) = 0;
227 double currentCost=0;
228 double estimateCost=0;
229 double overallCost=0;
237 const ObjectFileRef&
object)
247 const ObjectFileRef&
object,
279 if (a->overallCost==b->overallCost) {
283 return a->overallCost<b->overallCost;
325 : currentNode(currentNode)
341 const ObjectFileRef&
object,
342 const DBId& previousNode)
343 : currentNode(currentNode),
344 previousNode(previousNode),
364 using OpenList = std::set<RNodeRef, RNodeCostCompare>;
365 using OpenListRef = std::set<RNodeRef, RNodeCostCompare>::iterator;
367 using OpenMap = std::unordered_map<DBId, OpenListRef>;
368 using ClosedSet = std::unordered_set<VNode, ClosedNodeHasher>;
379 static std::string GetDataFilename(
const std::string& filenamebase);
380 static std::string GetData2Filename(
const std::string& filenamebase);
381 static std::string GetIndexFilename(
const std::string& filenamebase);
Distance GetDistance() const
Definition: RoutingService.h:114
bool operator<(const RNode &other) const
Definition: RoutingService.h:266
bool operator==(const RNode &other) const
Definition: RoutingService.h:261
static const char *const FILENAME_INTERSECTIONS_IDX
Relative filename of the intersection index file.
Definition: RoutingService.h:374
Definition: RoutingService.h:220
std::unordered_set< VNode, ClosedNodeHasher > ClosedSet
Definition: RoutingService.h:368
bool operator==(const VNode &other) const
Definition: RoutingService.h:312
DBId id
The file offset of the current route node.
Definition: RoutingService.h:222
std::shared_ptr< Breaker > BreakerRef
Definition: Breaker.h:65
ObjectFileRef GetObjectFileRef() const
Definition: RoutingService.h:82
Definition: RoutingService.h:153
size_t operator()(const VNode &node) const
Definition: RoutingService.h:357
bool operator()(const RNodeRef &a, const RNodeRef &b) const
Definition: RoutingService.h:276
ObjectFileRef object
The object (way/area) visited from the current route node.
Definition: RoutingService.h:302
RoutingProgressRef GetProgress() const
Definition: RoutingService.h:200
DBId previousNode
FileOffset of the previous route node.
Definition: RoutingService.h:301
Definition: RoutingService.h:274
std::set< RNodeRef, RNodeCostCompare >::iterator OpenListRef
Definition: RoutingService.h:365
RouteNodeRef node
The current route node.
Definition: RoutingService.h:223
std::shared_ptr< RoutingProgress > RoutingProgressRef
Definition: RoutingService.h:177
Definition: RoutingService.h:355
BreakerRef GetBreaker() const
Definition: RoutingService.h:195
DatabaseId database
Definition: DBFileOffset.h:40
std::unordered_map< DBId, OpenListRef > OpenMap
Definition: RoutingService.h:367
DBId prev
The file offset of the previous route node.
Definition: RoutingService.h:224
#define CLASS_FINAL
Definition: Compiler.h:26
#define OSMSCOUT_API
Definition: CoreImportExport.h:45
static const char *const FILENAME_INTERSECTIONS_DAT
Relative filename of the intersection data file.
Definition: RoutingService.h:372
std::shared_ptr< RNode > RNodeRef
Definition: RoutingService.h:272
ObjectFileRef object
The object (way/area) visited from the current route node.
Definition: RoutingService.h:225
VNode(const DBId ¤tNode)
Definition: RoutingService.h:324
RoutePosition GetRoutePosition() const
Definition: RoutingService.h:109
Definition: RoutingService.h:211
std::shared_ptr< RouteNode > RouteNodeRef
Definition: RouteNode.h:160
std::set< RNodeRef, RNodeCostCompare > OpenList
Definition: RoutingService.h:364
bool IsValid() const
Definition: RoutingService.h:77
VNode(const DBId ¤tNode, const ObjectFileRef &object, const DBId &previousNode)
Definition: RoutingService.h:340
Id id
Definition: DBFileOffset.h:41
size_t GetNodeIndex() const
Definition: RoutingService.h:87
static const char *const DEFAULT_FILENAME_BASE
Relative filebase name for touting data as generated by default by the importer.
Definition: RoutingService.h:377
RNode(const DBId &id, const RouteNodeRef &node, const ObjectFileRef &object, const DBId &prev)
Definition: RoutingService.h:245
Definition: DBFileOffset.h:38
DatabaseId GetDatabaseId() const
Definition: RoutingService.h:92
DBId currentNode
FileOffset of this route node.
Definition: RoutingService.h:300
Definition: Progress.h:34
Definition: RoutingService.h:298
RNode(const DBId &id, const RouteNodeRef &node, const ObjectFileRef &object)
Definition: RoutingService.h:235
uint32_t DatabaseId
Definition: DBFileOffset.h:30