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

Oblicz odległość, biorąc pod uwagę 2 punkty, szerokość i długość geograficzną

Możesz użyć wzoru, który oblicza odległości między dwoma punktami. Na przykład:

function get_distance($latitude1, $longitude1, $latitude2, $longitude2, $unit = 'Mi') { 
    $theta = $longitude1 - $longitude2; 
    $distance = (sin(deg2rad($latitude1)) * sin(deg2rad($latitude2))) + 
                (cos(deg2rad($latitude1)) * cos(deg2rad($latitude2)) * 
                cos(deg2rad($theta))); 
    $distance = acos($distance); 
    $distance = rad2deg($distance); 
    $distance = $distance * 60 * 1.1515; 
    switch($unit) { 
        case 'Mi': 
            break; 
        case 'Km' : 
            $distance = $distance * 1.609344; 
    } 
    return (round($distance,2)); 
}

Możesz też zrobić coś takiego:

$query = "SELECT *,(((acos(sin((".$latitude."*pi()/180)) * 
            sin((`Latitude`*pi()/180))+cos((".$latitude."*pi()/180)) * 
            cos((`Latitude`*pi()/180)) * cos(((".$longitude."- `Longitude`)* 
            pi()/180))))*180/pi())*60*1.1515
        ) as distance 
        FROM `MyTable` 
        HAVING distance >= ".$distance.";


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. ROW_NUMBER w SQL — wybierz najlepszy przykład w SQL i SQL Server

  2. Zapytania MySQL IN są strasznie wolne z podzapytaniem, ale szybkie z określonymi wartościami

  3. Zwróć dzień, miesiąc i rok w MySQL

  4. INSERT i SELECT w jednym zapytaniu MySQL

  5. Pomoc MySQL:Jak znaleźć wszystkie zamówienia od klienta do ceny <=20 i statusu='nieopłacone'