Używam tego wzoru obliczyć odległość między wpisami w moim (My) bazy danych SQL, które mają szerokość i długość pola w formacie dziesiętnym współrzędnych:zapytań SQL do obliczenia zbliżeniowej
6371 * ACOS(SIN(RADIANS(%lat1%)) * SIN(RADIANS(%lat2%)) + COS(RADIANS(%lat1%)) * COS(RADIANS(%lat2%)) * COS(RADIANS(%lon2%) - RADIANS(%lon1%)))
Podstawiając% lat1% i % lat2% odpowiednio może być użyte w klauzuli WHERE do znalezienia wpisów w określonym promieniu innego wpisu, użycie go w klauzuli ORDER BY wraz z LIMIT znajdzie najbliższe x wpisy itp.
Piszę to głównie jako notatkę dla mnie, ale ulepszenia są zawsze mile widziane. :)
Uwaga: jak wspomniano poniżej, Valerion oblicza to w kilometrach. Zastąpić 6371 przez appropriate alternative number, aby korzystać z liczników, mil itp.
Znalazłem go jako "Formułę dystansu Wielkiego Koła", ale patrząc na to, tak, być może. – deceze