MySQL 26.7.0
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:
[legend]

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 ()=default
 

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 Cartesian_geometrycollection *  g1,
const Geometry *  g2 
) const

◆ eval() [2/87]

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

◆ eval() [3/87]

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

◆ eval() [4/87]

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

◆ eval() [5/87]

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

◆ eval() [6/87]

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

◆ eval() [7/87]

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

◆ eval() [8/87]

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

◆ eval() [9/87]

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

◆ eval() [10/87]

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

◆ eval() [11/87]

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

◆ eval() [12/87]

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

◆ eval() [13/87]

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

◆ eval() [14/87]

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

◆ eval() [15/87]

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

◆ eval() [16/87]

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

◆ eval() [17/87]

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

◆ eval() [18/87]

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

◆ eval() [19/87]

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

◆ eval() [20/87]

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

◆ eval() [21/87]

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

◆ eval() [22/87]

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

◆ eval() [23/87]

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

◆ eval() [24/87]

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

◆ eval() [25/87]

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

◆ eval() [26/87]

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

◆ eval() [27/87]

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

◆ eval() [28/87]

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

◆ eval() [29/87]

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

◆ eval() [30/87]

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

◆ eval() [31/87]

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

◆ eval() [32/87]

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

◆ eval() [33/87]

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

◆ eval() [34/87]

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

◆ eval() [35/87]

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

◆ eval() [36/87]

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

◆ eval() [37/87]

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

◆ eval() [38/87]

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

◆ eval() [39/87]

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

◆ eval() [40/87]

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

◆ eval() [41/87]

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

◆ eval() [42/87]

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

◆ eval() [43/87]

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

◆ eval() [44/87]

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

◆ eval() [45/87]

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

◆ eval() [46/87]

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

◆ eval() [47/87]

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

◆ eval() [48/87]

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

◆ eval() [49/87]

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

◆ eval() [50/87]

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

◆ eval() [51/87]

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

◆ eval() [52/87]

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

◆ eval() [53/87]

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

◆ eval() [54/87]

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

◆ eval() [55/87]

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

◆ eval() [56/87]

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

◆ eval() [57/87]

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

◆ eval() [58/87]

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

◆ eval() [59/87]

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

◆ eval() [60/87]

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

◆ eval() [61/87]

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

◆ eval() [62/87]

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

◆ eval() [63/87]

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

◆ eval() [64/87]

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

◆ eval() [65/87]

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

◆ eval() [66/87]

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

◆ eval() [67/87]

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

◆ eval() [68/87]

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

◆ eval() [69/87]

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

◆ eval() [70/87]

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

◆ eval() [71/87]

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

◆ eval() [72/87]

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

◆ eval() [73/87]

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

◆ eval() [74/87]

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

◆ eval() [75/87]

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

◆ eval() [76/87]

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

◆ eval() [77/87]

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

◆ eval() [78/87]

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

◆ eval() [79/87]

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

◆ eval() [80/87]

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

◆ eval() [81/87]

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

◆ eval() [82/87]

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

◆ eval() [83/87]

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

◆ eval() [84/87]

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

◆ eval() [85/87]

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

◆ eval() [86/87]

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

◆ eval() [87/87]

double gis::Distance::eval ( const Geometry *  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: