mysql查詢路徑不對,mysql中如何按距離排序篩選商家?
現(xiàn)在很多系統(tǒng)的一些功能都是基于LBS來提供服務(wù)的。什么是LBS呢,LBS是指基于地理位置的服務(wù),通過獲取用戶的地理位置從而給用戶提供更好的服務(wù)。比如我們使用外賣平臺時(shí)可以選擇離最近的商家,原理無非就是將你的位置信息和商家的位置信息進(jìn)行對比,找出距離最近的位置并排序返回結(jié)果。
MySQL支持空間數(shù)據(jù)類型MySQL 5以上都是支持空間數(shù)據(jù)類型,它主要支持以下空間類型:
點(diǎn):POINT
線:LINESTRING
面:POLYGON
集合:GEOMETRY,可存放點(diǎn)、線、面
還支持多個(gè)點(diǎn)、多個(gè)線、多個(gè)面的數(shù)據(jù)。
MySQL按距離查找并排序的實(shí)現(xiàn)思路1、字段類型選擇 POINT
對于用戶的位置信息我們選擇POINT類型存儲,將用戶經(jīng)度、緯度入庫保存,比如下圖中的pt字段。
2、通過 GLength 函數(shù)進(jìn)行區(qū)間搜索
select id, pt,city from locationPoint where 0.5 >= GLength(LineStringFromWKB(LineString(pt, point(113.4 ,34.46))))以上就是我的觀點(diǎn),對于這個(gè)問題大家是怎么看待的呢?歡迎在下方評論區(qū)交流 ~ 我是科技領(lǐng)域創(chuàng)作者,十年互聯(lián)網(wǎng)從業(yè)經(jīng)驗(yàn),歡迎關(guān)注我了解更多科技知識!