libosmscout
0.1
|
#include <MultiDBRoutingService.h>
Public Types | |
using | RoutingProfileBuilder = std::function< RoutingProfileRef(const DatabaseRef &)> |
Public Member Functions | |
RoutingResult | CalculateRoute (const RoutePosition &start, const RoutePosition &target, const std::optional< osmscout::Bearing > &bearing, const RoutingParameter ¶meter) |
RoutingResult | CalculateRoute (const std::vector< osmscout::GeoCoord > &via, const Distance &radius, const RoutingParameter ¶meter) |
Calculate a route going through all the via points. More... | |
void | Close () |
RoutePositionResult | GetClosestRoutableNode (const GeoCoord &coord, const Distance &radius=Kilometers(1)) const |
std::optional< DatabaseId > | GetDatabaseId (const std::string &databasePath) const |
std::map< DatabaseId, std::string > | GetDatabaseMapping () const override |
RoutePositionResult | GetRoutableNode (const DatabaseId &dbId, const std::vector< ObjectFileRef > &refs) |
Return first usable routable node from given object references. More... | |
MultiDBRoutingService (const RouterParameter ¶meter, const std::vector< DatabaseRef > &databases) | |
bool | Open (RoutingProfileBuilder routingProfileBuilder) |
bool | PostProcessRouteDescription (RouteDescription &description, const std::list< RoutePostprocessor::PostprocessorRef > &postprocessors) |
RoutePointsResult | TransformRouteDataToPoints (const RouteData &data) |
RouteDescriptionResult | TransformRouteDataToRouteDescription (const RouteData &data) |
RouteWayResult | TransformRouteDataToWay (const RouteData &data) |
~MultiDBRoutingService () override | |
![]() | |
AbstractRoutingService (const RouterParameter ¶meter) | |
RoutingResult | CalculateRoute (MultiDBRoutingState &state, const RoutePosition &start, const RoutePosition &target, const std::optional< osmscout::Bearing > &bearing, const RoutingParameter ¶meter) |
Calculate a route. More... | |
virtual std::map< DatabaseId, std::string > | GetDatabaseMapping () const=0 |
Get current mapping of DatabaseId to db path than be used later for lookup objects in description. More... | |
RoutePointsResult | TransformRouteDataToPoints (const RouteData &data) |
Transforms the route into a list of points. More... | |
RouteDescriptionResult | TransformRouteDataToRouteDescription (const RouteData &data) |
Transform the route into a RouteDescription. More... | |
RouteWayResult | TransformRouteDataToWay (const RouteData &data) |
Transforms the route into a Way (with empty type) More... | |
~AbstractRoutingService () override | |
![]() | |
RoutingService () | |
virtual | ~RoutingService () |
Additional Inherited Members | |
![]() | |
static std::string | GetData2Filename (const std::string &filenamebase) |
static std::string | GetDataFilename (const std::string &filenamebase) |
static std::string | GetIndexFilename (const std::string &filenamebase) |
![]() | |
static const char *const | DEFAULT_FILENAME_BASE = "router" |
Relative filebase name for touting data as generated by default by the importer. More... | |
static const char *const | FILENAME_INTERSECTIONS_DAT = "intersections.dat" |
Relative filename of the intersection data file. More... | |
static const char *const | FILENAME_INTERSECTIONS_IDX = "intersections.idx" |
Relative filename of the intersection index file. More... | |
![]() | |
using | ClosedSet = std::unordered_set< VNode, ClosedNodeHasher > |
using | OpenList = std::set< RNodeRef, RNodeCostCompare > |
using | OpenListRef = std::set< RNodeRef, RNodeCostCompare >::iterator |
using | OpenMap = std::unordered_map< DBId, OpenListRef > |
using | RNodeRef = std::shared_ptr< RNode > |
![]() | |
void | AddNodes (RouteData &route, DatabaseId database, Id startNodeId, size_t startNodeIndex, const ObjectFileRef &object, size_t idCount, bool oneway, size_t targetNodeIndex) |
bool | GetRNode (const MultiDBRoutingState &state, const RoutePosition &position, const WayRef &way, size_t routeNodeIndex, const RouteNodeRef &routeNode, const GeoCoord &startCoord, const GeoCoord &targetCoord, RNodeRef &node) |
void | GetStartBackwardRouteNode (const MultiDBRoutingState &state, const DatabaseId &database, const WayRef &way, size_t nodeIndex, RouteNodeRef &routeNode, size_t &routeNodeIndex) |
void | GetStartForwardRouteNode (const MultiDBRoutingState &state, const DatabaseId &database, const WayRef &way, size_t nodeIndex, RouteNodeRef &routeNode, size_t &routeNodeIndex) |
bool | GetStartNodes (const MultiDBRoutingState &state, const RoutePosition &position, GeoCoord &startCoord, const GeoCoord &targetCoord, RouteNodeRef &forwardRouteNode, RouteNodeRef &backwardRouteNode, RNodeRef &forwardRNode, RNodeRef &backwardRNode) |
The start position is at the given position defined by an object and the index of the node within the object. More... | |
void | GetTargetBackwardRouteNode (const MultiDBRoutingState &state, const DatabaseId &database, const WayRef &way, size_t nodeIndex, RouteNodeRef &routeNode) |
Return the route node that allows navigating to the given node in backward direction. More... | |
void | GetTargetForwardRouteNode (const MultiDBRoutingState &state, const DatabaseId &database, const WayRef &way, size_t nodeIndex, RouteNodeRef &routeNode) |
Return the route node that allows navigating to the given node in forward direction. More... | |
bool | GetTargetNodes (const MultiDBRoutingState &state, const RoutePosition &position, GeoCoord &targetCoord, RouteNodeRef &forwardNode, RouteNodeRef &backwardNode) |
The target position is at the given position defined by an object and the index of the node within the object. More... | |
bool | GetWayStartNodes (const MultiDBRoutingState &state, const RoutePosition &position, GeoCoord &startCoord, const GeoCoord &targetCoord, RouteNodeRef &forwardRouteNode, RouteNodeRef &backwardRouteNode, RNodeRef &forwardRNode, RNodeRef &backwardRNode) |
The start position is at the given way and the index of the node within the object. More... | |
bool | GetWayTargetNodes (const MultiDBRoutingState &state, const RoutePosition &position, GeoCoord &targetCoord, RouteNodeRef &forwardNode, RouteNodeRef &backwardNode) |
The target position is at the given position defined by an object and the index of the node within the object. More... | |
void | ResolveRNodeChainToList (const RNode &finalRouteNode, const ClosedSet &closedSet, std::list< VNode > &nodes) |
bool | ResolveRNodesToRouteData (const MultiDBRoutingState &state, const std::list< VNode > &nodes, const RoutePosition &start, const RoutePosition &target, RouteData &route) |
bool | RestrictInitialUTurn (const MultiDBRoutingState &state, const Bearing &vehicleBearing, const RoutePosition &start, RNodeRef startForwardNode, RNodeRef startBackwardNode) |
virtual bool | WalkPaths (const MultiDBRoutingState &state, RNodeRef ¤t, RouteNodeRef ¤tRouteNode, OpenList &openList, OpenMap &openMap, ClosedSet &closedSet, RoutingResult &result, const RoutingParameter ¶meter, const GeoCoord &targetCoord, const Vehicle &vehicle, size_t &nodesIgnoredCount, Distance ¤tMaxDistance, const Distance &overallDistance, const double &costLimit) |
virtual bool | WalkToOtherDatabases (const MultiDBRoutingState &state, RNodeRef ¤t, RouteNodeRef ¤tRouteNode, OpenList &openList, OpenMap &openMap, const ClosedSet &closedSet) |
![]() | |
bool | debugPerformance |
Util class for routing cross databases
using osmscout::MultiDBRoutingService::RoutingProfileBuilder = std::function<RoutingProfileRef (const DatabaseRef &)> |
osmscout::MultiDBRoutingService::MultiDBRoutingService | ( | const RouterParameter & | parameter, |
const std::vector< DatabaseRef > & | databases | ||
) |
|
override |
References Close().
RoutingResult osmscout::MultiDBRoutingService::CalculateRoute | ( | const RoutePosition & | start, |
const RoutePosition & | target, | ||
const std::optional< osmscout::Bearing > & | bearing, | ||
const RoutingParameter & | parameter | ||
) |
RoutingResult osmscout::MultiDBRoutingService::CalculateRoute | ( | const std::vector< osmscout::GeoCoord > & | via, |
const Distance & | radius, | ||
const RoutingParameter & | parameter | ||
) |
Calculate a route going through all the via points.
via | A vector of via points |
radius | The maximum radius to search in from the search center in meter |
parameter | A RoutingParamater object |
References osmscout::RouteData::Append(), osmscout::RoutingResult::AppendSectionLength(), CalculateRoute(), osmscout::RouteData::Clear(), osmscout::RoutingResult::ClearSectionLengths(), osmscout::RouteData::Entries(), GetClosestRoutableNode(), osmscout::RoutingResult::GetRoute(), osmscout::RoutePosition::IsValid(), osmscout::RouteData::PopEntry(), and osmscout::RoutingResult::Success().
void osmscout::MultiDBRoutingService::Close | ( | ) |
Referenced by Open(), and ~MultiDBRoutingService().
RoutePositionResult osmscout::MultiDBRoutingService::GetClosestRoutableNode | ( | const GeoCoord & | coord, |
const Distance & | radius = Kilometers(1) |
||
) | const |
std::optional< DatabaseId > osmscout::MultiDBRoutingService::GetDatabaseId | ( | const std::string & | databasePath | ) | const |
|
override |
RoutePositionResult osmscout::MultiDBRoutingService::GetRoutableNode | ( | const DatabaseId & | dbId, |
const std::vector< ObjectFileRef > & | refs | ||
) |
Return first usable routable node from given object references.
dbId | ID of db where objects exists. |
refs | References to possible routable objects |
References osmscout::RoutePositionResult::GetDistance(), osmscout::RoutePosition::GetNodeIndex(), osmscout::RoutePosition::GetObjectFileRef(), osmscout::RoutePositionResult::GetRoutePosition(), and osmscout::RoutePositionResult::IsValid().
bool osmscout::MultiDBRoutingService::Open | ( | RoutingProfileBuilder | routingProfileBuilder | ) |
bool osmscout::MultiDBRoutingService::PostProcessRouteDescription | ( | RouteDescription & | description, |
const std::list< RoutePostprocessor::PostprocessorRef > & | postprocessors | ||
) |
RoutePointsResult osmscout::MultiDBRoutingService::TransformRouteDataToPoints | ( | const RouteData & | data | ) |
RouteDescriptionResult osmscout::MultiDBRoutingService::TransformRouteDataToRouteDescription | ( | const RouteData & | data | ) |
RouteWayResult osmscout::MultiDBRoutingService::TransformRouteDataToWay | ( | const RouteData & | data | ) |