Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Obliczanie odległości między kodami pocztowymi w PHP

To jest odpowiedź Mike'a z kilkoma adnotacjami do magicznych liczb . Wydawało mi się, że działa dobrze w przypadku niektórych danych testowych :

function calc_distance($point1, $point2)
{
    $radius      = 3958;      // Earth's radius (miles)
    $deg_per_rad = 57.29578;  // Number of degrees/radian (for conversion)

    $distance = ($radius * pi() * sqrt(
                ($point1['lat'] - $point2['lat'])
                * ($point1['lat'] - $point2['lat'])
                + cos($point1['lat'] / $deg_per_rad)  // Convert these to
                * cos($point2['lat'] / $deg_per_rad)  // radians for cos()
                * ($point1['long'] - $point2['long'])
                * ($point1['long'] - $point2['long'])
        ) / 180);

    return $distance;  // Returned using the units used for $radius.
}


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Przegląd nowych funkcji okna analitycznego w MySQL 8.0

  2. Używanie aliasu w obliczeniach SQL

  3. Jak zrobić wstawkę wsadową w MySQL

  4. Jak naprawić serializowany ciąg, który został uszkodzony przez nieprawidłową długość licznika bajtów?

  5. Wstaw zapytanie, aby wstawić wiersze w MySQL