Tableau Desktop:如何计算经纬度点路径的总距离
在Tableau中计算地理路径总距离的简洁方案
你的思路是完全可行的,还能通过Tableau的表计算和LOD表达式进一步优化,实现更简洁高效的计算:
基础实现步骤(验证你的思路)
- 确保数据有路径顺序字段:如果没有天然的序号/时间顺序,创建计算字段
路径序号,公式为INDEX(),右键该字段→「编辑表计算」,设置计算依据为「数据源顺序」(或自定义排序),并按「路线」分组。 - 创建计算字段
下一个地理点,公式为NEXT([地理点]),编辑表计算,设置计算范围为「每个[路线]」,计算依据选路径序号。 - 创建计算字段
两点距离,公式为DISTANCE([地理点], [下一个地理点])(默认单位千米,要英里可加参数DISTANCE([地理点], [下一个地理点], 'mi'))。 - 计算总距离:直接用
SUM([两点距离]),可将该度量添加到「路线」详情的视图(比如文本标签、工具提示)中。
更优雅的简化方案(一步到位)
用LOD表达式直接计算单条路线的总距离,省去中间字段:
创建计算字段路线总距离,公式为:
{FIXED [路线]: SUM(DISTANCE([地理点], NEXT([地理点])))}
这个表达式会自动按「路线」分组,计算每组内相邻点的距离并求和,直接得到每条路线的总长度。
关键注意事项
- 路径顺序是核心:必须保证地理点的顺序和实际路径一致,否则距离计算完全错误。如果用
INDEX()生成序号,一定要确认排序逻辑符合实际路径。 NEXT()的表计算范围:必须设置为「每个[路线]」,避免跨路线取点。- 最后一个点的
NEXT()返回null,DISTANCE和SUM会自动忽略null值,不影响总距离结果。
内容的提问来源于stack exchange,提问作者FairyLiquid
相关产品推荐
相关产品推荐

