Я озадачен, почему две библиотеки дают разные результаты.
const CATA = {
lat: 57.312004,
lng: 25.289825
};
const PK = {
lat: 57.307953,
lng: 25.295025
};
const tCATA = turf.point([CATA.lat, CATA.lng]);
const tPK = turf.point([PK.lat, PK.lng]);
const tDistance = turf.distance(tCATA, tPK, { units: "meters" });
const gCATA = new google.maps.LatLng(CATA);
const gPK = new google.maps.LatLng(PK);
const gDistance = google.maps.geometry.spherical.computeDistanceBetween(
gCATA,
gPK
);
console.log(tDistance, gDistance); // 707.249063108749, 548.7294775022126
CodeSandbox: https://codesandbox.io/s/boring-hawking-b7uwh
Хорошо, одна вещь может быть, что газон js использует другой радиус Земли (6371008.8
), чем Google (6378137
). Но даже предоставляя радиус дерна для computeDistanceBetween
, результаты все еще различаются для ~ 150 м.
Но, предполагая, что computeDistanceBetween
учитывает параметр радиуса, я предполагаю, что Google полагается на Haversine тоже, как и газон ...