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

最も近い経度/緯度に一致

    エレガント(より正確 )これを行う方法(しかし、速く燃え上がることはありません

    // Closest within radius of 25 Miles
    // 37, -122 are your current coordinates
    // To search by kilometers instead of miles, replace 3959 with 6371
    SELECT feature_name, 
     ( 3959 * acos( cos( radians(37) ) * cos( radians( lat ) ) 
      * cos( radians( long ) - radians(-122) ) + sin( radians(37) ) 
      * sin( radians( lat ) ) ) ) AS distance 
    FROM geo_features HAVING distance < 25 
    ORDER BY distance LIMIT 1;
    

    編集

    これはHaversine式 です。 地理座標からの円形距離を計算するため。 さまざまなプラットフォーム でのこの式の実装を次に示します。

    R = earth’s radius (mean radius = 6,371km)
    Δlat = lat2− lat1
    Δlong = long2− long1
    a = sin²(Δlat/2) + cos(lat1).cos(lat2).sin²(Δlong/2)
    c = 2.atan2(√a, √(1−a))
    d = R.c
    // Note that angles need to be in radians to pass to Trigonometric functions
    



    1. OracleからPostgreSQLまたはYugabyteDBにデータを転送するSQLcl🅾🐘🚀

    2. MySQL2Rubygemは10.6をインストールしません

    3. テーブルの構造を変更せずに、テーブルの最後のn行を選択する最も効率的な方法は何ですか?

    4. Oracle用のSQL挿入を生成しています