Laravelを使用したPHPでの座標距離のクエリ


まず、座標間の距離を計算するために、Haversine formula(ハバーサインの公式)を使用します。この公式は、球体上の2つの座標間の最短距離を求めるために使用されます。

次に、Laravelのクエリビルダを使用して、データベースから座標間の距離をクエリします。以下に、シンプルな例を示します。

$latitude = 35.6895; // 検索する緯度
$longitude = 139.6917; // 検索する経度
$radius = 10; // 検索する半径(キロメートル)
$results = DB::table('places')
    ->select('name', DB::raw("(6371 * acos(cos(radians($latitude)) * cos(radians(latitude)) * cos(radians(longitude) - radians($longitude)) + sin(radians($latitude)) * sin(radians(latitude)))) AS distance"))
    ->having('distance', '<=', $radius)
    ->orderBy('distance')
    ->get();
foreach ($results as $result) {
    echo $result->name . ' - 距離: ' . $result->distance . ' km' . '<br>';
}

上記の例では、"places"というテーブルから、指定した緯度と経度から半径10キロメートル以内の場所を検索しています。結果は距離の昇順で表示されます。

このようにして、Laravelを使用してPHPで座標間の距離をクエリすることができます。必要に応じて、データベーステーブルの名前やカラム名を適切に変更してください。

以上が、シンプルで簡単な方法とコード例を使用したLaravelを使ったPHPでの座標距離のクエリの方法です。これを参考にして、あなた自身のプロジェクトに応用してみてください。