sql >> データベース >  >> RDS >> Mysql

緯度と経度の2点で距離を計算します

    2点間の距離を計算する式を使用できます。例:

    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)); 
    }
    

    次のようなこともできます:

    $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. SequelizeおよびMySQLでのPassportの使用

    2. MySQLコマンドプロンプトを介してWordPress管理者パスワードをリセットする方法

    3. デフォルトとしてのMySQLCURRENT_TIMESTAMP

    4. 結合されたMySQLテーブルの最新の日付のみを表示する