1#ifndef OSMSCOUT_SIMPLEROUTINGSERVICE_H
2#define OSMSCOUT_SIMPLEROUTINGSERVICE_H
28#include <unordered_map>
29#include <unordered_set>
31#include <osmscout/lib/CoreFeatures.h>
118 std::string filenamebase;
124 RoutingDatabase routingDatabase;
127 bool HasNodeWithId(
const std::vector<Point>& nodes)
const;
135 size_t pathIndex)
override;
139 const WayRef& way)
override;
143 const WayRef& way)
override;
149 size_t outPathIndex)
override;
154 const Distance &wayLength)
override;
160 const Distance &targetDistance)
override;
164 const Distance &targetDistance)
override;
168 double cost)
const override;
171 std::unordered_map<DBId,RouteNodeRef> &routeNodeMap)
override;
180 std::unordered_map<DBFileOffset,WayRef> &wayMap)
override;
186 std::unordered_map<DBFileOffset,AreaRef> &areaMap)
override;
196 const RouterParameter& parameter,
197 const std::string& filenamebase);
207 const std::vector<GeoCoord>& via,
208 const Distance &radius,
209 const RoutingParameter& parameter);
248 const Distance &radius)
const;
252 const Distance &maxRadius);
#define OSMSCOUT_API
Definition CoreImportExport.h:45
AbstractRoutingService(const RouterParameter ¶meter)
Definition SimpleRoutingService.h:64
friend SimpleRoutingService
Definition SimpleRoutingService.h:73
std::string GetName() const
Definition SimpleRoutingService.h:95
AreaRef GetArea() const
Definition SimpleRoutingService.h:90
WayRef GetWay() const
Definition SimpleRoutingService.h:85
ObjectFileRef GetObject() const
Definition SimpleRoutingService.h:75
Distance GetDistance() const
Definition SimpleRoutingService.h:80
Definition RouteData.h:36
Definition RouteNode.h:62
Definition RoutingProfile.h:127
Definition SimpleRoutingService.h:114
double GetUTurnCost(const RoutingProfile &profile, const DatabaseId databaseId) 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
double GetCostLimit(const RoutingProfile &profile, DatabaseId database, const Distance &targetDistance) override
bool GetWaysByOffset(const std::set< DBFileOffset > &wayOffsets, std::unordered_map< DBFileOffset, WayRef > &wayMap) override
std::string GetCostString(const RoutingProfile &profile, DatabaseId database, double cost) const override
~SimpleRoutingService() override
double GetCosts(const RoutingProfile &profile, DatabaseId database, const WayRef &way, const Distance &wayLength) override
bool CanUseBackward(const RoutingProfile &profile, const DatabaseId &database, const WayRef &way) override
double GetEstimateCosts(const RoutingProfile &profile, DatabaseId database, const Distance &targetDistance) override
bool GetRouteNodes(const std::set< DBId > &routeNodeIds, std::unordered_map< DBId, RouteNodeRef > &routeNodeMap) override
double GetCosts(const RoutingProfile &profile, DatabaseId database, const RouteNode &routeNode, size_t inPathIndex, size_t outPathIndex) override
bool GetAreasByOffset(const std::set< DBFileOffset > &areaOffsets, std::unordered_map< DBFileOffset, AreaRef > &areaMap) override
bool GetAreaByOffset(const DBFileOffset &offset, AreaRef &area) override
RoutingResult CalculateRouteViaCoords(RoutingProfile &profile, const std::vector< GeoCoord > &via, const Distance &radius, const RoutingParameter ¶meter)
TypeConfigRef GetTypeConfig() const
ClosestRoutableObjectResult GetClosestRoutableObject(const GeoCoord &location, Vehicle vehicle, const Distance &maxRadius)
RoutePositionResult GetRoutableNode(const ObjectFileRef &objRef, const RoutingProfile &profile) const
RoutePositionResult GetClosestRoutableNode(const GeoCoord &coord, const RoutingProfile &profile, const Distance &radius) const
std::map< DatabaseId, std::string > GetDatabaseMapping() const override
SimpleRoutingService(const DatabaseRef &database, const RouterParameter ¶meter, const std::string &filenamebase)
bool GetWayByOffset(const DBFileOffset &offset, WayRef &way) override
bool GetRouteNode(const DBId &id, RouteNodeRef &node) override
Vehicle GetVehicle(const RoutingProfile &profile) override
std::vector< DBId > GetNodeTwins(const RoutingProfile &state, DatabaseId database, Id id) override
bool ResolveRouteDataJunctions(RouteData &route) override
std::shared_ptr< SimpleRoutingService > SimpleRoutingServiceRef
Definition SimpleRoutingService.h:261
uint64_t Id
Definition OSMScoutTypes.h:40
std::shared_ptr< TypeConfig > TypeConfigRef
Definition TypeConfig.h:1396
std::shared_ptr< Way > WayRef
Definition Way.h:213
std::shared_ptr< Area > AreaRef
Definition Area.h:360
uint32_t DatabaseId
Definition DBFileOffset.h:30
std::shared_ptr< RouteNode > RouteNodeRef
Definition RouteNode.h:177
std::shared_ptr< Database > DatabaseRef
Reference counted reference to an Database instance.
Definition Database.h:555
Vehicle
Definition OSMScoutTypes.h:55
FeatureValueReader< AccessFeature, AccessFeatureValue > AccessFeatureValueReader
Definition AccessFeature.h:276
Definition DBFileOffset.h:93
Definition DBFileOffset.h:39