まず、座標間の距離を計算するために、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での座標距離のクエリの方法です。これを参考にして、あなた自身のプロジェクトに応用してみてください。