tft每日頭條

 > 科技

 > mysql根據經緯度計算距離

mysql根據經緯度計算距離

科技 更新时间:2025-01-29 13:56:51

mysql根據經緯度計算距離(如何根據兩點經緯度計算距離)1

我們經常在一些應用中看到類似這樣的功能,即根據用戶定位顯示距離用戶由近及遠的商品或商家。如下圖所示:

mysql根據經緯度計算距離(如何根據兩點經緯度計算距離)2

在上圖中,我們可以看到平台顯示了一些商家,同時标注了它們離我所在位置的距離。這樣的設計對于用戶或者商家來說體驗都是比較好的,一方面有助于用戶篩選商家,另一方面也幫助了商家進行精确營銷。

那這是如何做到的呢?

在一開始入手這個功能的時候,我曾考慮先從MySQL數據庫裡拿出數據,然後在頁面渲染的時候,再利用第三方地圖庫(如騰訊地圖,高德地圖等),計算出位置,渲染到頁面。如果你單論是否可以實現這樣的功能,那這樣的方案是沒有問題的;但你若問這樣的方案實現起來是否麻煩,那我就不能亂下定論了,因為畢竟距離的計算在前端處理。

那可不可以直接在MySQL數據庫裡計算距離呢?

最近在重新研究此功能的時候,我發現是可以直接在MySQL數據庫裡直接計算距離的。

首先,獲取計算公式,如下:

mysql根據經緯度計算距離(如何根據兩點經緯度計算距離)3

然後,根據公式,在MySQL數據庫裡創建一個函數DISTANCE,如下:

mysql根據經緯度計算距離(如何根據兩點經緯度計算距離)4

第三,調用DISTANCE函數,并傳入兩點的經緯度,如下:

mysql根據經緯度計算距離(如何根據兩點經緯度計算距離)5

以上SQL語句隻是計算兩點之間的距離,如果你想在計算距離的同時,再作篩選和排序,你可以如下操作:

mysql根據經緯度計算距離(如何根據兩點經緯度計算距離)6

這樣,你也可以實現根據用戶定位由遠及近的顯示商品或商家。

對比,在前端計算距離和在MySQL數據庫計算距離,發現在MySQL數據庫上操作有很大優勢,它不僅可以輕松的計算距離,而且還可以輕松的按照距離進行排序、篩選等。

根據個人經驗,推薦大家使用MySQL數據庫計算兩點距離。


本文由“編碼之道”原創,轉載請注明出處。

,

更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!

查看全部

相关科技资讯推荐

热门科技资讯推荐

网友关注

Copyright 2023-2025 - www.tftnews.com All Rights Reserved