vue中地图怎么标记数据库传过来的点_【Point小数点 图表挑战总结03】如何使用六边形网格地图(下)...
禹洋:【Tableau】 如何使用六边形网格地图(Hex Map)——图表挑战总结03zhuanlan.zhihu.com
上一篇文章使用的网格地图的画法,在DashBoard排版时非常难控制,也算个痛点,于是继续在网上找解决方案。Rody Zakovich 设计了使用多边形地图的解决方案。Joshua Milligan 受此启发设计了使用 空间数据文件的解决方案,这次很多使用六边形网格地图画法的人大部分都是使用的这种方案。
新的解决方案需要 多边形地图 和 Tablea支持的shapefile空间文件 的相关知识,我也是现学了一点,惯例贴出一个我自己搬运带字幕的教学视频(实在无力翻译,还是鼓励大家多接触英文的材料),欢迎来 关注 点赞 收藏 投币。
视频教程地址www.bilibili.com
1P是关于多边形地图的相关知识,2P是关于空间数据文件的使用,看具体画图方法前可以看一下这两个不到30分钟的小教程。
3P是关于使用一些其他地图背景的方法,感兴趣的也可以看看,但是和本次的网格地图画法无关。
具体教程
网盘资料 密码:k0w1
方法一 使用多边形地图
准备工作:连接数据
- 连接附件中的 Polygonic Hex Map.xlsx 数据。
- 将 Point字段 从度量字段修改成为 维度字段。
第一步:画多边形
- 将 X字段 和 Y字段 分别拖放至 列功能区 与 行功能区
- 将 State(州) 拖放至 详细信息标记卡
- 在 标记卡 上,将图表类型调整为 多边形 类型
- 将 Point 字段拖放到 路径标记卡
- 编辑轴,将两个轴的 范围 都设置为 固定 X轴 范围区间为[-2, 28],Y轴 范围区间[-17, 13] , 将两个轴的区间同时调整为长度30能够保证六边形网格形状方正
- 颜色标记卡 - 效果 - 边界,设定随意颜色,给六边形增加一个边界看到比较清楚。
第二步:将 Abbreviation(州名缩写)字段 添加成为标签
- 将 Y2字段 拖放到 行功能区
- 设置 双轴 - 同步轴
- 将 Y2标记卡 图表类型调整为 圆 (以下全部是在 Y2标记卡 设置)
- 将 Abbreviation(州名缩写)字段 拖放至 标签标记卡
- 标签标记卡 - 标签外观 - 对齐, 同时设置为 左右居中 上下居中
- 将 颜色标记卡 的 透明度 调整至0,同时将 边界 调整为 无 。
- 将 大小标记卡 - 调整至最小
第三步:关联新数据并调整颜色
- 关联 SuperStore 数据源
- 通过 State(州) 关联两份数据
- 将任意 度量字段 拖放至 Y标记卡 的 颜色标记卡
成果
简单清理一下不需要显示的网格线,轴等。
交互式地址
方法二 使用空间数据 shapefile
准备工作
- 连接附件中提供的 HexStates.shp 数据
第一步:画多边形
双击 几何字段 ,生成六边形网格地图
第二步:生成标签
State Abbr字段 拖放至 标签标记卡
第三步:隐藏背景地图
地图菜单 - 地图层 - 冲蚀
冲蚀设置为 100%。
到目前为止看,使用空间数据的操作需要的设定非常少,很快就能构建好栅格地图。
排版方式的调整
这次不用再调整六边形大小了,上次要调整疯了。。。
第一步:生成三个辅助计算字段
# Size 所有涉及年份的数量
sum({COUNTD([Year])})# Rows 子图所在的行数
int(ABS(FIRST())/ROUND(SQRT([Size])))# Columns 子图所在的列数
ABS(FIRST())%ROUND(SQRT([Size]))
第二步:生成16张子图
- 将 Year字段 拖放至 详细信息标记卡
- 将 Columns字段 Rows字段 分别拖入 列功能区 行功能区
- 调整 Columns字段 Rows字段 的表计算计算依据,同时调整为依据 Year字段
- 将Columns字段 Rows字段两个字段的数据类型调整成为 离散
第三步:在仪表板进行布局调整
每个子图中的地图显示大小及位置,是需要通过在工作表中的地图视图工具栏来调整的。
我暂时没找到调整子图大小的方式,现在只能通过把分辨率调整到足够大,保证16张子图都能显示进来。
最后怎么给每个地图加上年份,大家可以自己尝试一下。
绘图原理探索一下
关于多边形地图
以阿拉斯加的这个六边形为例子看一下。
对比两张图,X字段 和 Y字段 实际上是提供了六个点的坐标,Point字段是提供了画六个点的先后顺序,State字段 或者 Abbreviation字段 标记了不同的六边形。
Y2字段 标记实际上是和 X字段 配合标记了了六边形的中心点,也就是我们需要放标签的位置。
关于空间数据地图
Joshua 的csv文件也是根据 Rody 的位置数据调整的,可以看到 X字段 和 Y字段是完全一样的 后面的 Y1 - Y6实际上是 Joshua 手工修改的。
多边形地图的坐标系还是二维平面坐标系,但是空间数据的坐标系一般是球体的投影坐标。
在我们具体使用过程中也可以看到,使用多边形地图方法,我们实际上是在一个二维坐标系画图,而使用空间数据,实际上是在一个经纬度的坐标系下来操作画图。
两个坐标系的数据转换,一般是需要进行投影转换,这次 Joshua 是自己调整试错的方式修改的,可能是试了六次。
具体空间数据文件的生成,是使用 Alteryx 生成的,暂时没精力向下研究了,有需要再了解吧。
shp 文件的封装的比较好,传入的实际上是51个州对象。
查看详情信息,可以看到经度纬度信息其实是人工配置的。
总结
我们看到空间数据的画法是最快捷的,对于多张图的快速排版也能够实现。
但是最早的使用六边形形状的画法灵活性更高,可以修改六边形的具体形状,可以分离呈现各个六边形等等。
参考材料
多边形地图方案: POLYGON HEX MAP IN TABLEAU空间地图方案: Hex Map Spatial File
修改记录:
V1.1 - 2019.07.14 :
方法一 - 第一步 - 5
原始的 X Y 轴范围描述写反了,现已更正,感谢网友反馈。
附:
教程软件功能区名称使用规范(自用)
参考了官方教程的软件功能区的翻译方式,以后设计软件内的功能,字段,选项等等描述统一进行斜体标注,目前规范也只是用到的会写进去,以后有新的描述再加。
官方文档的工作区命名
斜体标注
为了高效传递信息,以后尽量减少截图的数量。
数据窗格
列功能区, 行功能区
标记卡
菜单栏
vue中地图怎么标记数据库传过来的点_【Point小数点 图表挑战总结03】如何使用六边形网格地图(下)...相关推荐
- vue中使用axios post上传头像/图片并实时显示到页面
前端开发中,为了更好的用户体验,在头像上传时会先将图片显示到页面然后点击保存按钮 完成图片的上传成功 代码部分有参考他人的写法. html代码: <div id="myPhoto&qu ...
- Vue 中实现 excel文件上传功能
场景: 上传excel表,并将excel表中的数据构建成实体 <div class="pull-right" v-if="doc"><el-u ...
- Vue中 使用 calc 计算长度并传参
1. calc() 函数简介与使用 calc():英文单词 calculate (计算)的缩写,是 css3 新增加的一个功能.它可以动态的设置元素样式中 border.margin.padding ...
- Vue中base64 转图片上传
// 拍照获取图片base64 // imgsrc: base64图片资源refreshDataList (imgsrc) {let data = this.baseImg(imgsrc)consol ...
- 说出vue中的几种指令和他的用法_说一说VUE中的/deep/用法
七夕了,写个昨天遇到的bug来缓解下没有人约的尴尬. 昨天和QA过历史bug时,发现有好几个浏览器不兼容的导致式样变形的bug,调查了一番发现是因为deep选择器的原因. 在说bug之前,先看看vue ...
- vue中使用antv/g6 绘制关系图、结构图_高级图标绘制设计软件最新版 | MyDraw 4.1.2...
THE START 更新高级图标绘制设计软件最新版,MyDraw 4.1.2.还有一些类似的软件Xmind.Xmind ZEN等,都可在小编的菜单栏找到.进入主题! MyDraw是先进的绘图软件和矢量 ...
- 上传 mp4 格式判断_视频如何转换成通用的MP4格式?按下这个键,10秒就能搞定...
我们在网上下载视频的时候,有很多的视频都是无法播放的,或者是需要特定的播放器才可以播放.其实,只要把这些视频的格式转换成通用的MP4格式即可.如果你还不知道怎么转换视频格式,下面就教大家两个小方法,百 ...
- vue中使用echarts实现地图颜色渐变及自定义浮窗内容
在这篇文章里vue中使用echarts自定义浮窗内容及样式_芝士焗红薯的博客-CSDN博客,总结了echarts的一些简单用法.这篇文章,一个是在原来的自定义浮窗内容上实现了地图的颜色渐变,一个是简化 ...
- 在vue中使用wangEditor上传视频
一.效果展示 实现效果 原本效果 二.修改wangEditor源码 添加插入视频panel 只修改Video.prototype._createPanel方法 // 原型 Video.prototyp ...
最新文章
- CS-APP:Section 5.1,Memory aliasing :看上去逻辑一样,执行结果一样吗?
- RabbitMQ 官方NET教程(二)【工作队列】
- 数组中两个字符串的最小距离
- php 如何将字体转为gb,利用php怎么将utf-8与GB2312相互转换
- JQuery:实现列表展开和缩放
- java8 函数式编程_使用Javaslang进行Java 8中的函数式编程
- mysql内置时间函数大全_MySQL 的时间函数 大全
- A2W和W2A :很好的多字节和宽字节字符串的转换宏
- Codeforces 19E 树上差分
- OpenCasCade拓扑几何(拉伸,扫略,旋转)
- 软件测试 — 面试题
- 山石网科Hillstone防火墙L2TP详细配置步骤(官方最新版)
- Markdown设置自动生成目录及序号分级标准
- NCM格式转换MP3格式
- 分享一下PPT常规使用方法和技巧
- 气象环境监测系统有哪些组成设备
- 郑州、昆明、韶关等多地全面推行商品房买卖合同电子签约
- JAVA 华为云 流程控制基础题
- 基于php食堂外卖系统
- minecraft java版皮肤查看_厨师长教你:提取 Minecraft 基岩版付费皮肤并用于 Java 版...
热门文章
- php odbc连接sqlserver,php pdo连接sqlserver配置
- 简析.NET Core 以及与 .NET Framework的关系
- linux lynx 源码,Lynx字符浏览器移植
- java例7_在Java 7中处理周数
- python3.7操作kafka_python3.7新增关键字:async、await;带来和kafka-python==1.4.2的兼容性问题...
- c++17(18)-static_cast
- rust(28)-具名结构体
- 【深度学习】在PyTorch中使用 LSTM 自动编码器进行时间序列异常检测
- 【机器学习】机器学习神器Scikit-Learn保姆级入门教程
- 一文读懂残差网络ResNet