MySQL  8.0.22
Source Code Documentation
gis::Distance Class Reference

Distance functor that calls Boost.Geometry with the correct parameter types. More...

#include <distance_functor.h>

Inheritance diagram for gis::Distance:
gis::Functor< double >

Public Member Functions

 Distance (double major, double minor)
 
double operator() (const Geometry *g1, const Geometry *g2) const override
 
double eval (const Geometry *g1, const Geometry *g2) const
 
double eval (const Cartesian_point *g1, const Cartesian_point *g2) const
 
double eval (const Cartesian_point *g1, const Cartesian_linestring *g2) const
 
double eval (const Cartesian_point *g1, const Cartesian_polygon *g2) const
 
double eval (const Cartesian_point *g1, const Cartesian_geometrycollection *g2) const
 
double eval (const Cartesian_point *g1, const Cartesian_multipoint *g2) const
 
double eval (const Cartesian_point *g1, const Cartesian_multilinestring *g2) const
 
double eval (const Cartesian_point *g1, const Cartesian_multipolygon *g2) const
 
double eval (const Cartesian_linestring *g1, const Cartesian_point *g2) const
 
double eval (const Cartesian_linestring *g1, const Cartesian_linestring *g2) const
 
double eval (const Cartesian_linestring *g1, const Cartesian_polygon *g2) const
 
double eval (const Cartesian_linestring *g1, const Cartesian_geometrycollection *g2) const
 
double eval (const Cartesian_linestring *g1, const Cartesian_multipoint *g2) const
 
double eval (const Cartesian_linestring *g1, const Cartesian_multilinestring *g2) const
 
double eval (const Cartesian_linestring *g1, const Cartesian_multipolygon *g2) const
 
double eval (const Cartesian_polygon *g1, const Cartesian_point *g2) const
 
double eval (const Cartesian_polygon *g1, const Cartesian_linestring *g2) const
 
double eval (const Cartesian_polygon *g1, const Cartesian_polygon *g2) const
 
double eval (const Cartesian_polygon *g1, const Cartesian_geometrycollection *g2) const
 
double eval (const Cartesian_polygon *g1, const Cartesian_multipoint *g2) const
 
double eval (const Cartesian_polygon *g1, const Cartesian_multilinestring *g2) const
 
double eval (const Cartesian_polygon *g1, const Cartesian_multipolygon *g2) const
 
double eval (const Cartesian_geometrycollection *g1, const Geometry *g2) const
 
double eval (const Cartesian_multipoint *g1, const Cartesian_point *g2) const
 
double eval (const Cartesian_multipoint *g1, const Cartesian_linestring *g2) const
 
double eval (const Cartesian_multipoint *g1, const Cartesian_polygon *g2) const
 
double eval (const Cartesian_multipoint *g1, const Cartesian_geometrycollection *g2) const
 
double eval (const Cartesian_multipoint *g1, const Cartesian_multipoint *g2) const
 
double eval (const Cartesian_multipoint *g1, const Cartesian_multilinestring *g2) const
 
double eval (const Cartesian_multipoint *g1, const Cartesian_multipolygon *g2) const
 
double eval (const Cartesian_multilinestring *g1, const Cartesian_point *g2) const
 
double eval (const Cartesian_multilinestring *g1, const Cartesian_linestring *g2) const
 
double eval (const Cartesian_multilinestring *g1, const Cartesian_polygon *g2) const
 
double eval (const Cartesian_multilinestring *g1, const Cartesian_geometrycollection *g2) const
 
double eval (const Cartesian_multilinestring *g1, const Cartesian_multipoint *g2) const
 
double eval (const Cartesian_multilinestring *g1, const Cartesian_multilinestring *g2) const
 
double eval (const Cartesian_multilinestring *g1, const Cartesian_multipolygon *g2) const
 
double eval (const Cartesian_multipolygon *g1, const Cartesian_point *g2) const
 
double eval (const Cartesian_multipolygon *g1, const Cartesian_linestring *g2) const
 
double eval (const Cartesian_multipolygon *g1, const Cartesian_polygon *g2) const
 
double eval (const Cartesian_multipolygon *g1, const Cartesian_geometrycollection *g2) const
 
double eval (const Cartesian_multipolygon *g1, const Cartesian_multipoint *g2) const
 
double eval (const Cartesian_multipolygon *g1, const Cartesian_multilinestring *g2) const
 
double eval (const Cartesian_multipolygon *g1, const Cartesian_multipolygon *g2) const
 
double eval (const Geographic_point *g1, const Geographic_point *g2) const
 
double eval (const Geographic_point *g1, const Geographic_linestring *g2) const
 
double eval (const Geographic_point *g1, const Geographic_polygon *g2) const
 
double eval (const Geographic_point *g1, const Geographic_multipoint *g2) const
 
double eval (const Geographic_point *g1, const Geographic_multilinestring *g2) const
 
double eval (const Geographic_point *g1, const Geographic_multipolygon *g2) const
 
double eval (const Geographic_point *g1, const Geographic_geometrycollection *g2) const
 
double eval (const Geographic_linestring *g1, const Geographic_point *g2) const
 
double eval (const Geographic_linestring *g1, const Geographic_linestring *g2) const
 
double eval (const Geographic_linestring *g1, const Geographic_polygon *g2) const
 
double eval (const Geographic_linestring *g1, const Geographic_multipoint *g2) const
 
double eval (const Geographic_linestring *g1, const Geographic_multilinestring *g2) const
 
double eval (const Geographic_linestring *g1, const Geographic_multipolygon *g2) const
 
double eval (const Geographic_linestring *g1, const Geographic_geometrycollection *g2) const
 
double eval (const Geographic_polygon *g1, const Geographic_point *g2) const
 
double eval (const Geographic_polygon *g1, const Geographic_linestring *g2) const
 
double eval (const Geographic_polygon *g1, const Geographic_polygon *g2) const
 
double eval (const Geographic_polygon *g1, const Geographic_multipoint *g2) const
 
double eval (const Geographic_polygon *g1, const Geographic_multilinestring *g2) const
 
double eval (const Geographic_polygon *g1, const Geographic_multipolygon *g2) const
 
double eval (const Geographic_polygon *g1, const Geographic_geometrycollection *g2) const
 
double eval (const Geographic_multipoint *g1, const Geographic_point *g2) const
 
double eval (const Geographic_multipoint *g1, const Geographic_linestring *g2) const
 
double eval (const Geographic_multipoint *g1, const Geographic_polygon *g2) const
 
double eval (const Geographic_multipoint *g1, const Geographic_multipoint *g2) const
 
double eval (const Geographic_multipoint *g1, const Geographic_multilinestring *g2) const
 
double eval (const Geographic_multipoint *g1, const Geographic_multipolygon *g2) const
 
double eval (const Geographic_multipoint *g1, const Geographic_geometrycollection *g2) const
 
double eval (const Geographic_multilinestring *g1, const Geographic_point *g2) const
 
double eval (const Geographic_multilinestring *g1, const Geographic_linestring *g2) const
 
double eval (const Geographic_multilinestring *g1, const Geographic_polygon *g2) const
 
double eval (const Geographic_multilinestring *g1, const Geographic_multipoint *g2) const
 
double eval (const Geographic_multilinestring *g1, const Geographic_multilinestring *g2) const
 
double eval (const Geographic_multilinestring *g1, const Geographic_multipolygon *g2) const
 
double eval (const Geographic_multilinestring *g1, const Geographic_geometrycollection *g2) const
 
double eval (const Geographic_multipolygon *g1, const Geographic_point *g2) const
 
double eval (const Geographic_multipolygon *g1, const Geographic_linestring *g2) const
 
double eval (const Geographic_multipolygon *g1, const Geographic_polygon *g2) const
 
double eval (const Geographic_multipolygon *g1, const Geographic_multipoint *g2) const
 
double eval (const Geographic_multipolygon *g1, const Geographic_multilinestring *g2) const
 
double eval (const Geographic_multipolygon *g1, const Geographic_multipolygon *g2) const
 
double eval (const Geographic_multipolygon *g1, const Geographic_geometrycollection *g2) const
 
double eval (const Geographic_geometrycollection *g1, const Geometry *g2) const
 
- Public Member Functions inherited from gis::Functor< double >
virtual ~Functor ()
 

Private Attributes

std::unique_ptr< boost::geometry::strategy::distance::andoyer< boost::geometry::srs::spheroid< double > > > m_geographic_strategy_pp
 
std::unique_ptr< boost::geometry::strategy::distance::geographic_cross_track< boost::geometry::strategy::andoyer, boost::geometry::srs::spheroid< double >, double > > m_geographic_strategy_non_pp
 

Additional Inherited Members

- Static Protected Member Functions inherited from gis::Functor< double >
static double apply (F &f, const Geometry *g1, const Geometry *g2)
 

Detailed Description

Distance functor that calls Boost.Geometry with the correct parameter types.

The functor throws exceptions and is therefore only intended used to implement distance or other geographic functions. It should not be used directly by other MySQL code.

Constructor & Destructor Documentation

◆ Distance()

gis::Distance::Distance ( double  major,
double  minor 
)

Member Function Documentation

◆ eval() [1/87]

double gis::Distance::eval ( const Geometry g1,
const Geometry g2 
) const

◆ eval() [2/87]

double gis::Distance::eval ( const Cartesian_point g1,
const Cartesian_point g2 
) const

◆ eval() [3/87]

double gis::Distance::eval ( const Cartesian_point g1,
const Cartesian_linestring g2 
) const

◆ eval() [4/87]

double gis::Distance::eval ( const Cartesian_point g1,
const Cartesian_polygon g2 
) const

◆ eval() [5/87]

double gis::Distance::eval ( const Cartesian_point g1,
const Cartesian_geometrycollection g2 
) const

◆ eval() [6/87]

double gis::Distance::eval ( const Cartesian_point g1,
const Cartesian_multipoint g2 
) const

◆ eval() [7/87]

double gis::Distance::eval ( const Cartesian_point g1,
const Cartesian_multilinestring g2 
) const

◆ eval() [8/87]

double gis::Distance::eval ( const Cartesian_point g1,
const Cartesian_multipolygon g2 
) const

◆ eval() [9/87]

double gis::Distance::eval ( const Cartesian_linestring g1,
const Cartesian_point g2 
) const

◆ eval() [10/87]

double gis::Distance::eval ( const Cartesian_linestring g1,
const Cartesian_linestring g2 
) const

◆ eval() [11/87]

double gis::Distance::eval ( const Cartesian_linestring g1,
const Cartesian_polygon g2 
) const

◆ eval() [12/87]

double gis::Distance::eval ( const Cartesian_linestring g1,
const Cartesian_geometrycollection g2 
) const

◆ eval() [13/87]

double gis::Distance::eval ( const Cartesian_linestring g1,
const Cartesian_multipoint g2 
) const

◆ eval() [14/87]

double gis::Distance::eval ( const Cartesian_linestring g1,
const Cartesian_multilinestring g2 
) const

◆ eval() [15/87]

double gis::Distance::eval ( const Cartesian_linestring g1,
const Cartesian_multipolygon g2 
) const

◆ eval() [16/87]

double gis::Distance::eval ( const Cartesian_polygon g1,
const Cartesian_point g2 
) const

◆ eval() [17/87]

double gis::Distance::eval ( const Cartesian_polygon g1,
const Cartesian_linestring g2 
) const

◆ eval() [18/87]

double gis::Distance::eval ( const Cartesian_polygon g1,
const Cartesian_polygon g2 
) const

◆ eval() [19/87]

double gis::Distance::eval ( const Cartesian_polygon g1,
const Cartesian_geometrycollection g2 
) const

◆ eval() [20/87]

double gis::Distance::eval ( const Cartesian_polygon g1,
const Cartesian_multipoint g2 
) const

◆ eval() [21/87]

double gis::Distance::eval ( const Cartesian_polygon g1,
const Cartesian_multilinestring g2 
) const

◆ eval() [22/87]

double gis::Distance::eval ( const Cartesian_polygon g1,
const Cartesian_multipolygon g2 
) const

◆ eval() [23/87]

double gis::Distance::eval ( const Cartesian_geometrycollection g1,
const Geometry g2 
) const

◆ eval() [24/87]

double gis::Distance::eval ( const Cartesian_multipoint g1,
const Cartesian_point g2 
) const

◆ eval() [25/87]

double gis::Distance::eval ( const Cartesian_multipoint g1,
const Cartesian_linestring g2 
) const

◆ eval() [26/87]

double gis::Distance::eval ( const Cartesian_multipoint g1,
const Cartesian_polygon g2 
) const

◆ eval() [27/87]

double gis::Distance::eval ( const Cartesian_multipoint g1,
const Cartesian_geometrycollection g2 
) const

◆ eval() [28/87]

double gis::Distance::eval ( const Cartesian_multipoint g1,
const Cartesian_multipoint g2 
) const

◆ eval() [29/87]

double gis::Distance::eval ( const Cartesian_multipoint g1,
const Cartesian_multilinestring g2 
) const

◆ eval() [30/87]

double gis::Distance::eval ( const Cartesian_multipoint g1,
const Cartesian_multipolygon g2 
) const

◆ eval() [31/87]

double gis::Distance::eval ( const Cartesian_multilinestring g1,
const Cartesian_point g2 
) const

◆ eval() [32/87]

double gis::Distance::eval ( const Cartesian_multilinestring g1,
const Cartesian_linestring g2 
) const

◆ eval() [33/87]

double gis::Distance::eval ( const Cartesian_multilinestring g1,
const Cartesian_polygon g2 
) const

◆ eval() [34/87]

double gis::Distance::eval ( const Cartesian_multilinestring g1,
const Cartesian_geometrycollection g2 
) const

◆ eval() [35/87]

double gis::Distance::eval ( const Cartesian_multilinestring g1,
const Cartesian_multipoint g2 
) const

◆ eval() [36/87]

double gis::Distance::eval ( const Cartesian_multilinestring g1,
const Cartesian_multilinestring g2 
) const

◆ eval() [37/87]

double gis::Distance::eval ( const Cartesian_multilinestring g1,
const Cartesian_multipolygon g2 
) const

◆ eval() [38/87]

double gis::Distance::eval ( const Cartesian_multipolygon g1,
const Cartesian_point g2 
) const

◆ eval() [39/87]

double gis::Distance::eval ( const Cartesian_multipolygon g1,
const Cartesian_linestring g2 
) const

◆ eval() [40/87]

double gis::Distance::eval ( const Cartesian_multipolygon g1,
const Cartesian_polygon g2 
) const

◆ eval() [41/87]

double gis::Distance::eval ( const Cartesian_multipolygon g1,
const Cartesian_geometrycollection g2 
) const

◆ eval() [42/87]

double gis::Distance::eval ( const Cartesian_multipolygon g1,
const Cartesian_multipoint g2 
) const

◆ eval() [43/87]

double gis::Distance::eval ( const Cartesian_multipolygon g1,
const Cartesian_multilinestring g2 
) const

◆ eval() [44/87]

double gis::Distance::eval ( const Cartesian_multipolygon g1,
const Cartesian_multipolygon g2 
) const

◆ eval() [45/87]

double gis::Distance::eval ( const Geographic_point g1,
const Geographic_point g2 
) const

◆ eval() [46/87]

double gis::Distance::eval ( const Geographic_point g1,
const Geographic_linestring g2 
) const

◆ eval() [47/87]

double gis::Distance::eval ( const Geographic_point g1,
const Geographic_polygon g2 
) const

◆ eval() [48/87]

double gis::Distance::eval ( const Geographic_point g1,
const Geographic_multipoint g2 
) const

◆ eval() [49/87]

double gis::Distance::eval ( const Geographic_point g1,
const Geographic_multilinestring g2 
) const

◆ eval() [50/87]

double gis::Distance::eval ( const Geographic_point g1,
const Geographic_multipolygon g2 
) const

◆ eval() [51/87]

double gis::Distance::eval ( const Geographic_point g1,
const Geographic_geometrycollection g2 
) const

◆ eval() [52/87]

double gis::Distance::eval ( const Geographic_linestring g1,
const Geographic_point g2 
) const

◆ eval() [53/87]

double gis::Distance::eval ( const Geographic_linestring g1,
const Geographic_linestring g2 
) const

◆ eval() [54/87]

double gis::Distance::eval ( const Geographic_linestring g1,
const Geographic_polygon g2 
) const

◆ eval() [55/87]

double gis::Distance::eval ( const Geographic_linestring g1,
const Geographic_multipoint g2 
) const

◆ eval() [56/87]

double gis::Distance::eval ( const Geographic_linestring g1,
const Geographic_multilinestring g2 
) const

◆ eval() [57/87]

double gis::Distance::eval ( const Geographic_linestring g1,
const Geographic_multipolygon g2 
) const

◆ eval() [58/87]

double gis::Distance::eval ( const Geographic_linestring g1,
const Geographic_geometrycollection g2 
) const

◆ eval() [59/87]

double gis::Distance::eval ( const Geographic_polygon g1,
const Geographic_point g2 
) const

◆ eval() [60/87]

double gis::Distance::eval ( const Geographic_polygon g1,
const Geographic_linestring g2 
) const

◆ eval() [61/87]

double gis::Distance::eval ( const Geographic_polygon g1,
const Geographic_polygon g2 
) const

◆ eval() [62/87]

double gis::Distance::eval ( const Geographic_polygon g1,
const Geographic_multipoint g2 
) const

◆ eval() [63/87]

double gis::Distance::eval ( const Geographic_polygon g1,
const Geographic_multilinestring g2 
) const

◆ eval() [64/87]

double gis::Distance::eval ( const Geographic_polygon g1,
const Geographic_multipolygon g2 
) const

◆ eval() [65/87]

double gis::Distance::eval ( const Geographic_polygon g1,
const Geographic_geometrycollection g2 
) const

◆ eval() [66/87]

double gis::Distance::eval ( const Geographic_multipoint g1,
const Geographic_point g2 
) const

◆ eval() [67/87]

double gis::Distance::eval ( const Geographic_multipoint g1,
const Geographic_linestring g2 
) const

◆ eval() [68/87]

double gis::Distance::eval ( const Geographic_multipoint g1,
const Geographic_polygon g2 
) const

◆ eval() [69/87]

double gis::Distance::eval ( const Geographic_multipoint g1,
const Geographic_multipoint g2 
) const

◆ eval() [70/87]

double gis::Distance::eval ( const Geographic_multipoint g1,
const Geographic_multilinestring g2 
) const

◆ eval() [71/87]

double gis::Distance::eval ( const Geographic_multipoint g1,
const Geographic_multipolygon g2 
) const

◆ eval() [72/87]

double gis::Distance::eval ( const Geographic_multipoint g1,
const Geographic_geometrycollection g2 
) const

◆ eval() [73/87]

double gis::Distance::eval ( const Geographic_multilinestring g1,
const Geographic_point g2 
) const

◆ eval() [74/87]

double gis::Distance::eval ( const Geographic_multilinestring g1,
const Geographic_linestring g2 
) const

◆ eval() [75/87]

double gis::Distance::eval ( const Geographic_multilinestring g1,
const Geographic_polygon g2 
) const

◆ eval() [76/87]

double gis::Distance::eval ( const Geographic_multilinestring g1,
const Geographic_multipoint g2 
) const

◆ eval() [77/87]

double gis::Distance::eval ( const Geographic_multilinestring g1,
const Geographic_multilinestring g2 
) const

◆ eval() [78/87]

double gis::Distance::eval ( const Geographic_multilinestring g1,
const Geographic_multipolygon g2 
) const

◆ eval() [79/87]

double gis::Distance::eval ( const Geographic_multilinestring g1,
const Geographic_geometrycollection g2 
) const

◆ eval() [80/87]

double gis::Distance::eval ( const Geographic_multipolygon g1,
const Geographic_point g2 
) const

◆ eval() [81/87]

double gis::Distance::eval ( const Geographic_multipolygon g1,
const Geographic_linestring g2 
) const

◆ eval() [82/87]

double gis::Distance::eval ( const Geographic_multipolygon g1,
const Geographic_polygon g2 
) const

◆ eval() [83/87]

double gis::Distance::eval ( const Geographic_multipolygon g1,
const Geographic_multipoint g2 
) const

◆ eval() [84/87]

double gis::Distance::eval ( const Geographic_multipolygon g1,
const Geographic_multilinestring g2 
) const

◆ eval() [85/87]

double gis::Distance::eval ( const Geographic_multipolygon g1,
const Geographic_multipolygon g2 
) const

◆ eval() [86/87]

double gis::Distance::eval ( const Geographic_multipolygon g1,
const Geographic_geometrycollection g2 
) const

◆ eval() [87/87]

double gis::Distance::eval ( const Geographic_geometrycollection g1,
const Geometry g2 
) const

◆ operator()()

double gis::Distance::operator() ( const Geometry g1,
const Geometry g2 
) const
overridevirtual

Member Data Documentation

◆ m_geographic_strategy_non_pp

std::unique_ptr<boost::geometry::strategy::distance::geographic_cross_track< boost::geometry::strategy::andoyer, boost::geometry::srs::spheroid<double>, double> > gis::Distance::m_geographic_strategy_non_pp
private

◆ m_geographic_strategy_pp

std::unique_ptr<boost::geometry::strategy::distance::andoyer< boost::geometry::srs::spheroid<double> > > gis::Distance::m_geographic_strategy_pp
private

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