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

MySQLは範囲内の座標を選択します

    Haversine式 と呼ばれるものを使用できます。 。

    $sql = "SELECT *, ( 3959 * acos( cos( radians(" . $lat . ") ) * cos( radians( lat ) ) * cos( radians( lng ) - radians(" . $lng . ") ) + sin( radians(" . $lat . ") ) * sin( radians( lat ) ) ) ) AS distance FROM your_table HAVING distance < 5";
    

    ここで$lat および$lng はポイントの座標であり、lat/lngはテーブルの列です。上記は、5nmの範囲内の場所を示しています。 3959を置き換えます 6371による キロメートルに変更します。

    このリンクは役立つ可能性があります: https://developers.google.com/maps/articles/phpsqlsearch_v3

    編集:あなたがJavaについて言及しているのを見ませんでした。この例はPHPですが、クエリは依然として必要なものです。



    1. 階層SQLの質問

    2. MySQLで10進数と16進数を変換する2つの方法

    3. ORACLE SQL:2つの数値の間のすべての整数を取得します

    4. SQL Server(T-SQL)で数値を通貨としてフォーマットする方法