Kosinový zákon a Haversinův vzorec poskytnou stejné výsledky za předpokladu stroje s nekonečnou přesností. Haversinův vzorec je odolnější vůči chybám s pohyblivou řádovou čárkou. Dnešní stroje však mají dvojnásobnou přesnost řádově 15 platných číslic a zákon kosinus vám může fungovat dobře. Oba tyto vzorce předpokládají sférickou Zemi, zatímco Vicentyho iterační řešení (nejpřesnější) předpokládá elipsoidní Zemi (ve skutečnosti země ani není elipsoid - je to geoid). Některé odkazy:http://www.movable-type. co.uk/scripts/gis-faq-5.1.html
Je to lepší:všimněte si, že zeměpisná šířka, která se má použít v zákoně kosinus, stejně jako Haversine, je geocentrická zeměpisná šířka, která se liší od geodetické zeměpisné šířky. U koule jsou tyto dvě stejné.
Který z nich je nejrychlejší?
V pořadí od nejrychlejšího po nejpomalejší jsou:zákon kosinů (5 trig. volání) -> haversine (zahrnuje sqrt) -> Vicenty (musí to vyřešit iterativně ve smyčce for)
Který z nich je nejpřesnější?
Vicenty.
Který z nich je nejlepší, když vezmeme v úvahu rychlost i přesnost?
Pokud je vaše problémová doména taková, že pro vzdálenosti, které se pokoušíte vypočítat, lze Zemi považovat za plochou, pak můžete vypracovat (nebudu uvádět podrobnosti) vzorec ve tvaru x =kx * rozdíl v zeměpisné délce , y =ky * rozdíl v zeměpisné šířce. Potom vzdálenost =sqrt(dxdx + dy dy). Pokud je vaše problémová doména taková, že ji lze vyřešit druhou mocninou vzdálenosti, pak nebudete muset brát sqrt a tento vzorec bude tak rychlý, jak jen můžete získat. Další výhodou je, že můžete vypočítat vektor vzdálenost - x je vzdálenost ve východním směru a y je vzdálenost ve směru na sever. V opačném případě experimentujte se 3 a vyberte, co ve vaší situaci funguje nejlépe.