美文网首页Tableau数据可视化
在Tableau地图中根据距离筛选地址与思考

在Tableau地图中根据距离筛选地址与思考

作者: 老王叔叔 | 来源:发表于2020-02-23 16:56 被阅读0次

    最近看到一篇文章
    https://www.jianshu.com/p/80dc74f4952a?utm_source=desktop&utm_medium=timeline

    首先下载Tableau格式数据
    链接:https://pan.baidu.com/s/1ahPrvkcJuJxOLcyDm65hcw
    提取码:i792

    下面是具体过程:

    1.首先引入数据,在【CityStateAbbr】字段上右键创建参数,命名为【Relative City】,作用是确定计算距离的中心点

    2.定义两个参数,都是固定数值

    【Earth_radius】是地球半径,整数,3960
    【k】浮点,pi/180=0.017453293

    3.定义两计算字段,用来确定中心点的经纬度
    【Latitude 0】

     WINDOW_AVG(
     ATTR(if [CityStateAbbr]=[Relative City] then [Latitude] end))
    

    【Longitude 0】

    WINDOW_AVG(
    ATTR(if [CityStateAbbr]=[Relative City] then [Longitude] end))
    

    意思就是只有【Relative City】被选择,这两个字段才会有经纬度的数值

    4.创建距离字段【Distance】,利用的是spherical law of cosines(球面余弦定律太复杂,搞不懂)

    //spherical law of cosines

    [Earth_radius] * acos (
    
    cos( [k]*avg([Latitude]) ) * cos ( [k]*avg([Longitude]) ) * cos ( [k]* 
    [Latitude 0] ) * cos ( [k]*[Longitude 0] )
    
    + cos( [k]*avg([Latitude]) ) * sin ( [k]*avg([Longitude]) ) * cos ( 
    [k]*[Latitude 0] ) * sin ( [k]*[Longitude 0] )
    
    + sin( [k]*avg([Latitude]) ) * sin ( [k]*[Latitude 0] )
    
    )
    

    5.下面可以创建视图了

    将【Longitude】放到列功能区,【Latitude】放到行功能区,【Distance】放到筛选器,【Relative City】右键选择“显示参数控件”作为筛选器使用,另外可以把【Distance】放到标记的颜色选项卡,以区别距离,也可以将【Distance】显示为筛选器,自由调整筛选距离。



    其实现在版本的tableau已经可以根据经纬度

    自动计算距离了

    在创建计算字段中选择【空间函数】

    DISTANCE()

    MAKEPOINT()

    创建计算字段【select-city】

    [Relative City]=[CityStateAbbr]
    

    创建计算字段【selected Lat】

    {MIN(if [select-city] THEN [Latitude] END)}
    

    创建计算字段【selected Long】

    {MIN(if [select-city] THEN [Longitude] END)}
    

    创建计算字段【开始点】

    MAKEPOINT([selected Lat],[selected Long])
    

    创建计算字段【结束点】

    MAKEPOINT([Latitude],[Longitude])
    

    创建参数【距离 单位】


    创建计算字段【距离】

    DISTANCE([开始点],[结束点] ,[距离 单位])
    

    相关文章

      网友评论

        本文标题:在Tableau地图中根据距离筛选地址与思考

        本文链接:https://www.haomeiwen.com/subject/dwwjqhtx.html