0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

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

Tableau社区 来源:未知 作者:李倩 2018-10-11 15:49 次阅读

最近,我制作了一个 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 我使用了之前文章中所描述的相同步骤。

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

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

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

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

    关注

    8

    文章

    6509

    浏览量

    87555
  • 可视化
    +关注

    关注

    1

    文章

    1013

    浏览量

    20548

原文标题:只需 7 步,带你完成多个地图的自定义缩放控制!

文章出处:【微信号:TableauChina,微信公众号:Tableau社区】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    LabVIEW自定义控件

    在前面板中使 用这些 控件。在有些时候,我们需要根据具体的需要定制自己的控件。LabVIEW 中提供了自定义类型的这种方式,可以基于控件原有的属性,通过改变控件的外形定制符合需要 的用户 控件。我们可以
    发表于 01-07 10:57

    labview类创建自定义探针

    通过自定义探针来访问需要访问的LabVIEW类成员vi信息,废话不说直接写原理过程:1. 创建一个demo.Lvproj2. Write data成员vi3.上图为main.vi4. 右键探针
    发表于 03-22 10:32

    动态创建右键自定义快捷菜单

    程序运行菜单一样,当针对某对象的操作项比较多的时候,比较适合用右键快捷菜单来代替多个控件,用来精简界面。(2)比较符合人右键查看功能的操作习惯。接下来就来讲解右键快捷菜单如何自定义。 2 第一步:创建
    发表于 09-15 00:06

    如何自定义Component 属性

    ,而是利用现有的API(例如,各种get,set方法)。===如果您想自定义组件,那么需要新创建一个类,并继承Component类,实现其基本的构造方法。然后,在其类内部实现具体的各种自定义
    发表于 12-21 09:31

    如何创建自定义状态回调函数呢

    状态回调函数依赖于SDK的framework框架,且已经用户预留了自定义回调函数的框架,audio,bt,fs,net的状态回调框架都是完全公开的,参照编写即可。如何创建自定义状态回
    发表于 12-29 06:06

    用CH573测试Ble功能,创建多个自定义的UUID服务要怎么操作?

    你好,我在用CH573测试Ble功能, 如果我要创建多个自定义的UUID服务,要怎么操作?类似下面截图
    发表于 08-29 07:20

    1602自定义字符

    1602液晶能够显示自定义字符,能够根据读者的具体情况显示自定义字符。
    发表于 01-20 15:43 1次下载

    在NI Multisim中创建自定义元器件

    在NI Multisim中创建自定义元器件,NI Multisim虽然强大但芯片太少所以总结这方法
    发表于 07-20 17:21 0次下载

    利用SDSoC创建自定义硬件

    SDSoC是开发Zynq-7000 SoC应用程序的理想工具,当您可以在自己的定制板平台上实现设计时,SDSoC变得更加强大。 有了这个视频,看看创建自己的自定义硬件是多么容易..
    的头像 发表于 11-26 06:25 2332次阅读

    自定义视图组件教程案例

    自定义组件 1.自定义组件-particles(粒子效果) 2.自定义组件- pulse(脉冲button效果) 3.自定义组件-progress(progress效果) 4.
    发表于 04-08 10:48 14次下载

    在16x2 LCD显示器上创建自定义动画

    电子发烧友网站提供《在16x2 LCD显示器上创建自定义动画.zip》资料免费下载
    发表于 10-24 09:28 0次下载
    在16x2 LCD显示器上<b class='flag-5'>创建</b><b class='flag-5'>自定义</b>动画

    教程 2:添加特征-自定义配置文件创建

    教程 2:添加特征 - 自定义配置文件创建
    发表于 03-15 19:39 0次下载
    教程 2:添加特征-<b class='flag-5'>自定义</b>配置文件<b class='flag-5'>创建</b>

    教程 2:添加特征-自定义配置文件创建

    教程 2:添加特征 - 自定义配置文件创建
    发表于 07-06 18:50 0次下载
    教程 2:添加特征-<b class='flag-5'>自定义</b>配置文件<b class='flag-5'>创建</b>

    labview超快自定义控件制作和普通自定义控件制作

    labview超快自定义控件制作和普通自定义控件制作
    发表于 08-21 10:32 5次下载

    博途用户自定义库的使用

    博途官方提供了很多库,比如:基本函数库、通信库、安全库、驱动库等等,用户可以使用库中的函数/函数块来完成具体控制任务。除了官方的库,我们也可以创建自己的库(用户自定义库)。比如,把项
    的头像 发表于 12-25 10:08 280次阅读
    博途用户<b class='flag-5'>自定义</b>库的使用