簡體   English   中英

如何根據緯度和經度獲得給定范圍內的所有點?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM