Я использовал ST_Distance_Spheroid
в PostgreSQL (с Postgis) для расчета расстояния между Уокингом и Эдинбургом следующим образом:
CREATE TABLE pointsTable (
id serial NOT NULL,
name varchar(255) NOT NULL,
location Point NOT NULL,
PRIMARY KEY (id)
);
INSERT INTO pointsTable (name, location) VALUES
( 'Woking', '(51.3168, -0.56)' ),
( 'Edinburgh', '(55.9533, -3.1883)' );
SELECT ST_Distance_Spheroid(geometry(a.location), geometry(b.location), 'SPHEROID["WGS 84",6378137,298.257223563]')
FROM pointsTable a, pointsTable b
WHERE a.id=1 AND b.id=2;
Я получил результат 592 км (592 053,100454442 метра).
К сожалению, когда я использовал различные источники в Интернете, чтобы сделать один и тот же расчет, я постоянно получал отметку в 543 км, которая отличается на 8,2%.
- источник 1 – 338 миль (543,958 км)
- источник 2 — 544,410 км
- источник 3 — 543,8 км
К счастью, третий источник пояснил, что они использовали формулу гаверсинуса. Я не уверен в двух других источниках.
Я сделал что-то не так в своих запросах или это связано с разницей в используемых формулах? Если да, то какой расчет ближе всего к кратчайшему расстоянию, на которое может пролететь ворона, сохраняя постоянную высоту?