データベースからマーカー半径内の結果を取得する方法: 正確な距離の計算
指定されたマーカー半径内にある結果を正確に判断するには、データベースを使用する場合は、円の方程式を考慮することが重要です:
(x-x1)^2 + (y - y1)^2 = r^2
ここで、(x,y) は円内の点を表し、(x1, y1) は円の中心、r はその半径です.
この質問のコンテキストでは、円の中心はユーザーのマーカーの位置 (緯度と経度) であり、潜在的な一致または結果は円内の点で表されます。半径は 1 キロメートルに設定されています。
単位の違い (緯度と経度は度、半径はキロメートル) に対処するために、方程式は次のように変更されます。
((x-x1)*111.12)^2 + ((y-y1)*111.12)^2 = 4 (where 2 is the radius in kilometers and 111.12 represents the conversion factor from degrees to kilometers)
この方程式に基づいて、マーカー円と交差する結果を取得する SQL ステートメントは次のように記述できます。
SELECT A.user_id, A.radius_id, A.latitude, A.logitude FROM UserA AS A, (SELECT user_id, latitude, longitude FROM UserB WHERE user_id = 8) AS B WHERE (POW((A.latitude-B.latitude)*111.12, 2) + POW((A.longitude - B.longitude)*111.12, 2)) <= 4
以上がデータベースからマーカー半径内の結果を取得する方法: 正確な距離を計算するための SQL アプローチの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。