データベースからマーカー半径内の結果を取得する方法: 正確な距離を計算するための SQL アプローチ

Mary-Kate Olsen
リリース: 2024-11-01 05:40:02
オリジナル
351 人が閲覧しました

How to Retrieve Results Within a Marker Radius from a Database: A SQL Approach to Accurate Distance Calculation

データベースからマーカー半径内の結果を取得する方法: 正確な距離の計算

指定されたマーカー半径内にある結果を正確に判断するには、データベースを使用する場合は、円の方程式を考慮することが重要です:

(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 サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート