龙空技术网

Power BI如何通过经纬度来计算距离?

PowerBI星球 307

前言:

如今咱们对“经纬度对应距离的计算”大致比较珍视,大家都需要剖析一些“经纬度对应距离的计算”的相关资讯。那么小编也在网络上收集了一些有关“经纬度对应距离的计算””的相关资讯,希望同学们能喜欢,小伙伴们快快来学习一下吧!

经纬度是某个地点的坐标信息,通过经纬度数据就可以计算出这两点之间的直线距离,PowerBI能不能实现这种计算呢?

其实这是一个数学问题,也就是计算球面上两个点之间的距离,关于这个计算,有专门的公式,如果想在PowerBI中计算,只需要将它用DAX函数表达出来就可以了。

比如下面这个数据,是几个主要的城市经纬度坐标信息:

注: 每个城市都是个面积很大的区域,上述经纬度只是用其中的某个位置点来代替而已。

假如要计算上面的每个城市距离北京的直线距离,应该怎么写呢?这里直接列出这个度量值:

与北京直线距离/km = VAR longitude=[经度]VAR latitude=[纬度]VAR longitude_bj=CALCULATE(MAX('数据表'[经度]),FILTER('数据表','数据表'[城市]="北京"))VAR latitude_bj=CALCULATE(MAX('数据表'[纬度]),FILTER('数据表','数据表'[城市]="北京"))RETURN    2*6371*ASIN(SQRT(        POWER ( SIN ( (latitude - latitude_bj) * PI () / 360 ), 2 )+        COS ( latitude * PI () / 180 )*         COS ( latitude_bj * PI () / 180 )*        POWER ( SIN ( (longitude - longitude_bj) * PI () / 360 ), 2 )    ))

其中RETURN后面的就是计算公式(6371是地球的半径),主要是利用了DAX中的数学和三角函数的组合运算,对数学感兴趣的同学可以研究这个公式的原理,不感兴趣的直接套用上面的公式就行了。

结果如下:

最后,需要说明的是,上述公式只是近似的计算,一方面受经纬度本身的精度所限,另一方面地球并不是个完美球体,从赤道到两极地球的半径是有差异的,因此计算结果与实际会有些许误差。

更多干货→ 「PowerBI星球」内容合集(2022版)

采悟

标签: #经纬度对应距离的计算