libosmscout 1.1.1
Loading...
Searching...
No Matches
osmscout::SimpleRoutingService Class Reference

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

Inheritance diagram for osmscout::SimpleRoutingService:
Collaboration diagram for osmscout::SimpleRoutingService:

Public Member Functions

 SimpleRoutingService (const DatabaseRef &database, const RouterParameter &parameter, const std::string &filenamebase)
 ~SimpleRoutingService () override
bool Open ()
bool IsOpen () const
void Close ()
TypeConfigRef GetTypeConfig () const
RoutingResult CalculateRouteViaCoords (RoutingProfile &profile, const std::vector< GeoCoord > &via, const Distance &radius, const RoutingParameter &parameter)
RoutePositionResult GetRoutableNode (const ObjectFileRef &objRef, const RoutingProfile &profile) const
RoutePositionResult GetClosestRoutableNode (const GeoCoord &coord, const RoutingProfile &profile, const Distance &radius) const
ClosestRoutableObjectResult GetClosestRoutableObject (const GeoCoord &location, Vehicle vehicle, const Distance &maxRadius)
std::map< DatabaseId, std::string > GetDatabaseMapping () const override
void DumpStatistics ()
Public Member Functions inherited from osmscout::AbstractRoutingService< RoutingProfile >
 AbstractRoutingService (const RouterParameter &parameter)
 ~AbstractRoutingService () override
RoutingResult CalculateRoute (RoutingProfile &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)
Public Member Functions inherited from osmscout::RoutingService
 RoutingService ()
virtual ~RoutingService ()

Protected Member Functions

Vehicle GetVehicle (const RoutingProfile &profile) override
bool CanUse (const RoutingProfile &profile, DatabaseId database, const RouteNode &routeNode, size_t pathIndex) override
bool CanUseForward (const RoutingProfile &profile, const DatabaseId &database, const WayRef &way) override
bool CanUseBackward (const RoutingProfile &profile, const DatabaseId &database, const WayRef &way) override
double GetCosts (const RoutingProfile &profile, DatabaseId database, const RouteNode &routeNode, size_t inPathIndex, size_t outPathIndex) override
double GetCosts (const RoutingProfile &profile, DatabaseId database, const WayRef &way, const Distance &wayLength) override
double GetUTurnCost (const RoutingProfile &profile, const DatabaseId databaseId) override
double GetEstimateCosts (const RoutingProfile &profile, DatabaseId database, const Distance &targetDistance) override
double GetCostLimit (const RoutingProfile &profile, DatabaseId database, const Distance &targetDistance) override
std::string GetCostString (const RoutingProfile &profile, DatabaseId database, double cost) const override
bool GetRouteNodes (const std::set< DBId > &routeNodeIds, std::unordered_map< DBId, RouteNodeRef > &routeNodeMap) override
bool GetRouteNode (const DBId &id, RouteNodeRef &node) override
bool GetWayByOffset (const DBFileOffset &offset, WayRef &way) override
bool GetWaysByOffset (const std::set< DBFileOffset > &wayOffsets, std::unordered_map< DBFileOffset, WayRef > &wayMap) override
bool GetAreaByOffset (const DBFileOffset &offset, AreaRef &area) override
bool GetAreasByOffset (const std::set< DBFileOffset > &areaOffsets, std::unordered_map< DBFileOffset, AreaRef > &areaMap) override
bool ResolveRouteDataJunctions (RouteData &route) override
std::vector< DBIdGetNodeTwins (const RoutingProfile &state, DatabaseId database, Id id) override
Protected Member Functions inherited from osmscout::AbstractRoutingService< RoutingProfile >
void ResolveRNodeChainToList (const RNode &finalRouteNode, const ClosedSet &closedSet, std::list< VNode > &nodes)
void GetStartForwardRouteNode (const RoutingProfile &state, const DatabaseId &database, const WayRef &way, size_t nodeIndex, RouteNodeRef &routeNode, size_t &routeNodeIndex)
void GetStartBackwardRouteNode (const RoutingProfile &state, const DatabaseId &database, const WayRef &way, size_t nodeIndex, RouteNodeRef &routeNode, size_t &routeNodeIndex)
void GetTargetForwardRouteNode (const RoutingProfile &state, const DatabaseId &database, const WayRef &way, size_t nodeIndex, RouteNodeRef &routeNode)
void GetTargetBackwardRouteNode (const RoutingProfile &state, const DatabaseId &database, const WayRef &way, size_t nodeIndex, RouteNodeRef &routeNode)
bool GetStartNodes (const RoutingProfile &state, const RoutePosition &position, GeoCoord &startCoord, const GeoCoord &targetCoord, RouteNodeRef &forwardRouteNode, RouteNodeRef &backwardRouteNode, RNodeRef &forwardRNode, RNodeRef &backwardRNode)
bool GetWayTargetNodes (const RoutingProfile &state, const RoutePosition &position, GeoCoord &targetCoord, RouteNodeRef &forwardNode, RouteNodeRef &backwardNode)
bool GetTargetNodes (const RoutingProfile &state, const RoutePosition &position, GeoCoord &targetCoord, RouteNodeRef &forwardNode, RouteNodeRef &backwardNode)
bool GetRNode (const RoutingProfile &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 RoutingProfile &state, const RoutePosition &position, GeoCoord &startCoord, const GeoCoord &targetCoord, RouteNodeRef &forwardRouteNode, RouteNodeRef &backwardRouteNode, RNodeRef &forwardRNode, RNodeRef &backwardRNode)
bool ResolveRNodesToRouteData (const RoutingProfile &state, const std::list< VNode > &nodes, const RoutePosition &start, const RoutePosition &target, RouteData &route)
virtual bool WalkToOtherDatabases (const RoutingProfile &state, RNodeRef &current, RouteNodeRef &currentRouteNode, OpenList &openList, OpenMap &openMap, const ClosedSet &closedSet)
virtual bool WalkPaths (const RoutingProfile &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 RoutingProfile &state, const Bearing &vehicleBearing, const RoutePosition &start, RNodeRef startForwardNode, RNodeRef startBackwardNode)

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>
Protected Attributes inherited from osmscout::AbstractRoutingService< RoutingProfile >
bool debugPerformance

Detailed Description

The RoutingService implements functionality in the context of routing. The following functions are available:

  • Calculation of a route from a start node to a target node
  • Transformation of the resulting route to a Way
  • Transformation of the resulting route to a simple list of points
  • Transformation of the resulting route to a routing description with is the base for further transformations to a textual or visual description of the route
  • Returning the closest route-able node to given geolocation

Constructor & Destructor Documentation

◆ SimpleRoutingService()

osmscout::SimpleRoutingService::SimpleRoutingService ( const DatabaseRef & database,
const RouterParameter & parameter,
const std::string & filenamebase )

◆ ~SimpleRoutingService()

osmscout::SimpleRoutingService::~SimpleRoutingService ( )
override

Member Function Documentation

◆ CalculateRouteViaCoords()

RoutingResult osmscout::SimpleRoutingService::CalculateRouteViaCoords ( RoutingProfile & profile,
const std::vector< GeoCoord > & via,
const Distance & radius,
const RoutingParameter & parameter )

◆ CanUse()

bool osmscout::SimpleRoutingService::CanUse ( const RoutingProfile & profile,
DatabaseId database,
const RouteNode & routeNode,
size_t pathIndex )
overrideprotectedvirtual

◆ CanUseBackward()

bool osmscout::SimpleRoutingService::CanUseBackward ( const RoutingProfile & profile,
const DatabaseId & database,
const WayRef & way )
overrideprotectedvirtual

◆ CanUseForward()

bool osmscout::SimpleRoutingService::CanUseForward ( const RoutingProfile & profile,
const DatabaseId & database,
const WayRef & way )
overrideprotectedvirtual

◆ Close()

void osmscout::SimpleRoutingService::Close ( )

◆ DumpStatistics()

void osmscout::SimpleRoutingService::DumpStatistics ( )

◆ GetAreaByOffset()

bool osmscout::SimpleRoutingService::GetAreaByOffset ( const DBFileOffset & offset,
AreaRef & area )
overrideprotectedvirtual

◆ GetAreasByOffset()

bool osmscout::SimpleRoutingService::GetAreasByOffset ( const std::set< DBFileOffset > & areaOffsets,
std::unordered_map< DBFileOffset, AreaRef > & areaMap )
overrideprotectedvirtual

◆ GetClosestRoutableNode()

RoutePositionResult osmscout::SimpleRoutingService::GetClosestRoutableNode ( const GeoCoord & coord,
const RoutingProfile & profile,
const Distance & radius ) const

Returns the closest routable object (area or way) relative to the given coordinate.

The result should be use as input for the router to define routing start or end point.

Note
The returned node may in fact not be routable, it is just the closest node to the given position on a routable way or area.
The actual object may not be within the given radius due to internal search index resolution.
Parameters
coordcoordinate of the search center
profileRouting profile to use. It defines Vehicle to use and allowed objects.
radiusThe maximum radius to search in from the search center
Returns
A reference to a node on a way or area that is routable (if returned route position is valid)

◆ GetClosestRoutableObject()

ClosestRoutableObjectResult osmscout::SimpleRoutingService::GetClosestRoutableObject ( const GeoCoord & location,
Vehicle vehicle,
const Distance & maxRadius )

◆ GetCostLimit()

double osmscout::SimpleRoutingService::GetCostLimit ( const RoutingProfile & profile,
DatabaseId database,
const Distance & targetDistance )
overrideprotectedvirtual

◆ GetCosts() [1/2]

double osmscout::SimpleRoutingService::GetCosts ( const RoutingProfile & profile,
DatabaseId database,
const RouteNode & routeNode,
size_t inPathIndex,
size_t outPathIndex )
overrideprotectedvirtual

◆ GetCosts() [2/2]

double osmscout::SimpleRoutingService::GetCosts ( const RoutingProfile & profile,
DatabaseId database,
const WayRef & way,
const Distance & wayLength )
overrideprotected

◆ GetCostString()

std::string osmscout::SimpleRoutingService::GetCostString ( const RoutingProfile & profile,
DatabaseId database,
double cost ) const
overrideprotectedvirtual

◆ GetDatabaseMapping()

std::map< DatabaseId, std::string > osmscout::SimpleRoutingService::GetDatabaseMapping ( ) const
overridevirtual

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

Returns

Implements osmscout::AbstractRoutingService< RoutingProfile >.

◆ GetEstimateCosts()

double osmscout::SimpleRoutingService::GetEstimateCosts ( const RoutingProfile & profile,
DatabaseId database,
const Distance & targetDistance )
overrideprotectedvirtual

◆ GetNodeTwins()

std::vector< DBId > osmscout::SimpleRoutingService::GetNodeTwins ( const RoutingProfile & state,
DatabaseId database,
Id id )
overrideprotectedvirtual

◆ GetRoutableNode()

RoutePositionResult osmscout::SimpleRoutingService::GetRoutableNode ( const ObjectFileRef & objRef,
const RoutingProfile & profile ) const

Return routable node on specific object, when this object is routable and usable by provided profile.

Parameters
objRef
profileRouting profile to use. It defines Vehicle to use and allowed objects.
Returns
routable node on object (way)

◆ GetRouteNode()

bool osmscout::SimpleRoutingService::GetRouteNode ( const DBId & id,
RouteNodeRef & node )
overrideprotectedvirtual

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

Implements osmscout::AbstractRoutingService< RoutingProfile >.

◆ GetRouteNodes()

bool osmscout::SimpleRoutingService::GetRouteNodes ( const std::set< DBId > & routeNodeIds,
std::unordered_map< DBId, RouteNodeRef > & routeNodeMap )
overrideprotectedvirtual

◆ GetTypeConfig()

TypeConfigRef osmscout::SimpleRoutingService::GetTypeConfig ( ) const

◆ GetUTurnCost()

double osmscout::SimpleRoutingService::GetUTurnCost ( const RoutingProfile & profile,
const DatabaseId databaseId )
overrideprotectedvirtual

◆ GetVehicle()

Vehicle osmscout::SimpleRoutingService::GetVehicle ( const RoutingProfile & profile)
overrideprotectedvirtual

◆ GetWayByOffset()

bool osmscout::SimpleRoutingService::GetWayByOffset ( const DBFileOffset & offset,
WayRef & way )
overrideprotectedvirtual

◆ GetWaysByOffset()

bool osmscout::SimpleRoutingService::GetWaysByOffset ( const std::set< DBFileOffset > & wayOffsets,
std::unordered_map< DBFileOffset, WayRef > & wayMap )
overrideprotectedvirtual

◆ IsOpen()

bool osmscout::SimpleRoutingService::IsOpen ( ) const

◆ Open()

bool osmscout::SimpleRoutingService::Open ( )

◆ ResolveRouteDataJunctions()

bool osmscout::SimpleRoutingService::ResolveRouteDataJunctions ( RouteData & route)
overrideprotectedvirtual

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