mysql - 使用MySQL计算结果中所有经纬度距离

标签 mysql geolocation distance latitude-longitude

这是我当前计算两个纬度和经度之间的查询,但是我如何使用这个或类似的公式来计算结果中的所有纬度和经度?

SELECT ROUND(6353 * 2 * ASIN(SQRT( POWER(SIN((a.GPSLat -
      abs(b.GPSLat)) * pi()/180 / 2),2) + COS(a.GPSLat * pi()/180 ) * COS(
      abs(b.GPSLat) *  pi()/180) * POWER(SIN((a.GPSLon - b.GPSLon) *  
      pi()/180 / 2), 2) )), 2) as "Total(KM)"
from table1 a
      inner join table1 b on a.ID = 70 and b.ID = 71;

这是我的数据库纬度和经度示例

This is my database Lat and Lon example

按 id70 和 id71 统计结果

The result count by id70 and id71

最佳答案

不是 100% 清楚你的意思,但你是说你想计算所有坐标对的距离吗?如果是这样,您正在尝试进行交叉连接:

SELECT a.id, b.id , ...(your formula) from 
  (select id from Table1 
      [some join with filtered table]
       where [some predicate] ) a 
  CROSS JOIN 
  ( ... similar query to above to filter your right hand set... )b 

抱歉,现在在 iPad 上输入所有内容令人恼火。

不要在交叉联接上或何处应用任何内容,因为这会将其变成内部联接。

这将为您提供所有对之间的距离。

查看一些优化方法: Cross Join without duplicate combinations

关于mysql - 使用MySQL计算结果中所有经纬度距离,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45052664/

相关文章:

php - Swift Poststring 没有得到我的值

java - 我如何计算Java中两个gps点之间的距离?

python - 在 Python 中编辑距离

php - 检查重复行并更新状态,保持第一个数据不变

javascript - 将 XML 集成到 iOS Web App 的 HTML 页面中

python - Flask + SqlAlchemy 修改表

python - 查找 GeoTiff 图像中每个像素的纬度/经度坐标

c++ - 正确实现继承

mysql - 使用 mysql 查询的 IN 数组和 LIKE 条件

php - 在我的查询中摆脱联合...两个相似的选择具有一个不同的条件