確定半徑內的重疊標記
為了識別落在重疊標記半徑內的人,我們利用幾何原理並將距離轉換為公里以保持一致性.
以(x1, y1) 為圓心、半徑為r 的圓內的點(x, y) 的方程式為:
(x - x1)^2 + (y - y1)^2 <= r^2
因為使用以下公式將度數轉換為公里1 度= 111.12 公里,方程式變為:
((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 表示,UserB 的ID 為8 的記錄由表B 表示。 POW() 函數對數字求冪,這裡用來平方座標差。
以上是我們如何使用 SQL 來識別重疊的標記半徑?的詳細內容。更多資訊請關注PHP中文網其他相關文章!