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ですが、クエリは依然として必要なものです。