Distance是2019.3新增的空间函数,相比起MakeLine,MakePoint略显低调了,官网也是一笔带过,并没有操作的实例。
官网地址:https://help.tableau.com/current/pro/desktop/zh-cn/functions_functions_spatial.htm
以前写过一篇文章《在Tableau地图中根据距离筛选地址》里面介绍了利用参数和球面余弦定律计算距离的文章,个人感觉还是很麻烦的,现在如果利用Distance函数就显得简单多了。
举个例子,我们还是用上一篇文章的美国城市的数据
随便挑几个城市做成如下的数据结构
新建一个distance计算字段
distance=DISTANCE(MAKEPOINT([Start Latitude],[Start Longitude]),MAKEPOINT([End Latitude],[End Longitude]),'km')
需要配合MakePoint函数,'km'代表公里,如需要其他距离单位,可以参考官网介绍
只需要简单的拖拽,就可以计算两个城市间的距离了,可以说非常的方便
在可视化方面,Distance函数确实是没有MakeLine那样炫酷,不过我们也可以尝试模拟一下《在Tableau地图中根据距离筛选地址》里的效果
-
右键Latitude字段,选择创建参数,自动创建一个Latitude 参数
-
右键Longitude字段,选择创建参数,自动创建一个Longitude 参数
创建计算字段
- distance=DISTANCE(MAKEPOINT([Latitude 参数],[Longitude 参数]),MAKEPOINT([Latitude],[Longitude]),'km')
配合参数动作,计算选择的点与其他点之间的距离
- color=IIF([distance]<=500,TRUE,NULL)
判断距离的大小,也可以做一个参数来自由控制
-
将Latitude拖到行功能区,右键选择维度,将Longitude拖到列功能区,右键选择维度(一定要选择维度)
-
把color拖到标记栏的“颜色”标签
-
选择“编辑参数动作”,按照下图制作lat和long两个参数动作
如果操作正确,点击任意一个点,就会出现如下的效果,模拟成功。
我们也可以用Toan Hoang大神的方法,右键distance建立一个数据桶,拖到颜色上,效果也是很炫的。
Toan Hoang网站:https://tableaumagic.com/tableau-2019-3-distance-function/
另外要说的是,在实验过程中,有时候明明是选了某个点(测试了一下,参数动作确实取到了坐标点),但就是算不出距离,所以不知道是这个函数不稳定,还是有其他原因。
此篇文章已发布到我的公众号:saodisir,有兴趣也可关注一下
网友评论