分享

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

 PowerBI星球 2022-08-28 发布于河南

经纬度是某个地点的坐标信息,通过经纬度数据就可以计算出这两点之间的直线距离,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商业数据分析
帮你从0到1,轻松上手PowerBI

    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多