ad_map_access
Classes | Typedefs | Functions | Variables
ad::map::point Namespace Reference

namespace point More...

Classes

class  Altitude
 DataType Altitude. More...
 
struct  BoundingSphere
 DataType BoundingSphere. More...
 
class  CoordinateTransform
 Class that encapsulates various coordinate transformations. More...
 
class  ECEFCoordinate
 DataType ECEFCoordinate. More...
 
struct  ECEFHeading
 DataType ECEFHeading. More...
 
struct  ECEFPoint
 DataType ECEFPoint. More...
 
class  ENUCoordinate
 DataType ENUCoordinate. More...
 
struct  ENUEdgeCache
 DataType ENUEdgeCache. More...
 
class  ENUHeading
 DataType ENUHeading. More...
 
struct  ENUPoint
 DataType ENUPoint. More...
 
struct  Geometry
 DataType Geometry. More...
 
struct  GeoPoint
 DataType GeoPoint. More...
 
class  Latitude
 DataType Latitude. More...
 
class  Longitude
 DataType Longitude. More...
 
struct  ParaPoint
 DataType ParaPoint. More...
 

Typedefs

typedef std::vector<::ad::map::point::ECEFPointECEFEdge
 DataType ECEFEdge.
 
typedef std::vector<::ad::map::point::ENUPointENUEdge
 DataType ENUEdge.
 
typedef std::vector<::ad::map::point::GeoPointGeoEdge
 DataType GeoEdge.
 
typedef std::vector<::ad::map::point::ParaPointParaPointList
 DataType ParaPointList.
 

Functions

std::ostream & operator<< (std::ostream &os, Altitude const &_value)
 standard ostream operator More...
 
std::ostream & operator<< (std::ostream &os, BoundingSphere const &_value)
 standard ostream operator More...
 
std::ostream & operator<< (std::ostream &os, ECEFCoordinate const &_value)
 standard ostream operator More...
 
std::ostream & operator<< (std::ostream &os, ECEFHeading const &_value)
 standard ostream operator More...
 
std::ostream & operator<< (std::ostream &os, ECEFPoint const &_value)
 standard ostream operator More...
 
std::ostream & operator<< (std::ostream &os, ENUCoordinate const &_value)
 standard ostream operator More...
 
std::ostream & operator<< (std::ostream &os, ENUEdgeCache const &_value)
 standard ostream operator More...
 
std::ostream & operator<< (std::ostream &os, ENUHeading const &_value)
 standard ostream operator More...
 
std::ostream & operator<< (std::ostream &os, ENUPoint const &_value)
 standard ostream operator More...
 
std::ostream & operator<< (std::ostream &os, Geometry const &_value)
 standard ostream operator More...
 
std::ostream & operator<< (std::ostream &os, GeoPoint const &_value)
 standard ostream operator More...
 
std::ostream & operator<< (std::ostream &os, Latitude const &_value)
 standard ostream operator More...
 
std::ostream & operator<< (std::ostream &os, Longitude const &_value)
 standard ostream operator More...
 
std::ostream & operator<< (std::ostream &os, ParaPoint const &_value)
 standard ostream operator More...
 
physics::Distance distance (BoundingSphere const &left, BoundingSphere const &right)
 Computes distance between BoundingSpheres. More...
 
BoundingSphere calcBoundingSphere (Geometry const &edgeLeft, Geometry const &edgeRight)
 calculate the bounding sphere of two edges
 
bool isValid (ECEFPoint const &point, bool const logErrors=true)
 checks if the given ECEFPoint is valid More...
 
bool isValid (ECEFEdge const &edge, bool const logErrors=true)
 checks if the given ECEFEdge is valid More...
 
ECEFPoint createECEFPoint (double const x, double const y, double const z)
 create a ECEFPoint More...
 
ECEFPoint createECEFPoint (ECEFCoordinate const x, ECEFCoordinate const y, ECEFCoordinate const z)
 create a ECEFPoint More...
 
physics::Distance distance (ECEFPoint const &point, ECEFPoint const &other)
 Computes distance between ECEF points. More...
 
physics::Distance calcLength (ECEFEdge const &edge)
 calculate the length of the provided border as distance value More...
 
template<typename PointType >
physics::RatioValue findNearestPointOnEdge (PointType const &a, const PointType &pt0, const PointType &pt1)
 Find point nearest to the line formed by two points. More...
 
template<typename PointType >
physics::ParametricValue findNearestPointOnSegment (PointType const &a, const PointType &pt0, const PointType &pt1)
 Find point nearest to the segment formed by two points. More...
 
template<typename PointType >
physics::Distance calculateEdgeLength (std::vector< PointType > const &edge)
 Calculate the length of an edge. More...
 
template<typename PointType >
std::vector< physics::ParametricValue > getParametricEdgePoints (std::vector< PointType > const &edge)
 Get the parametric edge points. More...
 
template<typename PointType >
PointType getParametricPoint (std::vector< PointType > const &edge, physics::Distance const &edgeLength, const physics::ParametricValue &t)
 Calculates parametric point on the edge. More...
 
template<typename PointType >
PointType getParametricPoint (std::vector< PointType > const &edge, const physics::ParametricValue &t)
 Calculates parametric point on the edge. More...
 
template<typename PointType >
std::vector< PointType > getParametricRange (std::vector< PointType > const &edge, physics::Distance const &edgeLength, const physics::ParametricRange &trange)
 Generates sub-edge for given range. More...
 
template<typename PointType >
std::vector< PointType > getParametricRange (std::vector< PointType > const &edge, const physics::ParametricRange &trange)
 Generates sub-edge for given range. More...
 
template<typename PointType >
physics::ParametricValue findNearestPointOnEdge (std::vector< PointType > const &edge, physics::Distance const &edgeLength, const PointType &pt)
 Finds point on geometry nearest to given point. More...
 
template<typename PointType >
physics::ParametricValue findNearestPointOnEdge (std::vector< PointType > const &edge, const PointType &pt)
 Find the nearest point on an edge. More...
 
template<typename PointType >
std::pair< physics::MetricRange, physics::Distance > calculateWidthRange (std::vector< PointType > const &edgeLeft, physics::Distance const &edgeLeftLength, std::vector< PointType > const &edgeRight, physics::Distance const &edgeRightLength)
 Calculate the width range and the average width of a pair of edges. More...
 
template<typename PointType >
std::vector< PointType > getLateralAlignmentEdge (std::vector< PointType > const &leftEdge, physics::Distance const &leftEdgeLength, std::vector< PointType > const &rightEdge, physics::Distance const &rightEdgeLength, physics::ParametricValue const lateralAlignment)
 Get an edge between the two given border edges with corresponding lateralAlignment. More...
 
template<typename PointType >
std::vector< PointType > getLateralAlignmentEdge (std::vector< PointType > const &leftEdge, std::vector< PointType > const &rightEdge, physics::ParametricValue const lateralAlignment)
 Get an edge between the two given border edges with corresponding lateralAlignment. More...
 
template<typename PointType >
PointType getEdgeStartDirectionalVector (std::vector< PointType > const edge)
 get a normalized vector representing the edge direction at edge start More...
 
template<typename PointType >
PointType getEdgeEndDirectionalVector (std::vector< PointType > const edge)
 get a normalized vector representing the edge direction at edge end More...
 
bool isValid (ENUPoint const &point, bool const logErrors=true)
 checks if the given ENUPoint is valid More...
 
ENUPoint createENUPoint (double const x, double const y, double const z)
 create a ENUPoint More...
 
ENUPoint createENUPoint (ENUCoordinate const x, ENUCoordinate const y, ENUCoordinate const z)
 create a ENUPoint More...
 
ENUPoint getEnuEastAxis ()
 get ENUPoint defining the East-Axis
 
ENUPoint getEnuNorthAxis ()
 get ENUPoint defining the North-Axis
 
ENUPoint getEnuUpAxis ()
 get ENUPoint defining the Up-Axis
 
physics::Distance distance (ENUPoint const &point, ENUPoint const &other)
 Computes distance between ENU points. More...
 
bool isValid (Geometry const &geometry)
 validity check More...
 
Geometry createGeometry (const ECEFEdge &points, bool closed)
 create a geometry More...
 
ENUEdge getCachedENUEdge (Geometry const &geometry)
 get the cached ENUEdge for a geometry More...
 
bool isSuccessor (Geometry const &edge, const Geometry &other)
 Checks if Geometry is longitudinally connected with another Geometry at the end. More...
 
bool isPredecessor (Geometry const &edge, const Geometry &other)
 Checks if Geometry is longitudinally connected with another Geometry at the start. More...
 
bool haveSameStart (Geometry const &edge, const Geometry &other)
 Checks if two edges have same start point. More...
 
bool haveSameEnd (Geometry const &edge, const Geometry &other)
 Checks if two edges have same end point. More...
 
point::ECEFPoint getParametricPoint (Geometry const &geometry, const physics::ParametricValue &t)
 Calculates parametric point on the geometry. More...
 
void getParametricRange (Geometry const &geometry, const physics::ParametricRange &trange, ECEFEdge &outputEdge, const bool revertOrder=false)
 Generates sub-geometry for given range. More...
 
physics::ParametricValue findNearestPointOnEdge (Geometry const &geometry, const point::ECEFPoint &pt)
 Finds point on geometry nearest to given point. More...
 
ECEFEdge getMiddleEdge (Geometry const &geometry, Geometry const &other)
 Calculates middle line between two Geometries. More...
 
bool isValid (GeoPoint const &point, bool const logErrors=true)
 checks if the given GeoPoint is valid More...
 
double degree2radians (double degree)
 Convert degrees to radians. More...
 
double radians2degree (double radians)
 Convert radians to degrees. More...
 
double toRadians (Latitude const &latitude)
 Convert Latitude to radians. More...
 
double toRadians (Longitude const &longitude)
 Convert Longitude to radians. More...
 
GeoPoint createGeoPoint (Longitude const longitude, Latitude const latitude, Altitude const altitude)
 create a GeoPoint More...
 
physics::Distance distance (GeoPoint const &point, GeoPoint const &other)
 Computes distance between geo points. More...
 
GeoPoint zeroAltitude (GeoPoint const &point)
 
physics::Distance flatDistance (GeoPoint const &point, const GeoPoint &other)
 Calculated distance between points not taking in account altitude. More...
 
GeoPoint approxAltitude (GeoPoint const &point, const GeoEdge &pts)
 Approximates altitude of the point based on other points. More...
 
bool isOnTheLeft (GeoPoint const &point, const GeoPoint &pt0, const GeoPoint &pt1)
 Checks if point is on the left side of the line defined by two points. More...
 
bool haveSameOrientation (const GeoEdge &pts0, const GeoEdge &pts1)
 Checks if two GeoEdge have same orientation by taking in account distances between first and last points. More...
 
bool isOnTheLeft (const GeoEdge &pts0, const GeoEdge &pts1)
 Checks if one polyline is on the left side of another polyline. More...
 
template<>
GeoPoint vectorExtrapolate (GeoPoint const &a, GeoPoint const &b, double const &scalar)
 specialization of vectorExtrapolate for GeoPoint
 
ECEFHeading createECEFHeading (ECEFPoint const &start, ECEFPoint const &end)
 create a heading in ECEF as a directional vector More...
 
ECEFHeading createECEFHeading (ENUHeading const &yaw, GeoPoint const &enuReferencePoint)
 create a heading in ECEF as a directional vector More...
 
ENUHeading createENUHeading (double yawAngleRadian)
 create a ENUHeading from yaw angle in radians More...
 
ENUHeading createENUHeading (physics::Angle const &angle)
 create a ENUHeading from angle More...
 
ENUHeading createENUHeading (ECEFHeading const &ecefHeading)
 create a ENUHeading from ECEFHeading value More...
 
ENUHeading createENUHeading (ECEFHeading const &ecefHeading, GeoPoint const &enuReferencePoint)
 create a ENUHeading from ECEFHeading value More...
 
ENUHeading createENUHeading (ECEFHeading const &ecefHeading, ECEFPoint const &enuReferencePoint)
 create a ENUHeading from ECEFHeading value More...
 
ENUHeading createENUHeading (ENUPoint const &start, ENUPoint const &end)
 create a ENUHeading from a directional vector More...
 
ENUHeading normalizeENUHeading (ENUHeading const &heading)
 
ENUPoint getDirectionalVectorZPlane (ENUHeading const &heading)
 get a directional vector of the heading More...
 
ENUPoint getOrthogonalVectorZPlane (ENUHeading const &heading)
 get a vector that is orthogonal to the vectors heading More...
 
void getDirectionVectorsZPlane (ENUHeading const &heading, ENUPoint &directionalVector, ENUPoint &orthogonalVector)
 get a directional vector of the vectors heading and the orthogonal vector at once More...
 
ParaPoint createParaPoint (lane::LaneId const &laneId, physics::ParametricValue const &parametricOffset)
 create a ParaPoint More...
 
template<typename PointType >
PointType vectorCrossProduct (PointType const &a, PointType const &b)
 calculate the cross product of two vectors More...
 
template<typename PointType >
double vectorDotProduct (PointType const &a, PointType const &b)
 calculate the dot product of two vectors More...
 
template<typename PointType >
PointType vectorMultiplyScalar (PointType const &a, double const &b)
 multiplies a vector with a scalar More...
 
template<typename PointType >
PointType vectorMultiplyScalar (PointType const &a, physics::Distance const &b)
 multiplies a vector with a scalar More...
 
template<typename PointType >
physics::Distance vectorLength (PointType const &a)
 calculate the length of a vector More...
 
template<typename PointType >
PointType vectorNorm (PointType const &a)
 normalizes a vector More...
 
template<typename PointType >
PointType vectorAdd (PointType const &a, PointType const &b)
 add two vectors More...
 
template<typename PointType >
PointType vectorSub (PointType const &a, PointType const &b)
 subtract two vectors from each right More...
 
template<typename PointType >
PointType vectorInterpolate (PointType const &a, PointType const &b, physics::ParametricValue const &tparam)
 Interpolates point between two points. More...
 
template<typename PointType >
PointType vectorExtrapolate (PointType const &a, PointType const &b, double const &scalar)
 Extrapolate point based on line defined by two points. More...
 
ECEFPoint toECEF (GeoPoint const &point)
 perform coordinate transformation from GeoPoint to ECEFPoint
 
ECEFPoint toECEF (ENUPoint const &point)
 perform coordinate transformation from ENUPoint to ECEFPoint More...
 
ECEFPoint toECEF (ENUPoint const &point, GeoPoint const &enuReferencePoint)
 perform coordinate transformation from ENUPoint to ECEFPoint More...
 
GeoPoint toGeo (ECEFPoint const &point)
 perform coordinate transformation from ECEFPoint to GeoPoint
 
GeoPoint toGeo (ENUPoint const &point)
 perform coordinate transformation from ENUPoint to GeoPoint More...
 
GeoPoint toGeo (ENUPoint const &point, GeoPoint const &enuReferencePoint)
 perform coordinate transformation from ENUPoint to GeoPoint More...
 
ENUPoint toENU (ECEFPoint const &point)
 perform coordinate transformation from ECEFPoint to ENUPoint More...
 
ENUPoint toENU (GeoPoint const &point)
 perform coordinate transformation from GeoPoint to ENUPoint More...
 
ENUPoint toENU (ECEFPoint const &point, GeoPoint const &enuReferencePoint)
 perform coordinate transformation from ECEFPoint to ENUPoint More...
 
ENUPoint toENU (GeoPoint const &point, GeoPoint const &enuReferencePoint)
 perform coordinate transformation from GeoPoint to ENUPoint More...
 
ECEFEdge toECEF (GeoEdge const &edge)
 perform coordinate transformation from GeoEdge to ECEFEdge More...
 
ECEFEdge toECEF (ENUEdge const &edge, GeoPoint const &enuReferencePoint)
 perform coordinate transformation from ENUEdge to ECEFEdge More...
 
GeoEdge toGeo (ECEFEdge const &edge)
 perform coordinate transformation from ECEFEdge to GeoEdge More...
 
GeoEdge toGeo (ENUEdge const &edge, GeoPoint const &enuReferencePoint)
 perform coordinate transformation from ENUEdge to GeoEdge More...
 
ENUEdge toENU (ECEFEdge const &edge)
 perform coordinate transformation from ECEFEdge to ENUEdge More...
 
ENUEdge toENU (ECEFEdge const &edge, GeoPoint const &enuReferencePoint)
 perform coordinate transformation from ECEFEdge to ENUEdge More...
 

Variables

const physics::Distance cEdgePointBorderDistance {0.1}
 The edge point border distance.
 
const Altitude AltitudeUnknown
 constant defining the unknown altitude
 

Detailed Description

namespace point

Handling geographic positions in different coordinate systems

Function Documentation

◆ approxAltitude()

GeoPoint ad::map::point::approxAltitude ( GeoPoint const &  point,
const GeoEdge pts 
)

Approximates altitude of the point based on other points.

Parameters
[in]ptsSet of other points that will be used in approximation.
Returns
New point with same longitude and latitude, but approximated altitude.

◆ calcLength()

physics::Distance ad::map::point::calcLength ( ECEFEdge const &  edge)

calculate the length of the provided border as distance value

Length calculation is performed within Cartesian ECEF coordinate frame.

◆ calculateEdgeLength()

template<typename PointType >
physics::Distance ad::map::point::calculateEdgeLength ( std::vector< PointType > const &  edge)

Calculate the length of an edge.

Parameters
[in]edgeThe input edge to operate on.
Returns
The length of the edge

◆ calculateWidthRange()

template<typename PointType >
std::pair<physics::MetricRange, physics::Distance> ad::map::point::calculateWidthRange ( std::vector< PointType > const &  edgeLeft,
physics::Distance const &  edgeLeftLength,
std::vector< PointType > const &  edgeRight,
physics::Distance const &  edgeRightLength 
)

Calculate the width range and the average width of a pair of edges.

At maximum 100 supporting points are taken into account to calculate this.

Parameters
[in]leftEdgethe left-hand border edge as basis for the calculation
[in]leftEdgeLengththe length of the left-hand border edge
[in]rightEdgethe right-hand border edge as basis for the calculation
[in]rightEdgeLengththe length of the left-hand border edge
Returns
pair containing the range of the width and the average width between the two input edges.

◆ createECEFHeading() [1/2]

ECEFHeading ad::map::point::createECEFHeading ( ECEFPoint const &  start,
ECEFPoint const &  end 
)

create a heading in ECEF as a directional vector

Parameters
[in]startECEFPoint defining the start of the directional vector
[in]endECEFPoint defining the end of the directional vector
Returns
heading = norm(end - start)

◆ createECEFHeading() [2/2]

ECEFHeading ad::map::point::createECEFHeading ( ENUHeading const &  yaw,
GeoPoint const &  enuReferencePoint 
)

create a heading in ECEF as a directional vector

Parameters
[in]yawENUHeading the heading in ENU coordinate frame
[in]enuReferencePointthe GeoPoint defining the ENU reference point
Returns
heading in ECEF as directional vector

◆ createECEFPoint() [1/2]

ECEFPoint ad::map::point::createECEFPoint ( double const  x,
double const  y,
double const  z 
)
inline

create a ECEFPoint

Parameters
[in]xx-coodinate of the point
[in]yy-coodinate of the point
[in]zz-coodinate of the point

◆ createECEFPoint() [2/2]

ECEFPoint ad::map::point::createECEFPoint ( ECEFCoordinate const  x,
ECEFCoordinate const  y,
ECEFCoordinate const  z 
)
inline

create a ECEFPoint

Parameters
[in]xx-coodinate of the point
[in]yy-coodinate of the point
[in]zz-coodinate of the point

◆ createENUHeading() [1/6]

ENUHeading ad::map::point::createENUHeading ( double  yawAngleRadian)

create a ENUHeading from yaw angle in radians

Heading in ENU coordinate system as angle measured from East to North axis (yaw) in radians

Parameters
[in]yawAngleRadianheading provided as yaw angle in radians
Returns
heading with given yaw angle is normalized in the range -M_PI < heading <= M_PI

◆ createENUHeading() [2/6]

ENUHeading ad::map::point::createENUHeading ( ECEFHeading const &  ecefHeading)

create a ENUHeading from ECEFHeading value

Heading in ENU coordinate system as angle measured from East to North axis (yaw) in radians

Parameters
[in]ecefHeadingECEFHeading value
Returns
heading with given yaw angle is normalized in the range -M_PI < heading <= M_PI

◆ createENUHeading() [3/6]

ENUHeading ad::map::point::createENUHeading ( ECEFHeading const &  ecefHeading,
ECEFPoint const &  enuReferencePoint 
)

create a ENUHeading from ECEFHeading value

Heading in ENU coordinate system as angle measured from East to North axis (yaw) in radians

Parameters
[in]ecefHeadingECEFHeading value
[in]enuReferencePointthe reference point of the ENU coordinate system as ECEFPoint
Returns
heading with given yaw angle is normalized in the range -M_PI < heading <= M_PI

◆ createENUHeading() [4/6]

ENUHeading ad::map::point::createENUHeading ( ECEFHeading const &  ecefHeading,
GeoPoint const &  enuReferencePoint 
)

create a ENUHeading from ECEFHeading value

Heading in ENU coordinate system as angle measured from East to North axis (yaw) in radians

Parameters
[in]ecefHeadingECEFHeading value
[in]enuReferencePointthe reference point of the ENU coordinate system as GeoPoint
Returns
heading with given yaw angle is normalized in the range -M_PI < heading <= M_PI

◆ createENUHeading() [5/6]

ENUHeading ad::map::point::createENUHeading ( ENUPoint const &  start,
ENUPoint const &  end 
)

create a ENUHeading from a directional vector

Parameters
[in]startpoint defining the start of the directional vector
[in]endpoint defining the end of the directional vector
Returns
ENU heading of the resulting directional vector

◆ createENUHeading() [6/6]

ENUHeading ad::map::point::createENUHeading ( physics::Angle const &  angle)

create a ENUHeading from angle

Heading in ENU coordinate system as angle measured from East to North axis (yaw) in radians

Parameters
[in]angleheading provided as yaw angle in radians
Returns
heading with given yaw angle is normalized in the range -M_PI < heading <= M_PI

◆ createENUPoint() [1/2]

ENUPoint ad::map::point::createENUPoint ( double const  x,
double const  y,
double const  z 
)
inline

create a ENUPoint

Parameters
[in]xx-coodinate of the point
[in]yy-coodinate of the point
[in]zz-coodinate of the point

◆ createENUPoint() [2/2]

ENUPoint ad::map::point::createENUPoint ( ENUCoordinate const  x,
ENUCoordinate const  y,
ENUCoordinate const  z 
)
inline

create a ENUPoint

Parameters
[in]xx-coodinate of the point
[in]yy-coodinate of the point
[in]zz-coodinate of the point

◆ createGeometry()

Geometry ad::map::point::createGeometry ( const ECEFEdge points,
bool  closed 
)

create a geometry

Parameters
[in]pointsthe points to create the geometry from
[in]closedshould the geometry be closed?

◆ createGeoPoint()

GeoPoint ad::map::point::createGeoPoint ( Longitude const  longitude,
Latitude const  latitude,
Altitude const  altitude 
)
inline

create a GeoPoint

Parameters
[in]longitudelongitude of the point
[in]latitudelatitude of the point
[in]altitudealtitude of the point

◆ createParaPoint()

ParaPoint ad::map::point::createParaPoint ( lane::LaneId const &  laneId,
physics::ParametricValue const &  parametricOffset 
)
inline

create a ParaPoint

Parameters
[in]laneIdthe lane id
[in]parametricOffsetthe parametric offset

◆ degree2radians()

double ad::map::point::degree2radians ( double  degree)
inline

Convert degrees to radians.

Parameters
[in]degDecimal degrees.
Returns
Radians.

◆ distance() [1/4]

physics::Distance ad::map::point::distance ( BoundingSphere const &  left,
BoundingSphere const &  right 
)
inline

Computes distance between BoundingSpheres.

Returns
Distance between two bounding spheres in meters.

◆ distance() [2/4]

physics::Distance ad::map::point::distance ( ECEFPoint const &  point,
ECEFPoint const &  other 
)
inline

Computes distance between ECEF points.

Returns
Distance between two points in meters.

◆ distance() [3/4]

physics::Distance ad::map::point::distance ( ENUPoint const &  point,
ENUPoint const &  other 
)
inline

Computes distance between ENU points.

Returns
Distance between two points in meters.

◆ distance() [4/4]

physics::Distance ad::map::point::distance ( GeoPoint const &  point,
GeoPoint const &  other 
)

Computes distance between geo points.

Returns
Distance between two points in meters.

◆ findNearestPointOnEdge() [1/4]

physics::ParametricValue ad::map::point::findNearestPointOnEdge ( Geometry const &  geometry,
const point::ECEFPoint pt 
)

Finds point on geometry nearest to given point.

Parameters
[in]ptPoint of interest.
Returns
Parametric point on geometry nearest to the pt. Can be invalid (if pt is Invalid(), geometry is empty etc.).

◆ findNearestPointOnEdge() [2/4]

template<typename PointType >
physics::RatioValue ad::map::point::findNearestPointOnEdge ( PointType const &  a,
const PointType &  pt0,
const PointType &  pt1 
)

Find point nearest to the line formed by two points.

Parameters
[in]apoint to search for
[in]pt0First point of the line.
[in]pt1Second point of the line.
Returns
Value of t; nearest point to a can be calculated as (1-t)*pt0+t*pt1.

◆ findNearestPointOnEdge() [3/4]

template<typename PointType >
physics::ParametricValue ad::map::point::findNearestPointOnEdge ( std::vector< PointType > const &  edge,
const PointType &  pt 
)

Find the nearest point on an edge.

Parameters
[in]edgeThe input edge to operate on.
[in]ptPoint of interest.
Returns
Parametric point on geometry nearest to the pt. Can be invalid (if pt is Invalid(), geometry is empty etc.).

◆ findNearestPointOnEdge() [4/4]

template<typename PointType >
physics::ParametricValue ad::map::point::findNearestPointOnEdge ( std::vector< PointType > const &  edge,
physics::Distance const &  edgeLength,
const PointType &  pt 
)

Finds point on geometry nearest to given point.

Parameters
[in]ptPoint of interest.
Returns
Parametric point on geometry nearest to the pt. Can be invalid (if pt is Invalid(), geometry is empty etc.).

◆ findNearestPointOnSegment()

template<typename PointType >
physics::ParametricValue ad::map::point::findNearestPointOnSegment ( PointType const &  a,
const PointType &  pt0,
const PointType &  pt1 
)

Find point nearest to the segment formed by two points.

Parameters
[in]apoint to search for
[in]pt0First point of the segment.
[in]pt1Second point of the segment.
Returns
Value of 0<=t<=1; nearest point to this can be calculated as (1-t)*pt0+t*pt1.

◆ flatDistance()

physics::Distance ad::map::point::flatDistance ( GeoPoint const &  point,
const GeoPoint other 
)

Calculated distance between points not taking in account altitude.

Parameters
[in]otherOther object. Must be IsValid()!
Returns
Distance between this and other point not taking in account altitude.

◆ getCachedENUEdge()

ENUEdge ad::map::point::getCachedENUEdge ( Geometry const &  geometry)

get the cached ENUEdge for a geometry

Parameters
[in]geometrythe geometry to work on
Returns
Polyline that defines this Geometry in the ENU frame.
Note
Prior to the method call, valid coordinate transformation object must be set using SetCoordinateTransform(). ENU geometry will be calculated on-the-fly if
  • it was not previously calculated, or
  • ENU reference point has been changed.

◆ getDirectionalVectorZPlane()

ENUPoint ad::map::point::getDirectionalVectorZPlane ( ENUHeading const &  heading)
inline

get a directional vector of the heading

angle of zero vector will be along positive x - axis

Parameters
[in]headingthe heading input

◆ getDirectionVectorsZPlane()

void ad::map::point::getDirectionVectorsZPlane ( ENUHeading const &  heading,
ENUPoint directionalVector,
ENUPoint orthogonalVector 
)
inline

get a directional vector of the vectors heading and the orthogonal vector at once

Combines getDirectionalVectorZPlane() and getOrthogonalVectorZPlane() in one call.

Parameters
[in]headingthe heading input
[out]directionalVectordirectional vector of the heading, angle of zero vector will be along positive x - axis
[out]orthogonalVectorvector that is orthogonal to the vectors heading angle of zero vector will be along positive y - axis

◆ getEdgeEndDirectionalVector()

template<typename PointType >
PointType ad::map::point::getEdgeEndDirectionalVector ( std::vector< PointType > const  edge)

get a normalized vector representing the edge direction at edge end

If the number of edge points is <= 1, zero is returned. If the two end points of the edge are too close to each other, a third point is used if possible to increase the accuracy.

◆ getEdgeStartDirectionalVector()

template<typename PointType >
PointType ad::map::point::getEdgeStartDirectionalVector ( std::vector< PointType > const  edge)

get a normalized vector representing the edge direction at edge start

If the number of edge points is <= 1, zero is returned. If the two start points of the edge are too close to each other, a third point is used if possible to increase the accuracy.

◆ getLateralAlignmentEdge() [1/2]

template<typename PointType >
std::vector<PointType> ad::map::point::getLateralAlignmentEdge ( std::vector< PointType > const &  leftEdge,
physics::Distance const &  leftEdgeLength,
std::vector< PointType > const &  rightEdge,
physics::Distance const &  rightEdgeLength,
physics::ParametricValue const  lateralAlignment 
)

Get an edge between the two given border edges with corresponding lateralAlignment.

The left and right edges are usually the borders of some road section. This function then calculates a new edge in between two other edges providing e.g. the center edge (lateralAlgignment=0.5) or edge with other lateral shift.

Parameters
[in]leftEdgethe left-hand border edge as basis for the calculation
[in]leftEdgeLengththe length of the left-hand border edge
[in]rightEdgethe right-hand border edge as basis for the calculation
[in]rightEdgeLengththe length of the left-hand border edge
[in]lateralAlignmentthe lateral alignment as TParam [0.;1.] used to calculate the resulting edge. The lateral alignment is relative to the left edge. If lateralAlignment is 1., the left edge is returned, if lateralAlignment is 0., the right edge is returned
Exceptions
std::invalid_argumentif the lateralAlignment parameter is smaller than 0. or larger than 1.

◆ getLateralAlignmentEdge() [2/2]

template<typename PointType >
std::vector<PointType> ad::map::point::getLateralAlignmentEdge ( std::vector< PointType > const &  leftEdge,
std::vector< PointType > const &  rightEdge,
physics::ParametricValue const  lateralAlignment 
)

Get an edge between the two given border edges with corresponding lateralAlignment.

The left and right edges are usually the borders of some road section. This function then calculates a new edge in between two other edges providing e.g. the center edge (lateralAlgignment=0.5) or edge with other lateral shift.

Note: if the length of the edges are already know, the overloaded getLateralAlignmentEdge() function can be called.

Parameters
[in]leftEdgethe left-hand border edge as basis for the calculation
[in]rightEdgethe right-hand border edge as basis for the calculation
[in]lateralAlignmentthe lateral alignment as TParam [0.;1.] used to calculate the resulting edge. The lateral alignment is relative to the left edge. If lateralAlignment is 1., the left edge is returned, if lateralAlignment is 0., the right edge is returned
Exceptions
std::invalid_argumentif the lateralAlignment parameter is smaller than 0. or larger than 1.

◆ getMiddleEdge()

ECEFEdge ad::map::point::getMiddleEdge ( Geometry const &  geometry,
Geometry const &  other 
)

Calculates middle line between two Geometries.

Parameters
[in]geometryA geometry
[in]otherAnother geometry.
Returns
Middle line between two Geometry. Contains same number of points as biggest one.

◆ getOrthogonalVectorZPlane()

ENUPoint ad::map::point::getOrthogonalVectorZPlane ( ENUHeading const &  heading)
inline

get a vector that is orthogonal to the vectors heading

angle of zero vector will be along positive y - axis

Parameters
[in]headingthe heading input

◆ getParametricEdgePoints()

template<typename PointType >
std::vector<physics::ParametricValue> ad::map::point::getParametricEdgePoints ( std::vector< PointType > const &  edge)

Get the parametric edge points.

Parameters
[in]edgeThe input edge to operate on.
Returns
Vector of parametric values on the edge.

◆ getParametricPoint() [1/3]

point::ECEFPoint ad::map::point::getParametricPoint ( Geometry const &  geometry,
const physics::ParametricValue &  t 
)

Calculates parametric point on the geometry.

Parameters
[in]tParameter. 0 will return first point, and 1 last point on the geometry.
Returns
Parameteric point on the geometry. Can be invalid.

◆ getParametricPoint() [2/3]

template<typename PointType >
PointType ad::map::point::getParametricPoint ( std::vector< PointType > const &  edge,
const physics::ParametricValue &  t 
)

Calculates parametric point on the edge.

Parameters
[in]edgeThe input edge to operate on.
[in]tParameter. 0 will return first point, and 1 last point on the edge.
Returns
Parametric point on the edge.

◆ getParametricPoint() [3/3]

template<typename PointType >
PointType ad::map::point::getParametricPoint ( std::vector< PointType > const &  edge,
physics::Distance const &  edgeLength,
const physics::ParametricValue &  t 
)

Calculates parametric point on the edge.

Parameters
[in]edgeThe input edge to operate on.
[in]tParameter. 0 will return first point, and 1 last point on the edge.
Returns
Parametric point on the edge.

◆ getParametricRange() [1/3]

void ad::map::point::getParametricRange ( Geometry const &  geometry,
const physics::ParametricRange &  trange,
ECEFEdge outputEdge,
const bool  revertOrder = false 
)

Generates sub-geometry for given range.

Generates sub-geometry for given range. This overloaded member internally makes use of the getCachedENUEdge() feature of the geometry.

Parameters
[in]geometrysource geometry.
[in]trangeSpecifies parametric range.
[out]outputEdgeThe output edge to be filled with the sub-geometry points
[in]revertOrderoptional parameter: if set true the order of the points in the outputEdge is in reverse order of the geometry
Returns
Sub-geometry.

◆ getParametricRange() [2/3]

template<typename PointType >
std::vector<PointType> ad::map::point::getParametricRange ( std::vector< PointType > const &  edge,
const physics::ParametricRange &  trange 
)

Generates sub-edge for given range.

Parameters
[in]edgeThe input edge to operate on.
[in]trangeSpecifies parametric range.
Returns
Sub-geometry.

◆ getParametricRange() [3/3]

template<typename PointType >
std::vector<PointType> ad::map::point::getParametricRange ( std::vector< PointType > const &  edge,
physics::Distance const &  edgeLength,
const physics::ParametricRange &  trange 
)

Generates sub-edge for given range.

Parameters
[in]edgeThe input edge to operate on.
[in]trangeSpecifies parametric range.
Returns
Sub-geometry.

◆ haveSameEnd()

bool ad::map::point::haveSameEnd ( Geometry const &  edge,
const Geometry other 
)

Checks if two edges have same end point.

Parameters
[in]otherOther object. Must be IsValid()!
Returns
True if this Edge have same end point as another Edge.

◆ haveSameOrientation()

bool ad::map::point::haveSameOrientation ( const GeoEdge pts0,
const GeoEdge pts1 
)

Checks if two GeoEdge have same orientation by taking in account distances between first and last points.

Parameters
[in]pts0First GeoEdge
[in]pts1Second GeoEdge
Returns
true if d(pt0[0], pt1[0]) <= d(pt0[0], pt1[last])

◆ haveSameStart()

bool ad::map::point::haveSameStart ( Geometry const &  edge,
const Geometry other 
)

Checks if two edges have same start point.

Parameters
[in]otherOther object. Must be IsValid()!
Returns
True if this Geometry have same start point as another Geometry.

◆ isOnTheLeft() [1/2]

bool ad::map::point::isOnTheLeft ( const GeoEdge pts0,
const GeoEdge pts1 
)

Checks if one polyline is on the left side of another polyline.

Parameters
[in]pts0First GeoEdge
[in]pts1Second GeoEdge
Returns
true if pts0 is left of pts1.
Note
Altitude is not taken in the account!

◆ isOnTheLeft() [2/2]

bool ad::map::point::isOnTheLeft ( GeoPoint const &  point,
const GeoPoint pt0,
const GeoPoint pt1 
)

Checks if point is on the left side of the line defined by two points.

Parameters
[in]pt0First point defining the line.
[in]pt1Second point defining the line.
Returns
true if this point is on the left of the line defined by pt0, pt1.
Note
Altitude is not taken in the account!

◆ isPredecessor()

bool ad::map::point::isPredecessor ( Geometry const &  edge,
const Geometry other 
)

Checks if Geometry is longitudinally connected with another Geometry at the start.

Parameters
[in]otherOther object. Must be IsValid()!
Returns
True if this Geometry longitudinally connected with another Geometry at the start.

◆ isSuccessor()

bool ad::map::point::isSuccessor ( Geometry const &  edge,
const Geometry other 
)

Checks if Geometry is longitudinally connected with another Geometry at the end.

Parameters
[in]otherOther object. Must be IsValid()!
Returns
True if this Geometry longitudinally connected with another Geometry at the end.

◆ isValid() [1/5]

bool ad::map::point::isValid ( ECEFEdge const &  edge,
bool const  logErrors = true 
)
inline

checks if the given ECEFEdge is valid

checks if the given GeoEdge is valid

checks if the given ENUEdge is valid

The point is valid if it's within valid input range.

The edge is valid if it's within valid input range.

◆ isValid() [2/5]

bool ad::map::point::isValid ( ECEFPoint const &  point,
bool const  logErrors = true 
)
inline

checks if the given ECEFPoint is valid

The point is valid if it's within valid input range.

◆ isValid() [3/5]

bool ad::map::point::isValid ( ENUPoint const &  point,
bool const  logErrors = true 
)
inline

checks if the given ENUPoint is valid

The point is valid if it's within valid input range.

◆ isValid() [4/5]

bool ad::map::point::isValid ( Geometry const &  geometry)
inline

validity check

Parameters
[in]geometrythe geometry to check

◆ isValid() [5/5]

bool ad::map::point::isValid ( GeoPoint const &  point,
bool const  logErrors = true 
)
inline

checks if the given GeoPoint is valid

The point is valid if it's within valid input range.

◆ normalizeENUHeading()

ENUHeading ad::map::point::normalizeENUHeading ( ENUHeading const &  heading)
Returns
normalized ENU heading heading with given yaw angle is normalized in the range -M_PI < heading <= M_PI

◆ operator<<() [1/14]

std::ostream& ad::map::point::operator<< ( std::ostream &  os,
Altitude const &  _value 
)
inline

standard ostream operator

Parameters
[in]osThe output stream to write to
[in]_valueAltitude value
Returns
The stream object.

◆ operator<<() [2/14]

std::ostream& ad::map::point::operator<< ( std::ostream &  os,
BoundingSphere const &  _value 
)
inline

standard ostream operator

Parameters
[in]osThe output stream to write to
[in]_valueBoundingSphere value
Returns
The stream object.

◆ operator<<() [3/14]

std::ostream& ad::map::point::operator<< ( std::ostream &  os,
ECEFCoordinate const &  _value 
)
inline

standard ostream operator

Parameters
[in]osThe output stream to write to
[in]_valueECEFCoordinate value
Returns
The stream object.

◆ operator<<() [4/14]

std::ostream& ad::map::point::operator<< ( std::ostream &  os,
ECEFHeading const &  _value 
)
inline

standard ostream operator

Parameters
[in]osThe output stream to write to
[in]_valueECEFHeading value
Returns
The stream object.

◆ operator<<() [5/14]

std::ostream& ad::map::point::operator<< ( std::ostream &  os,
ECEFPoint const &  _value 
)
inline

standard ostream operator

Parameters
[in]osThe output stream to write to
[in]_valueECEFPoint value
Returns
The stream object.

◆ operator<<() [6/14]

std::ostream& ad::map::point::operator<< ( std::ostream &  os,
ENUCoordinate const &  _value 
)
inline

standard ostream operator

Parameters
[in]osThe output stream to write to
[in]_valueENUCoordinate value
Returns
The stream object.

◆ operator<<() [7/14]

std::ostream& ad::map::point::operator<< ( std::ostream &  os,
ENUEdgeCache const &  _value 
)
inline

standard ostream operator

Parameters
[in]osThe output stream to write to
[in]_valueENUEdgeCache value
Returns
The stream object.

◆ operator<<() [8/14]

std::ostream& ad::map::point::operator<< ( std::ostream &  os,
ENUHeading const &  _value 
)
inline

standard ostream operator

Parameters
[in]osThe output stream to write to
[in]_valueENUHeading value
Returns
The stream object.

◆ operator<<() [9/14]

std::ostream& ad::map::point::operator<< ( std::ostream &  os,
ENUPoint const &  _value 
)
inline

standard ostream operator

Parameters
[in]osThe output stream to write to
[in]_valueENUPoint value
Returns
The stream object.

◆ operator<<() [10/14]

std::ostream& ad::map::point::operator<< ( std::ostream &  os,
Geometry const &  _value 
)
inline

standard ostream operator

Parameters
[in]osThe output stream to write to
[in]_valueGeometry value
Returns
The stream object.

◆ operator<<() [11/14]

std::ostream& ad::map::point::operator<< ( std::ostream &  os,
GeoPoint const &  _value 
)
inline

standard ostream operator

Parameters
[in]osThe output stream to write to
[in]_valueGeoPoint value
Returns
The stream object.

◆ operator<<() [12/14]

std::ostream& ad::map::point::operator<< ( std::ostream &  os,
Latitude const &  _value 
)
inline

standard ostream operator

Parameters
[in]osThe output stream to write to
[in]_valueLatitude value
Returns
The stream object.

◆ operator<<() [13/14]

std::ostream& ad::map::point::operator<< ( std::ostream &  os,
Longitude const &  _value 
)
inline

standard ostream operator

Parameters
[in]osThe output stream to write to
[in]_valueLongitude value
Returns
The stream object.

◆ operator<<() [14/14]

std::ostream& ad::map::point::operator<< ( std::ostream &  os,
ParaPoint const &  _value 
)
inline

standard ostream operator

Parameters
[in]osThe output stream to write to
[in]_valueParaPoint value
Returns
The stream object.

◆ radians2degree()

double ad::map::point::radians2degree ( double  radians)
inline

Convert radians to degrees.

Parameters
[in]radRadians.
Returns
Degrees.

◆ toECEF() [1/4]

ECEFEdge ad::map::point::toECEF ( ENUEdge const &  edge,
GeoPoint const &  enuReferencePoint 
)

perform coordinate transformation from ENUEdge to ECEFEdge

The transformation into ENU coordinate frame makes use of the provided ENUReferencePoint

◆ toECEF() [2/4]

ECEFPoint ad::map::point::toECEF ( ENUPoint const &  point)
inline

perform coordinate transformation from ENUPoint to ECEFPoint

The transformation into ENU coordinate frame makes use of the globally set ENUReferencePoint (see AdMapAccess::setENUReferencePoint())

◆ toECEF() [3/4]

ECEFPoint ad::map::point::toECEF ( ENUPoint const &  point,
GeoPoint const &  enuReferencePoint 
)

perform coordinate transformation from ENUPoint to ECEFPoint

The transformation into ENU coordinate frame makes use of the provided enuReferencePoint

◆ toECEF() [4/4]

ECEFEdge ad::map::point::toECEF ( ENUEdge const &  edge)
inline

perform coordinate transformation from GeoEdge to ECEFEdge

perform coordinate transformation from ENUEdge to ECEFEdge

The transformation into ENU coordinate frame makes use of the globally set ENUReferencePoint (see AdMapAccess::setENUReferencePoint())

◆ toENU() [1/6]

ENUEdge ad::map::point::toENU ( ECEFEdge const &  edge)
inline

perform coordinate transformation from ECEFEdge to ENUEdge

perform coordinate transformation from GeoEdge to ENUEdge

The transformation into ENU coordinate frame makes use of the globally set ENUReferencePoint (see AdMapAccess::setENUReferencePoint())

◆ toENU() [2/6]

ENUEdge ad::map::point::toENU ( ECEFEdge const &  edge,
GeoPoint const &  enuReferencePoint 
)

perform coordinate transformation from ECEFEdge to ENUEdge

perform coordinate transformation from GeoEdge to ENUEdge

The transformation into ENU coordinate frame makes use of the provided ENUReferencePoint

◆ toENU() [3/6]

ENUPoint ad::map::point::toENU ( ECEFPoint const &  point)
inline

perform coordinate transformation from ECEFPoint to ENUPoint

The transformation into ENU coordinate frame makes use of the globally set ENUReferencePoint (see AdMapAccess::setENUReferencePoint())

◆ toENU() [4/6]

ENUPoint ad::map::point::toENU ( ECEFPoint const &  point,
GeoPoint const &  enuReferencePoint 
)

perform coordinate transformation from ECEFPoint to ENUPoint

The transformation into ENU coordinate frame makes use of the provided enuReferencePoint

◆ toENU() [5/6]

ENUPoint ad::map::point::toENU ( GeoPoint const &  point)
inline

perform coordinate transformation from GeoPoint to ENUPoint

The transformation into ENU coordinate frame makes use of the globally set ENUReferencePoint (see AdMapAccess::setENUReferencePoint())

◆ toENU() [6/6]

ENUPoint ad::map::point::toENU ( GeoPoint const &  point,
GeoPoint const &  enuReferencePoint 
)

perform coordinate transformation from GeoPoint to ENUPoint

The transformation into ENU coordinate frame makes use of the provided enuReferencePoint

◆ toGeo() [1/4]

GeoEdge ad::map::point::toGeo ( ENUEdge const &  edge)
inline

perform coordinate transformation from ECEFEdge to GeoEdge

perform coordinate transformation from ENUEdge to GeoEdge

The transformation into ENU coordinate frame makes use of the globally set ENUReferencePoint (see AdMapAccess::setENUReferencePoint())

◆ toGeo() [2/4]

GeoEdge ad::map::point::toGeo ( ENUEdge const &  edge,
GeoPoint const &  enuReferencePoint 
)

perform coordinate transformation from ENUEdge to GeoEdge

The transformation into ENU coordinate frame makes use of the provided ENUReferencePoint

◆ toGeo() [3/4]

GeoPoint ad::map::point::toGeo ( ENUPoint const &  point)
inline

perform coordinate transformation from ENUPoint to GeoPoint

The transformation into ENU coordinate frame makes use of the globally set ENUReferencePoint (see AdMapAccess::setENUReferencePoint())

◆ toGeo() [4/4]

GeoPoint ad::map::point::toGeo ( ENUPoint const &  point,
GeoPoint const &  enuReferencePoint 
)

perform coordinate transformation from ENUPoint to GeoPoint

The transformation into ENU coordinate frame makes use of the provided enuReferencePoint

◆ toRadians() [1/2]

double ad::map::point::toRadians ( Latitude const &  latitude)
inline

Convert Latitude to radians.

Parameters
[in]latitudelatitude
Returns
latitude in radians.

◆ toRadians() [2/2]

double ad::map::point::toRadians ( Longitude const &  longitude)
inline

Convert Longitude to radians.

Parameters
[in]longitudelongitude
Returns
longitude in radians.

◆ vectorAdd()

template<typename PointType >
PointType ad::map::point::vectorAdd ( PointType const &  a,
PointType const &  b 
)

add two vectors

Parameters
[in]avector a
[in]bvector b
Returns
vector c = a + b

◆ vectorCrossProduct()

template<typename PointType >
PointType ad::map::point::vectorCrossProduct ( PointType const &  a,
PointType const &  b 
)

calculate the cross product of two vectors

Parameters
[in]avector a
[in]bvector b
Returns
vector c = a x b

◆ vectorDotProduct()

template<typename PointType >
double ad::map::point::vectorDotProduct ( PointType const &  a,
PointType const &  b 
)

calculate the dot product of two vectors

Parameters
[in]avector a
[in]bvector b
Returns
value d = a * b

◆ vectorExtrapolate()

template<typename PointType >
PointType ad::map::point::vectorExtrapolate ( PointType const &  a,
PointType const &  b,
double const &  scalar 
)

Extrapolate point based on line defined by two points.

Parameters
[in]avector a
[in]bvector b
[in]scalarscalar value
Returns
Points extrapolated using point a and b. with scalar==0, it will return point a; with scalar==1, it will return point b.

◆ vectorInterpolate()

template<typename PointType >
PointType ad::map::point::vectorInterpolate ( PointType const &  a,
PointType const &  b,
physics::ParametricValue const &  tparam 
)

Interpolates point between two points.

Parameters
[in]avector a
[in]bvector b
[in]tparamBetween 0 and 1.
Returns
Point between point a and b. with tparam==0, it will return point a; with tparam==1, it will return point b.

◆ vectorLength()

template<typename PointType >
physics::Distance ad::map::point::vectorLength ( PointType const &  a)

calculate the length of a vector

Parameters
[in]avector a
Returns
value d = |a|

◆ vectorMultiplyScalar() [1/2]

template<typename PointType >
PointType ad::map::point::vectorMultiplyScalar ( PointType const &  a,
double const &  b 
)

multiplies a vector with a scalar

Parameters
[in]avector a
[in]bscalar b

◆ vectorMultiplyScalar() [2/2]

template<typename PointType >
PointType ad::map::point::vectorMultiplyScalar ( PointType const &  a,
physics::Distance const &  b 
)

multiplies a vector with a scalar

Parameters
[in]avector a
[in]bscalar b

◆ vectorNorm()

template<typename PointType >
PointType ad::map::point::vectorNorm ( PointType const &  a)

normalizes a vector

Parameters
[in]avector a
Returns
vector c = a / |a|

◆ vectorSub()

template<typename PointType >
PointType ad::map::point::vectorSub ( PointType const &  a,
PointType const &  b 
)

subtract two vectors from each right

Parameters
[in]avector a
[in]bvector b
Returns
c = a - b

◆ zeroAltitude()

GeoPoint ad::map::point::zeroAltitude ( GeoPoint const &  point)
Returns
New point with same longitude and latitude, but zero altitude.