WL#12216: Ellipsoidal ST_Distance between any geometry types

Affects: Server-8.0   —   Status: Complete

WL#9347 implemented ellipsoidal ST_Distance for 0-dimensional types (POINT and MULTIPOINT). This WL impelements support for the remaining types.

Functional requirements from WL#9347 shall be satisfied with the exception of F-8 and F-9. Instead we require all geometries to be handled:

If both parameters are valid geometries in a geographic SRS, ST_Distance MUST return the shortest geodetic distance between the two geometries in that SRS. The result MUST be in meters, unless another unit is specified (see WL#11000 for known units)

Functional requirements from WL#11000 shall be satisfied.

Extend support for geographic geometries from only multipoint and point, to all combinations of point, linestring, polygon, multipoint, multilinestring, multipolygon, geometry collection.

Extend gis::distance to calculate distance between all combinations of geographic geometries. The distance will be calculated using boost geometry.

For combinations with geometry collections, iterate through the contents and find the minimum distance between geometries.
For other combinations, call boost::distance overloads directly.