ST_Distance_Sphere中的默认地球半径从何而来?
MySQL在文档中说 ST_Distance_Sphere 计算使用球形地球和可配置的半径。可选的radius参数应以米为单位。如果省略,则默认半径为6,370,986米。如果存在radius参数,但不是正数,ER_WRONG_ARGUMENTS则会发生错误。 PostGIS在的文档中说ST_Distance_Sphere(尽管这些文档不再准确) 使用球形地球,半径为6370986米。 他们从哪里获得默认的6,370,986米? WGS84说长轴半径为6,378,137.0 m。现在使用平均半径的PostGIS本质上使用6371008。 看代码 #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) 那意味着 -- SELECT 6378137.0 - 6378137.0 / 298.257223563; WGS84_MINOR_AXIS = 6356752.314245179498 -- SELECT ( 2.0 * 6378137.0 + …