首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用MySQL计算结果中的所有纬度和经度距离

使用MySQL计算结果中的所有纬度和经度距离
EN

Stack Overflow用户
提问于 2017-07-12 16:42:53
回答 1查看 263关注 0票数 0

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

代码语言:javascript
复制
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;

这是我的数据库Lat和Lon示例

通过id70和id71对结果进行计数

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-07-12 17:34:27

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

代码语言:javascript
复制
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上,输入所有内容都是令人恼火的。

不要对交叉连接应用任何on或where,因为这会将其转换为内连接。

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

有关优化的一些方法,请参阅:Cross Join without duplicate combinations

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45052664

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档