在MySQL中計算大圓距離,也稱為半正矢距離,可以透過以下步驟實現:
首先,從相關資料來源(例如PHP腳本)擷取經度和緯度座標。
半正弦公式用於計算球體上兩點之間的大圓距離。在 MySQL 中,以下 SQL 語句實現公式:
( 3959 * acos( cos( radians(origin_lat) ) * cos( radians(lat) ) * cos( radians(lon) - radians(origin_lon) ) + sin( radians(origin_lat) ) * sin( radians(lat) ) ) )
要找指定距離範圍內的位置,請使用下列SQL 語句:
SELECT id, ( 3959 * acos( cos( radians(origin_lat) ) * cos( radians(lat) ) * cos( radians(lon) - radians(origin_lon) ) + sin( radians(origin_lat) ) * sin( radians(lat) ) ) ) AS distance FROM locations HAVING distance < distance_range ORDER BY distance LIMIT num_results;
這是一個範例SQL 查詢,可用於尋找距座標(37, -122) 25 英哩內最近的20 個位置:
SELECT id, ( 3959 * acos( cos( radians(37) ) * cos( radians(lat) ) * cos( radians(lon) - radians(-122) ) + sin( radians(37) ) * sin( radians(lat) ) ) ) AS distance FROM locations HAVING distance < 25 ORDER BY distance LIMIT 0, 20;
透過依照這些步驟,您可以使用半正弦公式完全在MySQL 中執行大圓距離計算。
以上是如何在MySQL中使用半正矢公式計算大圓距離?的詳細內容。更多資訊請關注PHP中文網其他相關文章!