MySQL dice en la documentación de ST_Distance_Sphere
Los cálculos utilizan una Tierra esférica y un radio configurable. El argumento opcional radio debe indicarse en metros. Si se omite, el El radio por defecto es de 6.370.986 metros. Si el argumento radio está presente pero no es positivo, se producirá un
ER_WRONG_ARGUMENTS
se produce un error.
PostGIS dice en los documentos de ST_Distance_Sphere
(aunque los documentos ya no son precisos )
Utiliza una Tierra esférica y un radio de 6370986 metros.
¿De dónde han sacado los 6.370.986 metros por defecto? WGS84 dice que el radio del eje mayor es 6.378.137,0 m. PostGIS, que ahora utiliza un Radio Medio, utiliza esencialmente 6371008.
En en el código
#define WGS84_MAJOR_AXIS 6378137.0
#define WGS84_INVERSE_FLATTENING 298.257223563
#define WGS84_MINOR_AXIS (WGS84_MAJOR_AXIS - WGS84_MAJOR_AXIS / WGS84_INVERSE_FLATTENING)
#define WGS84_RADIUS ((2.0 * WGS84_MAJOR_AXIS + WGS84_MINOR_AXIS ) / 3.0)
es decir
-- SELECT 6378137.0 - 6378137.0 / 298.257223563;
WGS84_MINOR_AXIS = 6356752.314245179498
-- SELECT ( 2.0 * 6378137.0 + ( 6378137.0 - 6378137.0 / 298.257223563) ) / 3.0;
WGS84_RADIUS = 6371008.771415059833
Las versiones más recientes son mucho menos eficientes, más complejas y utilizan Pro4j, pero parecen hacer lo mismo.
¿Y de dónde sale 6370986?