查詢資料庫中半徑重疊範圍內的結果
問題:
問題:在具有地理特徵的資料庫中數據,您想要選擇與指定半徑的多個圓形標記部分重疊的結果。現有的 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*cos(A.latitude), 2)) <= 4</code>
要得到精確結果,可以使用以下SQL 語句:
解釋:計算使用圓方程式的距離:
使用修改後的公式計算點到半徑中心之間的距離POW((A.緯度-B.緯度)*111.12, 2) POW ((A.經度- B.經度)*111.12*cos(A.緯度), 2).比較到半徑的距離: 如果計算的距離小於或等於半徑的平方,則該點落在半徑。 透過使用此查詢,您可以準確識別與多個圓形標記重疊的結果,即使圓圈相互接觸也是如此。以上是如何查詢資料庫以取得與指定半徑重疊的多個圓形標記的結果?的詳細內容。更多資訊請關注PHP中文網其他相關文章!