CartoType C++ API 8.8-7-gb35e4dc71
for Windows, Linux, Qt and other platforms supporting C++ development
Public Member Functions | Public Attributes | List of all members
CartoTypeCore::Route Class Reference

#include <cartotype_navigation.h>

Public Member Functions

 Route (InputStream &aInput, const Projection &aProjection)
 Route (const RouteProfile &aProfile)
std::unique_ptr< CartoTypeCore::GeometryGeometry () const
void Clear (bool aClearProfile=true)
bool Empty () const
Result WriteAsXml (OutputStream &aOutput, const Projection &aProjection) const
Result WriteAsGpx (OutputStream &aOutput, const Projection &aProjection) const
NearestSegmentInfo NearestSegment (const Point &aPoint, int32_t aSection, double aPreviousDistanceAlongRoute) const
NearestSegmentInfo PointAtDistance (double aDistanceInMeters) const
NearestSegmentInfo PointAtTime (double aTimeInSeconds) const
void Append (const Route &aRoute)
std::unique_ptr< RouteCopy () const
std::unique_ptr< RouteCopyWithoutRestrictedSegments () const
String Instructions (CMap &aMap, const char *aLocale, bool aMetricUnits, bool aAbbreviate) const
double TollRoadDistance () const
void AppendSegment (const Router::TJunctionInfo &aBestArcInfo, const String &aJunctionName, const String &aJunctionRef, const Contour &aContour, const String &aName, const String &aRef, FeatureInfo aFeature, double aDistance, double aTime, int32_t aSection)

Public Attributes

std::vector< std::unique_ptr< CartoTypeCore::RouteSegment > > RouteSegment
double Distance = 0
double Time = 0
OnCurveContour Path
PathToJunction PathToJunctionBefore
PathToJunction PathToJunctionAfter
RouteProfile Profile

Detailed Description

Information about an entire route.

Constructor & Destructor Documentation

◆ Route() [1/2]

CartoTypeCore::Route::Route ( InputStream aInput,
const Projection &  aProjection 

Creates a route by reading an XML CartoTypeRoute element. Uses aProjection to project the points from latitude and longitude.

◆ Route() [2/2]

CartoTypeCore::Route::Route ( const RouteProfile aProfile)

Creates an empty route with a given route profile.

Member Function Documentation

◆ Append()

void CartoTypeCore::Route::Append ( const Route aRoute)

Appends one route to another.

◆ AppendSegment()

void CartoTypeCore::Route::AppendSegment ( const Router::TJunctionInfo &  aBestArcInfo,
const String aJunctionName,
const String aJunctionRef,
const Contour aContour,
const String aName,
const String aRef,
FeatureInfo  aFeature,
double  aDistance,
double  aTime,
int32_t  aSection 

Appends a segment to a route. For internal use only.

◆ Clear()

void CartoTypeCore::Route::Clear ( bool  aClearProfile = true)

Sets the route to empty. Sets the route profile to a default value (clears it) if aClearProfile is true.

◆ Copy()

std::unique_ptr< Route > CartoTypeCore::Route::Copy ( ) const

Copies a route.

◆ CopyWithoutRestrictedSegments()

std::unique_ptr< Route > CartoTypeCore::Route::CopyWithoutRestrictedSegments ( ) const

Copies a route but does not copy restricted segments (e.g., private roads).

◆ Empty()

bool CartoTypeCore::Route::Empty ( ) const

Returns true if this route has no route segments.

◆ Geometry()

std::unique_ptr< CartoTypeCore::Geometry > CartoTypeCore::Route::Geometry ( ) const

Creates a Geometry object containing the points of a route.

◆ Instructions()

String CartoTypeCore::Route::Instructions ( CMap &  aMap,
const char *  aLocale,
bool  aMetricUnits,
bool  aAbbreviate 
) const

Returns textual instructions for a route. For internal use only.

◆ NearestSegment()

NearestSegmentInfo CartoTypeCore::Route::NearestSegment ( const Point aPoint,
int32_t  aSection,
double  aPreviousDistanceAlongRoute 
) const

Gets information about the nearest route segment to a point given in map coordinates.

The parameter aSection gives the current route section (a part of the route between waypoints; simple routes have a single section). The returned segment will always be in the current section or a following section. It is theoretically possible for a section to be completely skipped if it is very short or of zero length, so there is no constraint that section 0 must be followed by section 1 and not by section 2, etc. If aSection is negative it is ignored and the returned segment may be in any section.

The parameter aPreviousDistanceAlongRoute should be provided (set to a value greater than zero) for multi-section routes, so that the correct route segment can be chosen if the route doubles back on itself. Positions further along the route will be given preference over those earlier in the route.

◆ PointAtDistance()

NearestSegmentInfo CartoTypeCore::Route::PointAtDistance ( double  aDistanceInMeters) const

Gets information about the point a certain distance along a route.

◆ PointAtTime()

NearestSegmentInfo CartoTypeCore::Route::PointAtTime ( double  aTimeInSeconds) const

Gets information about the point a certain estimated time along a route.

◆ TollRoadDistance()

double CartoTypeCore::Route::TollRoadDistance ( ) const

Returns the total distance in metres of the parts of the route that are on toll roads.

◆ WriteAsGpx()

Result CartoTypeCore::Route::WriteAsGpx ( OutputStream aOutput,
const Projection &  aProjection 
) const

Writes a route in GPX format.

◆ WriteAsXml()

Result CartoTypeCore::Route::WriteAsXml ( OutputStream aOutput,
const Projection &  aProjection 
) const

Writes a route as an XML CartoTypeRoute element. Uses aProjection to inverse-project the points back to latitude and longitude.

Member Data Documentation

◆ Distance

double CartoTypeCore::Route::Distance = 0

The distance of the route in meters.

◆ Path

OnCurveContour CartoTypeCore::Route::Path

The path along the entire route in map units.

◆ PathToJunctionAfter

PathToJunction CartoTypeCore::Route::PathToJunctionAfter

The path to the first non-trivial junction after the route: used when creating OpenLR location data.

◆ PathToJunctionBefore

PathToJunction CartoTypeCore::Route::PathToJunctionBefore

The path to the first non-trivial junction before the route: used when creating OpenLR location data.

◆ Profile

RouteProfile CartoTypeCore::Route::Profile

The profile used to create the route.

◆ RouteSegment

std::vector<std::unique_ptr<CartoTypeCore::RouteSegment> > CartoTypeCore::Route::RouteSegment

An array of route segments representing the route.

◆ Time

double CartoTypeCore::Route::Time = 0

The estimated time taken to traverse the route in seconds.

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