libosmscout  1.1.1
Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
osmscout::AbstractRoutingService< RoutingState > Class Template Referenceabstract

#include <libosmscout/include/osmscout/routing/AbstractRoutingService.h>

Inheritance diagram for osmscout::AbstractRoutingService< RoutingState >:
Inheritance graph
[legend]
Collaboration diagram for osmscout::AbstractRoutingService< RoutingState >:
Collaboration graph
[legend]

Public Member Functions

 AbstractRoutingService (const RouterParameter &parameter)
 
 ~AbstractRoutingService () override
 
RoutingResult CalculateRoute (RoutingState &state, const RoutePosition &start, const RoutePosition &target, const RoutingParameter &parameter)
 
RouteDescriptionResult TransformRouteDataToRouteDescription (const RouteData &data)
 
RoutePointsResult TransformRouteDataToPoints (const RouteData &data)
 
RouteWayResult TransformRouteDataToWay (const RouteData &data)
 
virtual std::map< DatabaseId, std::string > GetDatabaseMapping () const =0
 
- Public Member Functions inherited from osmscout::RoutingService
 RoutingService ()
 
virtual ~RoutingService ()
 

Protected Member Functions

virtual Vehicle GetVehicle (const RoutingState &state)=0
 
virtual bool CanUse (const RoutingState &state, DatabaseId database, const RouteNode &routeNode, size_t pathIndex)=0
 
virtual bool CanUseForward (const RoutingState &state, const DatabaseId &database, const WayRef &way)=0
 
virtual bool CanUseBackward (const RoutingState &state, const DatabaseId &database, const WayRef &way)=0
 
virtual double GetCosts (const RoutingState &state, DatabaseId database, const RouteNode &routeNode, size_t inPathIndex, size_t outPathIndex)=0
 
virtual double GetCosts (const RoutingState &state, DatabaseId database, const WayRef &way, const Distance &wayLength)=0
 
virtual double GetEstimateCosts (const RoutingState &state, DatabaseId database, const Distance &targetDistance)=0
 
virtual double GetCostLimit (const RoutingState &state, DatabaseId database, const Distance &targetDistance)=0
 
virtual std::string GetCostString (const RoutingState &state, DatabaseId database, double cost) const =0
 
virtual bool GetRouteNodes (const std::set< DBId > &routeNodeIds, std::unordered_map< DBId, RouteNodeRef > &routeNodeMap)=0
 
virtual bool GetRouteNode (const DBId &id, RouteNodeRef &node)=0
 
virtual bool GetWayByOffset (const DBFileOffset &offset, WayRef &way)=0
 
virtual bool GetWaysByOffset (const std::set< DBFileOffset > &wayOffsets, std::unordered_map< DBFileOffset, WayRef > &wayMap)=0
 
virtual bool GetAreaByOffset (const DBFileOffset &offset, AreaRef &area)=0
 
virtual bool GetAreasByOffset (const std::set< DBFileOffset > &areaOffsets, std::unordered_map< DBFileOffset, AreaRef > &areaMap)=0
 
void ResolveRNodeChainToList (DBId finalRouteNode, const ClosedSet &closedSet, const ClosedSet &closedRestrictedSet, std::list< VNode > &nodes)
 
virtual bool ResolveRouteDataJunctions (RouteData &route)=0
 
virtual std::vector< DBIdGetNodeTwins (const RoutingState &state, DatabaseId database, Id id)=0
 
void GetStartForwardRouteNode (const RoutingState &state, const DatabaseId &database, const WayRef &way, size_t nodeIndex, RouteNodeRef &routeNode, size_t &routeNodeIndex)
 
void GetStartBackwardRouteNode (const RoutingState &state, const DatabaseId &database, const WayRef &way, size_t nodeIndex, RouteNodeRef &routeNode, size_t &routeNodeIndex)
 
void GetTargetForwardRouteNode (const RoutingState &state, const DatabaseId &database, const WayRef &way, size_t nodeIndex, RouteNodeRef &routeNode)
 
void GetTargetBackwardRouteNode (const RoutingState &state, const DatabaseId &database, const WayRef &way, size_t nodeIndex, RouteNodeRef &routeNode)
 
bool GetStartNodes (const RoutingState &state, const RoutePosition &position, GeoCoord &startCoord, const GeoCoord &targetCoord, RouteNodeRef &forwardRouteNode, RouteNodeRef &backwardRouteNode, RNodeRef &forwardRNode, RNodeRef &backwardRNode)
 
bool GetWayTargetNodes (const RoutingState &state, const RoutePosition &position, GeoCoord &targetCoord, RouteNodeRef &forwardNode, RouteNodeRef &backwardNode)
 
bool GetTargetNodes (const RoutingState &state, const RoutePosition &position, GeoCoord &targetCoord, RouteNodeRef &forwardNode, RouteNodeRef &backwardNode)
 
bool GetRNode (const RoutingState &state, const RoutePosition &position, const WayRef &way, size_t routeNodeIndex, const RouteNodeRef &routeNode, const GeoCoord &startCoord, const GeoCoord &targetCoord, RNodeRef &node)
 
void AddNodes (RouteData &route, DatabaseId database, Id startNodeId, size_t startNodeIndex, const ObjectFileRef &object, size_t idCount, bool oneway, size_t targetNodeIndex)
 
bool GetWayStartNodes (const RoutingState &state, const RoutePosition &position, GeoCoord &startCoord, const GeoCoord &targetCoord, RouteNodeRef &forwardRouteNode, RouteNodeRef &backwardRouteNode, RNodeRef &forwardRNode, RNodeRef &backwardRNode)
 
bool ResolveRNodesToRouteData (const RoutingState &state, const std::list< VNode > &nodes, const RoutePosition &start, const RoutePosition &target, RouteData &route)
 
virtual bool WalkToOtherDatabases (const RoutingState &state, RNodeRef &current, RouteNodeRef &currentRouteNode, OpenList &openList, OpenMap &openMap, const ClosedSet &closedSet, const ClosedSet &closedRestrictedSet)
 
virtual bool WalkPaths (const RoutingState &state, RNodeRef &current, RouteNodeRef &currentRouteNode, OpenList &openList, OpenMap &openMap, ClosedSet &closedSet, ClosedSet &closedRestrictedSet, RoutingResult &result, const RoutingParameter &parameter, const GeoCoord &targetCoord, const Vehicle &vehicle, size_t &nodesIgnoredCount, Distance &currentMaxDistance, const Distance &overallDistance, const double &costLimit)
 

Protected Attributes

bool debugPerformance
 

Additional Inherited Members

- Static Public Member Functions inherited from osmscout::RoutingService
static std::string GetDataFilename (const std::string &filenamebase)
 
static std::string GetData2Filename (const std::string &filenamebase)
 
static std::string GetIndexFilename (const std::string &filenamebase)
 
- Static Public Attributes inherited from osmscout::RoutingService
static const char *const FILENAME_INTERSECTIONS_DAT
 Relative filename of the intersection data file. More...
 
static const char *const FILENAME_INTERSECTIONS_IDX
 Relative filename of the intersection index file. More...
 
static const char *const DEFAULT_FILENAME_BASE
 Relative filebase name for touting data as generated by default by the importer. More...
 
- Protected Types inherited from osmscout::RoutingService
using RNodeRef = std::shared_ptr< RNode >
 
using OpenList = std::set< RNodeRef, RNodeCostCompare >
 
using OpenListRef = std::set< RNodeRef, RNodeCostCompare >::iterator
 
using OpenMap = std::unordered_map< DBId, OpenListRef >
 
using ClosedSet = std::unordered_set< VNode, ClosedNodeHasher >
 

Detailed Description

template<class RoutingState>
class osmscout::AbstractRoutingService< RoutingState >

Abstract algorithms for routing

Constructor & Destructor Documentation

◆ AbstractRoutingService()

template<class RoutingState>
osmscout::AbstractRoutingService< RoutingState >::AbstractRoutingService ( const RouterParameter &  parameter)
explicit

◆ ~AbstractRoutingService()

template<class RoutingState>
osmscout::AbstractRoutingService< RoutingState >::~AbstractRoutingService ( )
override

Member Function Documentation

◆ AddNodes()

template<class RoutingState>
void osmscout::AbstractRoutingService< RoutingState >::AddNodes ( RouteData route,
DatabaseId  database,
Id  startNodeId,
size_t  startNodeIndex,
const ObjectFileRef &  object,
size_t  idCount,
bool  oneway,
size_t  targetNodeIndex 
)
protected

◆ CalculateRoute()

template<class RoutingState>
RoutingResult osmscout::AbstractRoutingService< RoutingState >::CalculateRoute ( RoutingState &  state,
const RoutePosition &  start,
const RoutePosition &  target,
const RoutingParameter &  parameter 
)

◆ CanUse()

template<class RoutingState>
virtual bool osmscout::AbstractRoutingService< RoutingState >::CanUse ( const RoutingState &  state,
DatabaseId  database,
const RouteNode routeNode,
size_t  pathIndex 
)
protectedpure virtual

◆ CanUseBackward()

template<class RoutingState>
virtual bool osmscout::AbstractRoutingService< RoutingState >::CanUseBackward ( const RoutingState &  state,
const DatabaseId database,
const WayRef way 
)
protectedpure virtual

◆ CanUseForward()

template<class RoutingState>
virtual bool osmscout::AbstractRoutingService< RoutingState >::CanUseForward ( const RoutingState &  state,
const DatabaseId database,
const WayRef way 
)
protectedpure virtual

◆ GetAreaByOffset()

template<class RoutingState>
virtual bool osmscout::AbstractRoutingService< RoutingState >::GetAreaByOffset ( const DBFileOffset offset,
AreaRef area 
)
protectedpure virtual

◆ GetAreasByOffset()

template<class RoutingState>
virtual bool osmscout::AbstractRoutingService< RoutingState >::GetAreasByOffset ( const std::set< DBFileOffset > &  areaOffsets,
std::unordered_map< DBFileOffset, AreaRef > &  areaMap 
)
protectedpure virtual

◆ GetCostLimit()

template<class RoutingState>
virtual double osmscout::AbstractRoutingService< RoutingState >::GetCostLimit ( const RoutingState &  state,
DatabaseId  database,
const Distance &  targetDistance 
)
protectedpure virtual

◆ GetCosts() [1/2]

template<class RoutingState>
virtual double osmscout::AbstractRoutingService< RoutingState >::GetCosts ( const RoutingState &  state,
DatabaseId  database,
const RouteNode routeNode,
size_t  inPathIndex,
size_t  outPathIndex 
)
protectedpure virtual

◆ GetCosts() [2/2]

template<class RoutingState>
virtual double osmscout::AbstractRoutingService< RoutingState >::GetCosts ( const RoutingState &  state,
DatabaseId  database,
const WayRef way,
const Distance &  wayLength 
)
protectedpure virtual

◆ GetCostString()

template<class RoutingState>
virtual std::string osmscout::AbstractRoutingService< RoutingState >::GetCostString ( const RoutingState &  state,
DatabaseId  database,
double  cost 
) const
protectedpure virtual

◆ GetDatabaseMapping()

template<class RoutingState>
virtual std::map<DatabaseId, std::string> osmscout::AbstractRoutingService< RoutingState >::GetDatabaseMapping ( ) const
pure virtual

Get current mapping of DatabaseId to database path than be used later for lookup objects in description

Returns

Implemented in osmscout::SimpleRoutingService, and osmscout::CLASS_FINAL< DataLoader >.

◆ GetEstimateCosts()

template<class RoutingState>
virtual double osmscout::AbstractRoutingService< RoutingState >::GetEstimateCosts ( const RoutingState &  state,
DatabaseId  database,
const Distance &  targetDistance 
)
protectedpure virtual

◆ GetNodeTwins()

template<class RoutingState>
virtual std::vector<DBId> osmscout::AbstractRoutingService< RoutingState >::GetNodeTwins ( const RoutingState &  state,
DatabaseId  database,
Id  id 
)
protectedpure virtual

◆ GetRNode()

template<class RoutingState>
bool osmscout::AbstractRoutingService< RoutingState >::GetRNode ( const RoutingState &  state,
const RoutePosition &  position,
const WayRef way,
size_t  routeNodeIndex,
const RouteNodeRef routeNode,
const GeoCoord &  startCoord,
const GeoCoord &  targetCoord,
RNodeRef node 
)
protected

◆ GetRouteNode()

template<class RoutingState>
virtual bool osmscout::AbstractRoutingService< RoutingState >::GetRouteNode ( const DBId id,
RouteNodeRef node 
)
protectedpure virtual

Return the route node for the given database offset

Parameters
offsetOffset in given database
nodeNode instance to write the result back
Returns
True, if the node couldbe loaded, else false

Implemented in osmscout::SimpleRoutingService.

◆ GetRouteNodes()

template<class RoutingState>
virtual bool osmscout::AbstractRoutingService< RoutingState >::GetRouteNodes ( const std::set< DBId > &  routeNodeIds,
std::unordered_map< DBId, RouteNodeRef > &  routeNodeMap 
)
protectedpure virtual

◆ GetStartBackwardRouteNode()

template<class RoutingState>
void osmscout::AbstractRoutingService< RoutingState >::GetStartBackwardRouteNode ( const RoutingState &  state,
const DatabaseId database,
const WayRef way,
size_t  nodeIndex,
RouteNodeRef routeNode,
size_t &  routeNodeIndex 
)
protected

◆ GetStartForwardRouteNode()

template<class RoutingState>
void osmscout::AbstractRoutingService< RoutingState >::GetStartForwardRouteNode ( const RoutingState &  state,
const DatabaseId database,
const WayRef way,
size_t  nodeIndex,
RouteNodeRef routeNode,
size_t &  routeNodeIndex 
)
protected

◆ GetStartNodes()

template<class RoutingState>
bool osmscout::AbstractRoutingService< RoutingState >::GetStartNodes ( const RoutingState &  state,
const RoutePosition &  position,
GeoCoord &  startCoord,
const GeoCoord &  targetCoord,
RouteNodeRef forwardRouteNode,
RouteNodeRef backwardRouteNode,
RNodeRef forwardRNode,
RNodeRef backwardRNode 
)
protected

◆ GetTargetBackwardRouteNode()

template<class RoutingState>
void osmscout::AbstractRoutingService< RoutingState >::GetTargetBackwardRouteNode ( const RoutingState &  state,
const DatabaseId database,
const WayRef way,
size_t  nodeIndex,
RouteNodeRef routeNode 
)
protected

◆ GetTargetForwardRouteNode()

template<class RoutingState>
void osmscout::AbstractRoutingService< RoutingState >::GetTargetForwardRouteNode ( const RoutingState &  state,
const DatabaseId database,
const WayRef way,
size_t  nodeIndex,
RouteNodeRef routeNode 
)
protected

◆ GetTargetNodes()

template<class RoutingState>
bool osmscout::AbstractRoutingService< RoutingState >::GetTargetNodes ( const RoutingState &  state,
const RoutePosition &  position,
GeoCoord &  targetCoord,
RouteNodeRef forwardNode,
RouteNodeRef backwardNode 
)
protected

◆ GetVehicle()

template<class RoutingState>
virtual Vehicle osmscout::AbstractRoutingService< RoutingState >::GetVehicle ( const RoutingState &  state)
protectedpure virtual

◆ GetWayByOffset()

template<class RoutingState>
virtual bool osmscout::AbstractRoutingService< RoutingState >::GetWayByOffset ( const DBFileOffset offset,
WayRef way 
)
protectedpure virtual

◆ GetWaysByOffset()

template<class RoutingState>
virtual bool osmscout::AbstractRoutingService< RoutingState >::GetWaysByOffset ( const std::set< DBFileOffset > &  wayOffsets,
std::unordered_map< DBFileOffset, WayRef > &  wayMap 
)
protectedpure virtual

◆ GetWayStartNodes()

template<class RoutingState>
bool osmscout::AbstractRoutingService< RoutingState >::GetWayStartNodes ( const RoutingState &  state,
const RoutePosition &  position,
GeoCoord &  startCoord,
const GeoCoord &  targetCoord,
RouteNodeRef forwardRouteNode,
RouteNodeRef backwardRouteNode,
RNodeRef forwardRNode,
RNodeRef backwardRNode 
)
protected

◆ GetWayTargetNodes()

template<class RoutingState>
bool osmscout::AbstractRoutingService< RoutingState >::GetWayTargetNodes ( const RoutingState &  state,
const RoutePosition &  position,
GeoCoord &  targetCoord,
RouteNodeRef forwardNode,
RouteNodeRef backwardNode 
)
protected

◆ ResolveRNodeChainToList()

template<class RoutingState>
void osmscout::AbstractRoutingService< RoutingState >::ResolveRNodeChainToList ( DBId  finalRouteNode,
const ClosedSet closedSet,
const ClosedSet closedRestrictedSet,
std::list< VNode > &  nodes 
)
protected

◆ ResolveRNodesToRouteData()

template<class RoutingState>
bool osmscout::AbstractRoutingService< RoutingState >::ResolveRNodesToRouteData ( const RoutingState &  state,
const std::list< VNode > &  nodes,
const RoutePosition &  start,
const RoutePosition &  target,
RouteData route 
)
protected

◆ ResolveRouteDataJunctions()

template<class RoutingState>
virtual bool osmscout::AbstractRoutingService< RoutingState >::ResolveRouteDataJunctions ( RouteData route)
protectedpure virtual

◆ TransformRouteDataToPoints()

template<class RoutingState>
RoutePointsResult osmscout::AbstractRoutingService< RoutingState >::TransformRouteDataToPoints ( const RouteData data)

◆ TransformRouteDataToRouteDescription()

template<class RoutingState>
RouteDescriptionResult osmscout::AbstractRoutingService< RoutingState >::TransformRouteDataToRouteDescription ( const RouteData data)

◆ TransformRouteDataToWay()

template<class RoutingState>
RouteWayResult osmscout::AbstractRoutingService< RoutingState >::TransformRouteDataToWay ( const RouteData data)

◆ WalkPaths()

template<class RoutingState>
virtual bool osmscout::AbstractRoutingService< RoutingState >::WalkPaths ( const RoutingState &  state,
RNodeRef current,
RouteNodeRef currentRouteNode,
OpenList openList,
OpenMap openMap,
ClosedSet closedSet,
ClosedSet closedRestrictedSet,
RoutingResult &  result,
const RoutingParameter &  parameter,
const GeoCoord &  targetCoord,
const Vehicle vehicle,
size_t &  nodesIgnoredCount,
Distance &  currentMaxDistance,
const Distance &  overallDistance,
const double &  costLimit 
)
protectedvirtual

◆ WalkToOtherDatabases()

template<class RoutingState>
virtual bool osmscout::AbstractRoutingService< RoutingState >::WalkToOtherDatabases ( const RoutingState &  state,
RNodeRef current,
RouteNodeRef currentRouteNode,
OpenList openList,
OpenMap openMap,
const ClosedSet closedSet,
const ClosedSet closedRestrictedSet 
)
protectedvirtual

Member Data Documentation

◆ debugPerformance

template<class RoutingState>
bool osmscout::AbstractRoutingService< RoutingState >::debugPerformance
protected

The documentation for this class was generated from the following file: