MySQL, ST_Distance_Sphere
Hesaplamalar küresel bir toprak ve yapılandırılabilir bir yarıçap kullanır. İsteğe bağlı yarıçap argümanı metre cinsinden verilmelidir. Atlanırsa, varsayılan yarıçap 6.370.986 metredir. Yarıçap bağımsız değişkeni varsa ancak pozitif değilse, bir
ER_WRONG_ARGUMENTS
hata oluşur.
PostGIS , dokümanlarda diyor ST_Distance_Sphere
(ancak dokümanlar artık doğru değil )
Küresel bir dünya ve 6370986 metrelik yarıçapı kullanır.
Varsayılan 6.370.986 metreyi nereden aldılar? WGS84 , ana eksen yarıçapının 6.378.137,0 m olduğunu söylüyor. Artık Ortalama Yarıçap kullanan PostGIS, temel olarak 6371008 kullanır.
Looking kodu
#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)
bunun anlamı
-- 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
Daha yeni sürümler çok daha az verimli, daha karmaşık ve Pro4j kullanıyor ancak aynı şeyi yapıyor gibi görünüyor.
Hala 6370986 nereden geliyor?
(2*minorAxis+majorAxis)/3