libosmscout 1.1.1
Loading...
Searching...
No Matches
osmscout::AbstractRoutingService< RoutingState > Class Template Referenceabstract

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

Inheritance diagram for osmscout::AbstractRoutingService< RoutingState >:
Collaboration diagram for osmscout::AbstractRoutingService< RoutingState >:

Public Member Functions

 AbstractRoutingService (const RouterParameter &parameter)
 ~AbstractRoutingService () override
RoutingResult CalculateRoute (RoutingState &state, const RoutePosition &start, const RoutePosition &target, const std::optional< osmscout::Bearing > &bearing, 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 GetUTurnCost (const RoutingState &state, const DatabaseId databaseId)=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 (const RNode &finalRouteNode, const ClosedSet &closedSet, 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)
virtual bool WalkPaths (const RoutingState &state, RNodeRef &current, RouteNodeRef &currentRouteNode, OpenList &openList, OpenMap &openMap, ClosedSet &closedSet, RoutingResult &result, const RoutingParameter &parameter, const GeoCoord &targetCoord, const Vehicle &vehicle, size_t &nodesIgnoredCount, Distance &currentMaxDistance, const Distance &overallDistance, const double &costLimit)
bool RestrictInitialUTurn (const RoutingState &state, const Bearing &vehicleBearing, const RoutePosition &start, RNodeRef startForwardNode, RNodeRef startBackwardNode)

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.
static const char *const FILENAME_INTERSECTIONS_IDX
 Relative filename of the intersection index file.
static const char *const DEFAULT_FILENAME_BASE
 Relative filebase name for touting data as generated by default by the importer.
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 std::optional< osmscout::Bearing > & bearing,
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 db path than be used later for lookup objects in description

Returns

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

◆ 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 db offset

Parameters
idDatabase and Offset in given db
nodeNode instance to write the result back
Returns
True, if the node could be 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

◆ GetUTurnCost()

template<class RoutingState>
virtual double osmscout::AbstractRoutingService< RoutingState >::GetUTurnCost ( const RoutingState & state,
const DatabaseId databaseId )
protectedpure virtual

◆ 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 ( const RNode & finalRouteNode,
const ClosedSet & closedSet,
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

◆ RestrictInitialUTurn()

template<class RoutingState>
bool osmscout::AbstractRoutingService< RoutingState >::RestrictInitialUTurn ( const RoutingState & state,
const Bearing & vehicleBearing,
const RoutePosition & start,
RNodeRef startForwardNode,
RNodeRef startBackwardNode )
protected

◆ 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,
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 )
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: