MySQL 大圓距離(半正矢公式)
本文解決了僅使用MySQL 計算兩個地理座標之間的大圓距離的挑戰。傳統的PHP實現,涉及多個SQL查詢和複雜的計算,可能很麻煩。
解
為了將PHP程式碼轉換為純MySQL,我們利用Haversine公式,計算球體上兩點之間距離的數學方程式。 MySQL ACOS() 和 RADIANS() 函數支援此公式。
以下是對應的MySQL 查詢:
SELECT id, ( 3959 * ACOS( COS(RADIANS(37)) * COS(RADIANS(lat)) * COS(RADIANS(lon) - RADIANS(-122)) + SIN(RADIANS(37)) * SIN(RADIANS(lat)) ) ) AS distance FROM markers HAVING distance < 25 ORDER BY distance LIMIT 0, 20;
說明
透過使用這種基於 MySQL 的方法,您可以有效地計算座標之間的大圓距離,而無需外部 PHP 計算或額外的 SQL 查詢。
以上是如何僅使用 MySQL 計算大圓距離?的詳細內容。更多資訊請關注PHP中文網其他相關文章!