select sdo_geom.sdo_distance(
sdo_geometry(2001, 4326, sdo_point_type(40.0, 10.0, null), null, null),
sdo_geometry(2001, 4326, sdo_point_type(40.0, 11.0, null), null, null),
0.01,
'unit=KM'
) as distance
from dual;
DISTANCE
----------
110.611186
Obliczenia Oracle zwracają 110.611186 km
Ten w Twojej witrynie zwraca 111,19 km więc różnica 580 m . Ta różnica polega na tym, że Twój kalkulator online wykorzystuje prostą matematykę, zakładając kulę ziemia, podczas gdy Oracle używa właściwej elipsoidalnej kształt ziemi (elipsoida WGS84).
Możesz zobaczyć różnicę na https://www.fai.org/page/world -kalkulator odległości Jeśli wybierzesz WGS84 model Ziemi (elipsoida WGS84), uzyskasz taki sam wynik jak Oracle (110.611186562098). Jeśli zmienisz go na FAI Sphere wtedy otrzymujesz 111.19492643325476, taki sam jak twój komparator.
Prawidłowa odległość to 110,611 km. To, czy obliczanie z wyłączonym 580 m jest ważne, zależy od aplikacji. Jeśli mierzysz krótkie odległości (np. kilometr lub mniej), błąd jest znikomy. Ale na długich dystansach może to mieć znaczenie. Tutaj oznaczałoby to przeoczenie celu o 1/2 km!
Pokazuje, jak ważne jest użycie prawidłowego modelu Ziemi do tych obliczeń.
EDYTUJ: A reprezentacja Oracle (i prawie wszystkie narzędzia GIS) to długość i szerokość geograficzna . Jeśli zamienisz liczby, otrzymasz bardzo różne wyniki.