[英]How can I get all points within a given range based on its latitude and longitude?
場景:我有一個包含三個表,用戶,位置,庫存的數據庫;
在我擁有的用戶中: id, name, email
在我所擁有的位置: id, place, lati, logi
我有股票: id, user_id, product, total_count, location_id
我很新,我設法加入所有表格:
$qry = "
SELECT COUNT(id)
FROM stock
LEFT
JOIN users
ON stock.user_id= users.id
LEFT
JOIN locations
ON stock.location_id= locations.id ";
但我希望能夠做的是使用lati和logi按距離對其進行排序。 因此,例如,我希望25英里內的所有內容,最接近最遠的排序。
我怎樣才能解決這個問題呢?
我做了一些谷歌搜索,但我發現的一切都告訴我如何獲得兩點之間的距離,但我希望能夠使用一組點,並獲得X英里內的所有內容?
不確定這一切是否有意義?
我在我的應用程序中提出了以下簡化公式來計算:
pow(CentralLati - LatitudeofCircle, 2) + pow(CentralLongi - LongitudeofCircle, 2) <= 4
哪里,
CentralLati,CentralLongi => A點的坐標
LatitudeofCircle,LongitudeofCircle =>點A周圍25kms點的坐標。
您可以調整上面的公式以匹配您的數據庫命名約定。
希望我能正確理解你的要求。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.