MySQL은 문서에서 ST_Distance_Sphere
계산에는 구형 지구와 구성 가능한 반경이 사용됩니다. 선택적 반경 인수는 미터 단위로 제공해야합니다. 생략하면 기본 반경은 6,370,986 미터입니다. 반경 인수가 있지만 양수가 아닌 경우
ER_WRONG_ARGUMENTS
오류가 발생합니다.
PostGIS 는의 문서에서 말합니다 ST_Distance_Sphere
( 문서는 더 이상 정확하지 않지만 ).
6370986 미터의 구형 지구와 반경을 사용합니다.
기본 6,370,986 미터는 어디서 얻었습니까? WGS84 는 장축 반경이 6,378,137.0m라고 말합니다. 현재 평균 반경을 사용하는 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 + ( 6378137.0 - 6378137.0 / 298.257223563) ) / 3.0;
WGS84_RADIUS = 6371008.771415059833
최신 버전은 효율성이 떨어지고 복잡하며 Pro4j를 사용하지만 동일한 기능을 수행하는 것으로 보입니다.
아직도 6370986은 어디에서 왔습니까?
(2*minorAxis+majorAxis)/3
WGS84에 대한 그 값은 여전히 몇 미터 더 큰 (6,371,008.771) 비록 ...