详解为多个地图创建自定义缩放控制的具体步骤

描述

最近,我制作了一个 Viz 作品,其中使用到了为多个地图创建自定义缩放控制的操作方法。

➤复制下方链接至浏览器,即可查看此 Viz :

https://public.tableau.com/profile/klaus.schulte#!/vizhome/CentersoftheWorldsCapitals/Dashboard1?publish=yes

通过左侧的“zoom in / out”参数,您可以改变边界框的大小,并且由于 Tableau 会对其地图进行自动调整,因此看上去您可以放大和缩小地图。如果我固定地图,参数的更改只会改变视图中框的大小。

今天,我将在这篇文章中分享自己构建这个可视化作品的具体步骤。

1

找到一些您想要绘制的数据

我希望可以查看全球各国首都的中心,主要是因为在 Tableau 中识别地理中心非常容易:

在 Tableau 中导入国家和城市列表

创建包含生成的纬度和经度的视图

将工作表作为交叉表导出到 Excel

2

准备数据

首先我们需要用 5 个点来绘制一个边界框。因此,我对数据进行了 5 倍处理,并用点顺序识别这 5 个数据。这就是您需要的所有数据准备(甚至可以在 Tableau 中完成此步骤)。

数据

3

构造边界框

然后我就可以通过 Δlon(宽度),Δlat(高度)和一些基本数学知识在城市中心的周围构建边界框:

但这之后变得棘手起来。因为 Viz 的早期版本看起来像这样:

每个框里的尺寸都不同。那么这里发生了什么?

4

一些空间基础知识

我并不是空间专家,因此我花了一些时间才弄明白。如 3 中所述的,我想用中心点的纬度 /  经度加上或减去纬度 / 经度。但不幸的是,以纬度 / 经度表示的距离取决于您在地球上的位置(因此,框的大小不同)。

来源:维基百科

这是因为两个经度之间的距离并确定。虽然两个纬度之间的距离是一个常数(111.12 km),但经度之间的距离在赤道处具有最大值(这里它也是 111.12 km)而在极点处为 0。

两个经度之间的距离可以这样计算:

Distance = 1 nautical mile * 60 *cos(Latitude)

Distance at the equator = 1,852 m * 60 *cos(0) = 111,120 m (or 111.12 km) with cos(0)=1

在纬度为 45 度时的经度距离为:

1,852 m * 60 * cos(45) = 78,573.7 m 

这意味着:以经度表示的距离在全球范围内具有不同的长度,具体取决于纬度。为了消除这种影响,我只需要在 Tableau 中用纬度余弦的计算对 Δlon(宽度) 进行标准化,其公式如下:

到现在为止一切顺利。

5

边界框的大小设置

在早期的版本中,我通过创建两个参数代表高度和宽度(以纬度和经度表示)并绘制框,但后来我觉得只用一个参数来表示框的面积会很酷(平方公里)。因此,我必须计算 Tableau 中的高度(x)和宽度(y)。

为了完成这个想法,它需要以下两个方程式:

(1) s = x * y

(2) f = y/x with f=format of the box (e. g.16:9, 4:3 or 1:1)

然后我可以根据我的参数 Square Kilometers(平方公里),format(格式)和 lat / lon per 100m(每 100 米纬度/经度)计算高度和宽度:

代入到这两个计算字段中:

6

将所有东西放在一起

创建视图之前的最后一步是计算数据每个点的经度和纬度。

纬度:

经度:

7

创建 Viz

为了创建这个 Viz 我使用了之前文章中所描述的相同步骤。

对于第二个轴,我在标记卡中选择了圆圈,将我的标签放置在下面的公式中。

再加一点格式处理就全部完成了!

希望你喜欢这篇文章,也希望你能找到这个方法的用武之地!

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分