mysql兩點間的距離簡便演算法

來源:互聯網
上載者:User

標籤:

MySQL的空間擴充(MySQL Spatial Extensions),它允許在MySQL中直接處理、儲存和分析地理位置相關的資訊,看起來這是使用MySQL處理地理位置資訊的“官方解決方案”。 但恰恰很可惜的是:它卻不支援某些最基本的地理位置操作,比如查詢在半徑範圍內的所有資料。它甚至連兩座標點之間的距離計算方法都沒有(MySQL Spatial的distance方法在5.*版本中不支援)

官方指南的做法是這樣的:

GLength(LineStringFromWKB(LineString(point1, point2)))

這條語句的處理邏輯是先通過兩個點產生一個LineString的類型的資料,然後調用GLength得到這個LineString的實際長度。

這麼做雖然有些複雜,貌似也解決了距離計算的問題,但讀者需要注意的是:這種方法計算的是歐式空間的距離,簡單來說,它給出的結果是兩個點在三維空間中的直線距離,不是飛機在地球上飛的那條軌跡,而是筆直穿過地球的那條直線。

所以如果你的地理位置資訊是用經緯度進行儲存的,你就無法簡單的直接使用這種方式進行距離計算。


mysql兩點間的距離簡便演算法

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.