データベースから重複するマーカー半径内の結果を取得
目的は、複数のマーカーの重複する半径内にあるデータ ポイントを取得することです。地理空間データベース。これを実現するには、円の方程式を使用して、点が指定された半径内にあるかどうかを判断する必要があります。
ユーザー B の位置を円の中心、ユーザー A の位置を円の周囲上の点と考えると、方程式は次のようになります。一貫性を保つためにキロメートルに変換された円の距離は次のように変換されます:
((x-x1)*111.12)^2 + ((y-y1)*111.12)^2 = 4 (=2^2)
ここで:
この方程式を 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
注: 精度を高めるには、(A.longitude - B.longitude)*111.12*cos(A.latitude) または (A.longitude - B.longitude)*111.12*cos(式の (A.longitude - B.longitude)*111.12 の代わりに B.latitude)。
以上が重複するマーカー半径内のデータ ポイントを地理空間データベースから取得するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。