SQL を使用して重複するマーカー半径を特定するにはどうすればよいですか?

Mary-Kate Olsen
リリース: 2024-10-29 03:55:29
オリジナル
771 人が閲覧しました

How Can We Identify Overlapping Marker Radiuses Using SQL?

半径内で重複するマーカーの決定

重複するマーカー半径内にある人々を識別するために、幾何学的原理を利用し、一貫性を保つために距離をキロメートルに変換します。 .

中心 (x1, y1) と半径 r の円内の点 (x, y) の方程式は次のとおりです。

(x - x1)^2 + (y - y1)^2 <= r^2
ログイン後にコピー

度は次の公式を使用してキロメートルに変換されるため、 1 度 = 111.12 km、方程式は次のようになります。

((x - x1) * 111.12)^2 + ((y - y1) * 111.12)^2 = 4 (for radius = 2km)
ログイン後にコピー

この方程式を使用すると、マーカー半径と重なる結果を取得する SQL ステートメントは次のように定式化できます。

<code class="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</code>
ログイン後にコピー

このクエリでは、UserA のレコードはテーブル A で表され、ID 8 の UserB のレコードはテーブル B で表されます。 POW() 関数は数値の累乗を行い、ここでは座標の差を 2 乗するために使用されます。

以上がSQL を使用して重複するマーカー半径を特定するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!