MySQL mengatakan dalam dokumen untuk ST_Distance_Sphere
Perhitungan menggunakan bumi bulat dan radius yang dapat dikonfigurasi. Argumen radius opsional harus diberikan dalam meter. Jika dihilangkan, jari-jari standar adalah 6.370.986 meter. Jika argumen radius hadir tetapi tidak positif,
ER_WRONG_ARGUMENTS
kesalahan terjadi.
PostGIS mengatakan dalam dokumen ST_Distance_Sphere
, (meskipun dokumen tidak akurat lagi )
Menggunakan bumi bulat dan radius 6370986 meter.
Dari mana mereka mendapatkan standar 6.370.996 meter dari? WGS84 mengatakan jari-jari poros utama adalah 6.378.137,0 m. PostGIS yang sekarang menggunakan Radius Rata-rata pada dasarnya menggunakan 6371008.
Melihat kodenya
#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)
itu berarti
-- 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
Versi yang lebih baru jauh lebih efisien, lebih kompleks, dan menggunakan Pro4j tetapi mereka tampaknya melakukan hal yang sama.
Masih dari mana 6370986 berasal?
(2*minorAxis+majorAxis)/3
... meskipun nilai WGS84 masih beberapa meter lebih besar (6.371.008.771)