ad_map_access
RouteOperation.hpp
Go to the documentation of this file.
1 // ----------------- BEGIN LICENSE BLOCK ---------------------------------
2 //
3 // Copyright (C) 2018-2021 Intel Corporation
4 //
5 // SPDX-License-Identifier: MIT
6 //
7 // ----------------- END LICENSE BLOCK -----------------------------------
12 #pragma once
13 
14 #include "ad/map/lane/Types.hpp"
15 #include "ad/map/match/Types.hpp"
16 #include "ad/map/point/Types.hpp"
18 #include "ad/map/route/Routing.hpp"
19 #include "ad/map/route/Types.hpp"
20 #include "ad/physics/Types.hpp"
21 
23 namespace ad {
25 namespace map {
26 
28 namespace intersection {
32 class Intersection;
33 } // namespace intersection
34 
36 namespace route {
37 
42 {
43  RouteIterator(FullRoute const &iRoute, RoadSegmentList::const_iterator const &iRoadSegmentIterator)
44  : route(iRoute)
45  , roadSegmentIterator(iRoadSegmentIterator)
46  {
47  }
48 
52  bool isValid() const
53  {
54  return roadSegmentIterator != std::end(route.roadSegments);
55  }
56 
58  FullRoute const &route;
60  RoadSegmentList::const_iterator roadSegmentIterator;
61 };
62 
72 RouteIterator getRouteIterator(route::RouteParaPoint const &routePosition, route::FullRoute const &route);
73 
83 point::ParaPoint getLaneParaPoint(physics::ParametricValue const &routeParametricOffset,
84  route::LaneInterval const &laneInterval);
85 
105 physics::Distance signedDistanceToLane(lane::LaneId const &checkLaneId,
106  FullRoute const &route,
107  match::MapMatchedPositionConfidenceList const &mapMatchedPositions);
108 
119 
122 physics::Distance calcLength(FullRoute const &fullRoute);
123 
128 physics::Distance calcLength(RoadSegment const &roadSegment);
129 
132 inline physics::Distance calcLength(LaneSegment const &laneSegment)
133 {
134  return calcLength(laneSegment.laneInterval);
135 }
136 
141 physics::Distance calcLength(ConnectingRoute const &connectingRoute);
142 
145 physics::Distance calcLength(RouteIterator const &startIterator, RouteIterator const &endIterator);
146 
147 physics::Distance
148 calcLength(RouteParaPoint const &startRouteParaPoint, RouteParaPoint const &endRouteParaPoint, FullRoute const &route);
149 
152 physics::Duration calcDuration(FullRoute const &fullRoute);
153 
158 physics::Duration calcDuration(RoadSegment const &roadSegment);
159 
162 inline physics::Duration calcDuration(LaneSegment const &laneSegment)
163 {
164  return calcDuration(laneSegment.laneInterval);
165 }
166 
171 physics::Duration calcDuration(ConnectingRoute const &connectingRoute);
172 
176 restriction::SpeedLimitList getSpeedLimits(RoadSegment const &roadSegment);
177 
181 restriction::SpeedLimitList getSpeedLimits(LaneSegment const &laneSegment);
182 
186 restriction::SpeedLimitList getSpeedLimits(RouteIterator const &startIterator, RouteIterator const &endIterator);
187 
191 restriction::SpeedLimitList getSpeedLimits(FullRoute const &fullRoute);
192 
196 restriction::SpeedLimitList getSpeedLimits(ConnectingRoute const &connectingRoute);
197 
205 bool isWithinInterval(RoadSegment const &roadSegment, point::ParaPoint const &point);
206 
211 {
217  FindWaypointResult(FullRoute const &route);
218 
225  point::ParaPoint const &iQueryPosition,
226  RoadSegmentList::const_iterator roadSegmentIter,
227  LaneSegmentList::const_iterator laneIntervalIter)
228  : queryRoute(route)
229  , roadSegmentIterator(roadSegmentIter)
230  , laneSegmentIterator(laneIntervalIter)
231  , queryPosition(iQueryPosition)
232  {
233  }
234 
238  FindWaypointResult(FindWaypointResult const &other) = default;
239 
243  RoadSegmentList::const_iterator roadSegmentIterator;
246  LaneSegmentList::const_iterator laneSegmentIterator;
249 
253  bool isValid() const
254  {
255  return roadSegmentIterator != queryRoute.roadSegments.end()
256  && laneSegmentIterator != roadSegmentIterator->drivableLaneSegments.end();
257  }
265 
273 
281 
288  std::vector<FindWaypointResult> getSuccessorLanes() const;
289 
296  std::vector<FindWaypointResult> getPredecessorLanes() const;
297 };
298 
303 physics::Distance calcLength(FindWaypointResult const &findWaypointResult);
304 
319 FindWaypointResult findWaypoint(point::ParaPoint const &position, route::FullRoute const &route);
320 
334 FindWaypointResult findWaypoint(lane::LaneId const &laneId, route::FullRoute const &route);
335 
349 FindWaypointResult findNearestWaypoint(point::ParaPointList const &positions, route::FullRoute const &route);
350 
363 FindWaypointResult findNearestWaypoint(match::MapMatchedPositionConfidenceList const &mapMatchedPositions,
364  route::FullRoute const &route);
365 
382 FindWaypointResult findCenterWaypoint(match::Object const &object, route::FullRoute const &route);
383 
396 FindWaypointResult objectOnRoute(match::MapMatchedObjectBoundingBox const &object, route::FullRoute const &route);
397 
411 FindWaypointResult intersectionOnRoute(intersection::Intersection const &intersection, route::FullRoute const &route);
412 
417 
421 {
424  Succeeded,
440 };
441 
445 {
448  Normal,
461 };
462 
475 ShortenRouteResult shortenRoute(point::ParaPoint const &currentPosition,
476  route::FullRoute &route,
477  ShortenRouteMode const shortenRouteMode = ShortenRouteMode::Normal);
478 
495  route::FullRoute &route,
496  ShortenRouteMode const shortenRouteMode = ShortenRouteMode::Normal);
497 
514  route::FullRoute &route,
515  ShortenRouteMode const shortenRouteMode = ShortenRouteMode::Normal);
516 
528  route::RouteParaPoint const &origin,
529  physics::Distance const &distance,
530  route::RouteParaPoint &resultingPoint);
531 
542  FullRoute const &route,
543  route::RouteParaPoint &routeParaPoint);
544 
549 {
550  SingleLane,
552 };
553 
572 FullRoute getRouteSection(FindWaypointResult const &currentLane,
573  physics::Distance const &distanceFront,
574  physics::Distance const &distanceEnd,
575  FullRoute const &route,
576  RouteSectionCreationMode const routeSectionCreationMode
578 
598  physics::Distance const &distanceFront,
599  physics::Distance const &distanceEnd,
600  route::FullRoute const &route,
601  RouteSectionCreationMode const routeSectionCreationMode
603 
621  route::FullRoute const &route,
622  RouteSectionCreationMode const routeSectionCreationMode
624 
629 {
635  explicit FindLaneChangeResult(FullRoute const &route);
636 
639 
641  RoadSegmentList::const_iterator laneChangeStartRouteIterator;
642 
646  LaneSegmentList::const_iterator laneChangeStartLaneSegmentIterator;
647 
649  RoadSegmentList::const_iterator laneChangeEndRouteIterator;
650 
654  LaneSegmentList::const_iterator laneChangeEndLaneSegmentIterator;
655 
658 
661 
664  bool isValid() const
665  {
666  return laneChangeStartRouteIterator != std::end(queryRoute.roadSegments)
667  && laneChangeStartLaneSegmentIterator != std::end(laneChangeStartRouteIterator->drivableLaneSegments)
668  && laneChangeEndRouteIterator != std::end(queryRoute.roadSegments)
669  && laneChangeEndLaneSegmentIterator != std::end(laneChangeEndRouteIterator->drivableLaneSegments)
671  }
672 
678  physics::Distance calcZoneLength() const;
679 };
680 
703 FindLaneChangeResult findFirstLaneChange(match::MapMatchedPosition const &currentPositionEgoVehicle,
704  route::FullRoute const &route);
705 
713 void shortenRouteToDistance(route::FullRoute &route, const physics::Distance &length);
714 
724 void appendLaneSegmentToRoute(route::LaneInterval const &laneInterval,
725  route::FullRoute &route,
726  route::SegmentCounter const segmentCountFromDestination = 0u);
727 
743  physics::Distance const &length,
744  route::FullRouteList &additionalRoutes,
745  lane::LaneIdSet const &relevantLanes = ad::map::lane::LaneIdSet());
746 
757 bool extendRouteToDestinations(route::FullRoute &route, const std::vector<route::planning::RoutingParaPoint> &dest);
758 
768 bool extendRouteToDestinations(route::FullRoute &route, const std::vector<point::GeoPoint> &dest);
769 
779 bool extendRouteToDestinations(route::FullRoute &route, const std::vector<point::ENUPoint> &dest);
780 
796 void appendRoadSegmentToRoute(route::LaneInterval const &laneInverval,
797  route::RouteLaneOffset const &laneOffset,
798  route::FullRoute &route,
799  lane::LaneIdSet const &relevantLanes);
800 
817 physics::Distance addOpposingLaneSegmentToRoadSegment(point::ParaPoint const &startpoint,
818  physics::Distance const &distance,
819  route::RoadSegment &roadSegment,
820  route::FullRoute &route);
821 
833 bool addOpposingLaneToRoute(point::ParaPoint const &pointOnOppositeLane,
834  physics::Distance const &distanceOnWrongLane,
835  route::FullRoute &route,
836  physics::Distance &coveredDistance);
837 
845 
853 
866 bool calculateBypassingRoute(route::FullRoute const &route, route::FullRoute &bypassingRoute);
867 
875 lane::ECEFBorder getECEFBorderOfRoadSegment(RoadSegment const &roadSegment,
876  physics::ParametricValue const parametricOffset);
877 
885 {
886  return getECEFBorderOfRoadSegment(roadSegment, physics::ParametricValue(1.));
887 }
888 
896 lane::ENUBorder getENUBorderOfRoadSegment(RoadSegment const &roadSegment,
897  physics::ParametricValue const parametricOffset);
898 
906 {
907  return getENUBorderOfRoadSegment(roadSegment, physics::ParametricValue(1.));
908 }
909 
917 lane::GeoBorder getGeoBorderOfRoadSegment(RoadSegment const &roadSegment,
918  physics::ParametricValue const parametricOffset);
919 
927 {
928  return getGeoBorderOfRoadSegment(roadSegment, physics::ParametricValue(1.));
929 }
930 
938 lane::ENUBorderList getENUBorderOfRoute(FullRoute const &route);
939 
947 lane::ECEFBorderList getECEFBorderOfRoute(FullRoute const &route);
948 
956 lane::GeoBorderList getGeoBorderOfRoute(FullRoute const &route);
957 
966 point::ENUHeading getENUHeadingOfRoute(match::Object const &object, FullRoute const &route);
967 
975 bool isObjectHeadingInRouteDirection(match::Object const &object, FullRoute const &route);
976 
984 void shortenSegmentFromBegin(RoadSegment &roadSegment, physics::Distance const &distance);
985 
993 void shortenSegmentFromEnd(RoadSegment &roadSegment, physics::Distance const &distance);
994 
995 } // namespace route
996 } // namespace map
997 } // namespace ad
ad::map::route::FindLaneChangeResult::numberOfConnectedLaneChanges
uint32_t numberOfConnectedLaneChanges
the number of connected lane changes to reach the desired target lane from the current position
Definition: RouteOperation.hpp:660
ad
namespace ad
Definition: GeometryStoreItem.hpp:28
ad::map::route::RouteIterator::roadSegmentIterator
RoadSegmentList::const_iterator roadSegmentIterator
iterator referencing an element of the queryRoute
Definition: RouteOperation.hpp:60
ad::map::route::RouteIterator
struct defining iterator information on a route
Definition: RouteOperation.hpp:41
ad::map::route::ShortenRouteMode::Normal
@ Normal
ad::map::route::LaneChangeDirection
LaneChangeDirection
DataType LaneChangeDirection.
Definition: LaneChangeDirection.hpp:43
ad::map::route::FindLaneChangeResult::laneChangeStartLaneSegmentIterator
LaneSegmentList::const_iterator laneChangeStartLaneSegmentIterator
iterator referencing an element of the laneChangeStartRouteIterator content; only valid if laneChange...
Definition: RouteOperation.hpp:646
ad::map::route::findCenterWaypoint
FindWaypointResult findCenterWaypoint(match::Object const &object, route::FullRoute const &route)
find waypoint on the route of the given object, preferable the object center
LaneIntervalOperation.hpp
Types.hpp
ad::map::intersection::Intersection
Logical representation of an intersection along the route.
Definition: Intersection.hpp:65
ad::map::route::addOpposingLaneToRoute
bool addOpposingLaneToRoute(point::ParaPoint const &pointOnOppositeLane, physics::Distance const &distanceOnWrongLane, route::FullRoute &route, physics::Distance &coveredDistance)
add a part of the opposing lane to an existing route. The part is at most distanceOnWrongLane long,...
ad::map::lane::ECEFBorder
DataType ECEFBorder.
Definition: ECEFBorder.hpp:44
ad::map::route::FindWaypointResult::FindWaypointResult
FindWaypointResult(FullRoute const &route, point::ParaPoint const &iQueryPosition, RoadSegmentList::const_iterator roadSegmentIter, LaneSegmentList::const_iterator laneIntervalIter)
constructor
Definition: RouteOperation.hpp:224
ad::map::route::appendRoadSegmentToRoute
void appendRoadSegmentToRoute(route::LaneInterval const &laneInverval, route::RouteLaneOffset const &laneOffset, route::FullRoute &route, lane::LaneIdSet const &relevantLanes)
function to append a new lane interval to a road segment list
ad::map::route::RouteIterator::isValid
bool isValid() const
check for validity of the iterator
Definition: RouteOperation.hpp:52
ad::map::route::calculateBypassingRoute
bool calculateBypassingRoute(route::FullRoute const &route, route::FullRoute &bypassingRoute)
calculate a bypassing route for a given (blocked) route
ad::map::route::intersectionOnRoute
FindWaypointResult intersectionOnRoute(intersection::Intersection const &intersection, route::FullRoute const &route)
find waypoint on the route containing a lane of the given intersection
ad::map::route::FindLaneChangeResult
struct defining the result type of findFirstLaneChange()
Definition: RouteOperation.hpp:628
ad::map::route::ShortenRouteResult::SucceededBeforeRoute
@ SucceededBeforeRoute
ad::map::match::Object
DataType Object.
Definition: Object.hpp:43
ad::map::route::getSpeedLimits
restriction::SpeedLimitList getSpeedLimits(LaneInterval const &laneInterval)
get the speed limits of the lane interval
ad::map::route::calcDuration
physics::Duration calcDuration(LaneInterval const &laneInterval)
calculate the Duration of the provided lane interval as duration value
ad::map::point::ParaPoint
DataType ParaPoint.
Definition: ParaPoint.hpp:48
ad::map::route::SegmentCounter
uint64_t SegmentCounter
DataType SegmentCounter.
Definition: SegmentCounter.hpp:41
ad::map::route::calculateRouteParaPointAtDistance
bool calculateRouteParaPointAtDistance(route::FullRoute const &route, route::RouteParaPoint const &origin, physics::Distance const &distance, route::RouteParaPoint &resultingPoint)
calculate the RouteParaPoint at a given distance to a given RouteParaPoint
ad::map::route::calcLength
physics::Distance calcLength(LaneInterval const &laneInterval)
calculate the length of the provided lane interval as physics::Distance value
ad::map::route::LaneSegment
DataType LaneSegment.
Definition: LaneSegment.hpp:53
ad::map::route::FindWaypointResult::laneSegmentIterator
LaneSegmentList::const_iterator laneSegmentIterator
iterator referencing an element of the routeIterator content; only valid if routeIterator !...
Definition: RouteOperation.hpp:246
ad::map::route::RouteSectionCreationMode
RouteSectionCreationMode
the mode how the route section will be created
Definition: RouteOperation.hpp:548
ad::map::route::ConnectingRoute
DataType ConnectingRoute.
Definition: ConnectingRoute.hpp:66
ad::map::route::ShortenRouteResult
ShortenRouteResult
enumeration providing more insights into the actual shorten route result
Definition: RouteOperation.hpp:420
ad::map::route::getENUHeadingOfRoute
point::ENUHeading getENUHeadingOfRoute(match::Object const &object, FullRoute const &route)
get the ENU heading of a route at the location of the object
ad::map::route::FindLaneChangeResult::isValid
bool isValid() const
returns true, if the routeIteratorLaneChangeStart and the routeIteratorLaneChangeEnd,...
Definition: RouteOperation.hpp:664
ad::map::route::FindLaneChangeResult::FindLaneChangeResult
FindLaneChangeResult(FullRoute const &route)
constructor
ad::map::route::getRouteExpandedToAllNeighborLanes
route::FullRoute getRouteExpandedToAllNeighborLanes(route::FullRoute const &route)
ad::map::route::getRouteSection
FullRoute getRouteSection(FindWaypointResult const &currentLane, physics::Distance const &distanceFront, physics::Distance const &distanceEnd, FullRoute const &route, RouteSectionCreationMode const routeSectionCreationMode=RouteSectionCreationMode::SingleLane)
Return a section of the route that is within the given distance around the given LanePoint.
ad::map::route::findWaypoint
FindWaypointResult findWaypoint(point::ParaPoint const &position, route::FullRoute const &route)
find a waypoint on the route containing the given position
ad::map::route::RouteIterator::route
const FullRoute & route
reference to the route
Definition: RouteOperation.hpp:58
ad::map::lane::GeoBorderList
std::vector<::ad::map::lane::GeoBorder > GeoBorderList
DataType GeoBorderList.
Definition: GeoBorderList.hpp:44
ad::map::route::ShortenRouteResult::Succeeded
@ Succeeded
ad::map::route::getECEFBorderOfRoute
lane::ECEFBorderList getECEFBorderOfRoute(FullRoute const &route)
get borders of a full route
ad::map::route::ShortenRouteMode
ShortenRouteMode
enumeration defining the mode of operation of the shortenRoute() functions
Definition: RouteOperation.hpp:444
ad::map::lane::ENUBorderList
std::vector<::ad::map::lane::ENUBorder > ENUBorderList
DataType ENUBorderList.
Definition: ENUBorderList.hpp:44
ad::map::route::signedDistanceToLane
physics::Distance signedDistanceToLane(lane::LaneId const &checkLaneId, FullRoute const &route, match::MapMatchedPositionConfidenceList const &mapMatchedPositions)
get the signed distance to a lane w.r.t to a given route (direction) for the map matched positions
ad::map::route::getENUBorderOfRoadSegment
lane::ENUBorder getENUBorderOfRoadSegment(RoadSegment const &roadSegment, physics::ParametricValue const parametricOffset)
get borders of a road segment. The road segment is cut at a given parametric offset.
ad::map::point::distance
physics::Distance distance(BoundingSphere const &left, BoundingSphere const &right)
Computes distance between BoundingSpheres.
Definition: BoundingSphereOperation.hpp:29
ad::map::route::FindLaneChangeResult::calcZoneLength
physics::Distance calcZoneLength() const
calculate the length of the zone of the lane change
ad::map::route::FindWaypointResult::roadSegmentIterator
RoadSegmentList::const_iterator roadSegmentIterator
iterator referencing an element of the queryRoute
Definition: RouteOperation.hpp:243
ad::map::route::FindWaypointResult::getRightLane
FindWaypointResult getRightLane() const
return a FindWayPointResult that is iterated to the right lane of this
ad::map::lane::LaneId
DataType LaneId.
Definition: LaneId.hpp:66
ad::map::route::ShortenRouteMode::DontCutIntersectionAndPrependIfSucceededBeforeRoute
@ DontCutIntersectionAndPrependIfSucceededBeforeRoute
ad::map::point::ParaPointList
std::vector<::ad::map::point::ParaPoint > ParaPointList
DataType ParaPointList.
Definition: ParaPointList.hpp:42
ad::map::route::RoadSegment
DataType RoadSegment.
Definition: RoadSegment.hpp:61
ad::map::route::FindWaypointResult::queryPosition
point::ParaPoint queryPosition
copy of the query position this waypoint result refers to
Definition: RouteOperation.hpp:248
ad::map::route::FindLaneChangeResult::laneChangeDirection
LaneChangeDirection laneChangeDirection
the lane change direction
Definition: RouteOperation.hpp:657
ad::map::route::shortenSegmentFromBegin
void shortenSegmentFromBegin(RoadSegment &roadSegment, physics::Distance const &distance)
Shorten the provided road segment by a certain distance from the begin.
ad::map::route::FindWaypointResult::FindWaypointResult
FindWaypointResult(FullRoute const &route)
constructor
ad::map::route::findFirstLaneChange
FindLaneChangeResult findFirstLaneChange(match::MapMatchedPosition const &currentPositionEgoVehicle, route::FullRoute const &route)
finds the first route interval on a given route where a lane change is necessary to travel the given ...
ad::map::route::appendLaneSegmentToRoute
void appendLaneSegmentToRoute(route::LaneInterval const &laneInterval, route::FullRoute &route, route::SegmentCounter const segmentCountFromDestination=0u)
function to append a new lane interval to a road segment list
ad::map::match::MapMatchedPositionConfidenceList
std::vector<::ad::map::match::MapMatchedPosition > MapMatchedPositionConfidenceList
DataType MapMatchedPositionConfidenceList.
Definition: MapMatchedPositionConfidenceList.hpp:44
ad::map::point::ENUHeading
DataType ENUHeading.
Definition: ENUHeading.hpp:65
ad::map::route::objectOnRoute
FindWaypointResult objectOnRoute(match::MapMatchedObjectBoundingBox const &object, route::FullRoute const &route)
find nearest waypoint on the route containing the given mapmatched bounding box
ad::map::route::getRouteIterator
RouteIterator getRouteIterator(route::RouteParaPoint const &routePosition, route::FullRoute const &route)
get the route iterator from a given route position
ad::map::route::isConnectedRoutePartOfAnIntersection
bool isConnectedRoutePartOfAnIntersection(route::ConnectingRoute const &connectingRoute)
ad::map::route::addOpposingLaneSegmentToRoadSegment
physics::Distance addOpposingLaneSegmentToRoadSegment(point::ParaPoint const &startpoint, physics::Distance const &distance, route::RoadSegment &roadSegment, route::FullRoute &route)
add an opposing lane segment to an existing (and not empty) road segment with at most the given lengt...
ad::map::route::FindWaypointResult
struct defining the result type of findWaypoint() and findNearestWaypoint()
Definition: RouteOperation.hpp:210
ad::map::route::extendRouteToDistance
bool extendRouteToDistance(route::FullRoute &route, physics::Distance const &length, route::FullRouteList &additionalRoutes, lane::LaneIdSet const &relevantLanes=ad::map::lane::LaneIdSet())
extends route to have at least the given length
ad::map::route::RouteSectionCreationMode::AllRouteLanes
@ AllRouteLanes
ad::map::route::FindWaypointResult::isValid
bool isValid() const
checks whether the FindWaypointResult contains valid data
Definition: RouteOperation.hpp:253
ad::map::route::LaneSegment::laneInterval
::ad::map::route::LaneInterval laneInterval
Definition: LaneSegment.hpp:152
ad::map::route::RouteSectionCreationMode::SingleLane
@ SingleLane
ad::map::match::MapMatchedObjectBoundingBox
DataType MapMatchedObjectBoundingBox.
Definition: MapMatchedObjectBoundingBox.hpp:45
Types.hpp
ad::map::route::shortenRoute
ShortenRouteResult shortenRoute(point::ParaPoint const &currentPosition, route::FullRoute &route, ShortenRouteMode const shortenRouteMode=ShortenRouteMode::Normal)
follow the route up to a certain position and shorten the route accordingly
ad::map::route::getENUBorderOfRoute
lane::ENUBorderList getENUBorderOfRoute(FullRoute const &route)
get borders of a full route
ad::map::lane::ECEFBorderList
std::vector<::ad::map::lane::ECEFBorder > ECEFBorderList
DataType ECEFBorderList.
Definition: ECEFBorderList.hpp:44
ad::map::route::RouteParaPoint
DataType RouteParaPoint.
Definition: RouteParaPoint.hpp:45
ad::map::route::getLaneParaPoints
point::ParaPointList getLaneParaPoints(route::RouteParaPoint const &routePosition, route::FullRoute const &route)
get the lane para points in respect to the given route position
ad::map::route::FindWaypointResult::getPredecessorLanes
std::vector< FindWaypointResult > getPredecessorLanes() const
return a vector of FindWayPointResult that is iterated to the predecessor lanes of this
ad::map::route::FindWaypointResult::operator=
FindWaypointResult & operator=(FindWaypointResult const &other)
assignment operator
ad::map::route::extendRouteToDestinations
bool extendRouteToDestinations(route::FullRoute &route, const std::vector< route::planning::RoutingParaPoint > &dest)
extends route with the given list of destinations
ad::map::route::FindWaypointResult::getSuccessorLanes
std::vector< FindWaypointResult > getSuccessorLanes() const
return a vector of FindWayPointResult that is iterated to the successor lanes of this
ad::map::route::getGeoBorderOfRoute
lane::GeoBorderList getGeoBorderOfRoute(FullRoute const &route)
get borders of a full route
Types.hpp
ad::map::route::FindLaneChangeResult::queryRoute
const FullRoute & queryRoute
reference to the route
Definition: RouteOperation.hpp:638
ad::map::route::getRouteExpandedToOppositeLanes
route::FullRoute getRouteExpandedToOppositeLanes(route::FullRoute const &route)
ad::map::route::shortenSegmentFromEnd
void shortenSegmentFromEnd(RoadSegment &roadSegment, physics::Distance const &distance)
Shorten the provided road segment by a certain distance from the end.
ad::map::route::getRouteParaPointFromParaPoint
bool getRouteParaPointFromParaPoint(point::ParaPoint const &paraPoint, FullRoute const &route, route::RouteParaPoint &routeParaPoint)
calculate the RouteParaPoint for a given ParaPoint and FullRoute
Types.hpp
ad::map::route::FindWaypointResult::queryRoute
const FullRoute & queryRoute
reference to the route
Definition: RouteOperation.hpp:241
ad::map::route::ShortenRouteResult::SucceededRouteEmpty
@ SucceededRouteEmpty
ad::map::restriction::SpeedLimitList
std::vector<::ad::map::restriction::SpeedLimit > SpeedLimitList
DataType SpeedLimitList.
Definition: SpeedLimitList.hpp:42
Routing.hpp
ad::map::lane::GeoBorder
DataType GeoBorder.
Definition: GeoBorder.hpp:44
ad::map::route::FullRoute
DataType FullRoute.
Definition: FullRoute.hpp:59
ad::map::route::shortenRouteToDistance
void shortenRouteToDistance(route::FullRoute &route, const physics::Distance &length)
shorten the route from the end to have at maximum the given length
ad::map::route::getLaneParaPoint
point::ParaPoint getLaneParaPoint(physics::ParametricValue const &routeParametricOffset, route::LaneInterval const &laneInterval)
get the lane para points in respect to the given route parametric offset
ad::map::route::FindLaneChangeResult::laneChangeEndRouteIterator
RoadSegmentList::const_iterator laneChangeEndRouteIterator
iterator referencing to route index where the lane change needs to be ended at the latest
Definition: RouteOperation.hpp:649
ad::map::match::MapMatchedPosition
DataType MapMatchedPosition.
Definition: MapMatchedPosition.hpp:49
ad::map::route::FindLaneChangeResult::laneChangeEndLaneSegmentIterator
LaneSegmentList::const_iterator laneChangeEndLaneSegmentIterator
iterator referencing an element of the laneChangeEndRouteIterator content; only valid if laneChangeEn...
Definition: RouteOperation.hpp:654
ad::map::route::LaneInterval
DataType LaneInterval.
Definition: LaneInterval.hpp:51
ad::map::route::ShortenRouteResult::SucceededIntersectionNotCut
@ SucceededIntersectionNotCut
ad::map::route::getECEFBorderOfRoadSegment
lane::ECEFBorder getECEFBorderOfRoadSegment(RoadSegment const &roadSegment, physics::ParametricValue const parametricOffset)
get borders of a road segment. The road segment is cut at a given parametric offset.
ad::map::route::FullRouteList
std::vector<::ad::map::route::FullRoute > FullRouteList
DataType FullRouteList.
Definition: FullRouteList.hpp:44
ad::map::route::FindWaypointResult::getLeftLane
FindWaypointResult getLeftLane() const
return a FindWayPointResult that is iterated to the left lane of this
ad::map::route::ShortenRouteResult::FailedRouteEmpty
@ FailedRouteEmpty
ad::map::route::RouteLaneOffset
int32_t RouteLaneOffset
DataType RouteLaneOffset.
Definition: RouteLaneOffset.hpp:41
ad::map::route::isWithinInterval
bool isWithinInterval(LaneInterval const &laneInterval, physics::ParametricValue const &parametricOffset)
checks if the parametric offset is within the interval
Definition: LaneIntervalOperation.hpp:163
ad::map::route::ShortenRouteMode::PrependIfSucceededBeforeRoute
@ PrependIfSucceededBeforeRoute
ad::map::route::isObjectHeadingInRouteDirection
bool isObjectHeadingInRouteDirection(match::Object const &object, FullRoute const &route)
compare the ENU heading of the route at the location of the object with the ENU heading of the object
ad::map::lane::ENUBorder
DataType ENUBorder.
Definition: ENUBorder.hpp:44
ad::map::route::LaneChangeDirection::Invalid
@ Invalid
ad::map::route::findNearestWaypoint
FindWaypointResult findNearestWaypoint(point::ParaPointList const &positions, route::FullRoute const &route)
find waypoint on the route containing the given positions
ad::map::route::FindLaneChangeResult::laneChangeStartRouteIterator
RoadSegmentList::const_iterator laneChangeStartRouteIterator
iterator referencing to route index where the lane change can start at the earliest
Definition: RouteOperation.hpp:641
ad::map::route::getGeoBorderOfRoadSegment
lane::GeoBorder getGeoBorderOfRoadSegment(RoadSegment const &roadSegment, physics::ParametricValue const parametricOffset)
get borders of a road segment. The road segment is cut at a given parametric offset.