Cesium


Cesium 是一款面向三维地球和地图的,世界级的JavaScript开源产品。它提供了基于JavaScript语言的开发包,方便用户快速搭建一款零插件的虚拟地球Web应用,并在性能,精度,渲染质量以及多平台,易用性上都有高质量的保证。

关于色斑图

色斑图以及后续文章等值线图,都是一种气象要素(温度、降水)以及控制质量等的表现形式。本篇文章,我们借助开源插值工具kriging.js来讲解如何制作色斑图。

在之前的文章 Cesium专栏-克里金插值,中讲解了如何用kriging.js来做插值,插值是一个全局范围内的插值,但是色斑图类似于GIS中的专题图,所以,我们必须在kriging.js的基础上,进行源码修改,自定义色带,已经自定义绘制网格色值。

效果图(逐小时降水|温度)注:测试数据

具体做法


1、定义色带(数据来源,中国天气网)

  • // 气温
  • { min: -50, max: -45, color: "#2e0057" },
  • { min: -45, max: -40, color: "#4a008b" },
  • { min: -40, max: -35, color: "#0d0b66" },
  • { min: -35, max: -30, color: "#0c2695" },
  • { min: -30, max: -25, color: "#0c43c4" },
  • { min: -25, max: -20, color: "#1a6bd7" },
  • { min: -20, max: -15, color: "#3492f4" },
  • { min: -15, max: -10, color: "#67b7f7" },
  • { min: -10, max: -5, color: "#96cef4" },
  • { min: -5, max: -0, color: "#c1e6f9" },
  • { min: 0, max: 5, color: "#fefec6" },
  • { min: 5, max: 10, color: "#f8f1a1" },
  • { min: 10, max: 15, color: "#ffe479" },
  • { min: 15, max: 20, color: "#ffcc4f" },
  • { min: 20, max: 25, color: "#f19906" },
  • { min: 25, max: 30, color: "#f07609" },
  • { min: 30, max: 35, color: "#eb481f" },
  • { min: 35, max: 40, color: "#ab0110" },
  • { min: 40, max: 45, color: "#650015" },
  • { min: 45, max: 50, color: "#44000b" }
  •  
  • //逐小时降水
  • { min: 0, max: 2, color: "#7fffff" },
  • { min: 2, max: 4, color: "#23b7ff" },
  • { min: 4, max: 6, color: "#0177b4" },
  • { min: 6, max: 8, color: "#0052ca" },
  • { min: 8, max: 10, color: "#0310d8" },
  • { min: 10, max: 20, color: "#9601f9" },
  • { min: 20, max: 50, color: "#6f00b8" },
  • { min: 50, max: 100, color: "#4c0082" }

2、修改源码,自定义获取颜色值

  • kriging.getColor = function (colors, z) {
  • var l = colors.length;
  • for (var i = 0; i < l; i++) {
  • if (z >= colors[i].min && z < colors[i].max) return colors[i].color;
  • }
  • };

3、更改赋值

  • ctx.fillStyle = this.getColor(colors, z);

代码以及数据因客观原因不能提供。如需合作请联系作者QQ:2034146498

更多文章见cesium小专栏GIS之家cesium小专栏

Cesium专栏-气象要素(温度、降水)色斑图制作的更多相关文章

  1. Cesium专栏-雷达遮罩动态扫描(附源码下载)

    Cesium 是一款面向三维地球和地图的,世界级的JavaScript开源产品.它提供了基于JavaScript语言的开发包,方便用户快速搭建一款零插件的虚拟地球Web应用,并在性能,精度,渲染质量以 ...

  2. Cesium专栏-地形开挖2-任意多边形开挖(附源码下载)

    “任意多边形地形开挖” 是“地形开挖”的补充篇,在这节里,我们介绍关于如何使用任意多边形对地形进行开挖,同时,由于有不少小伙伴也咨询了关于“地形开挖”篇后序内容中的填充地形的效果,之前没放出来,是想让 ...

  3. Cesium专栏-terrain地形、3dtiles模型、gltf模型 高度采样

    在Cesium中,对于terrain地形.3dtiles模型.gltf模型的高度采样是一个很基本的功能,基于此,可以做一些深度应用,而Cesium已经帮我们提供了相应的API,在这里,我帮大家总结一下 ...

  4. Cesium专栏-填挖方分析(附源码下载)

    Cesium 是一款面向三维地球和地图的,世界级的JavaScript开源产品.它提供了基于JavaScript语言的开发包,方便用户快速搭建一款零插件的虚拟地球Web应用,并在性能,精度,渲染质量以 ...

  5. Cesium专栏-气象卫星云图动图(附源码下载)

    Cesium Cesium 是一款面向三维地球和地图的,世界级的JavaScript开源产品.它提供了基于JavaScript语言的开发包,方便用户快速搭建一款零插件的虚拟地球Web应用,并在性能,精 ...

  6. Cesium专栏-气象雷达动图(附源码下载)

    Cesium Cesium 是一款面向三维地球和地图的,世界级的JavaScript开源产品.它提供了基于JavaScript语言的开发包,方便用户快速搭建一款零插件的虚拟地球Web应用,并在性能,精 ...

  7. Cesium专栏-克里金插值(全国温度为例,附源码下载)

    Cesium Cesium 是一款面向三维地球和地图的,世界级的JavaScript开源产品.它提供了基于JavaScript语言的开发包,方便用户快速搭建一款零插件的虚拟地球Web应用,并在性能,精 ...

  8. Cesium专栏-空间分析之坡向分析(附源码下载)

    Cesium Cesium 是一款面向三维地球和地图的,世界级的JavaScript开源产品.它提供了基于JavaScript语言的开发包,方便用户快速搭建一款零插件的虚拟地球Web应用,并在性能,精 ...

  9. Cesium专栏-空间分析之坡度分析(附源码下载)

    Cesium Cesium 是一款面向三维地球和地图的,世界级的JavaScript开源产品.它提供了基于JavaScript语言的开发包,方便用户快速搭建一款零插件的虚拟地球Web应用,并在性能,精 ...

随机推荐

  1. gdb调试常用方法介绍

    一.概述   GDB是GNU开源组织发布的一个强大的UNIX下的程序调试工具.没有统一的界面,所有的操作都是通过命令的方式进行提供.对于习惯了图形界面方式进行调试的猿猿来说可能不是很顺手,但是如果你在 ...

  2. 客户端加载文本数据到mysql数据库表(数据导入和导出)

    load data local infile "文件绝对路径" into table 表名; 如果指定了LOCAL,则文件会被客户主机上的客户端读取,并被发送到服务器 如果要导出表 ...

  3. MD5、公钥、私钥、加密、认证

    MD5 MD5的全称是Message-Digest Algorithm 5. MD5将任意长度的“字节串”变换成一个128bit的大整数,并且它是一个不可逆的字符串变换算法. 换句话说就是,即使你看到 ...

  4. python2和python3编码问题

    欢迎加入python学习交流群 667279387 一.什么是编解码 1.什么是unicode 2.编码方式 二.python中的编解码 1.python2 (1).encode() 和 .decod ...

  5. [TimLinux] django 下载功能中文文件名问题

    from django.utils.encoding import escape_uri_pathfrom django.http import HttpResponse def download(r ...

  6. ACM-ICPC 2018 焦作赛区网络预赛 L 题 Poor God Water

    God Water likes to eat meat, fish and chocolate very much, but unfortunately, the doctor tells him t ...

  7. 分布式监控数据采集系统Ganglia实战

    一.什么是Ganglia 对于这个工具,大家可能比较陌生,但是它功能非常强大,如果我们想收集所有服务器.网络设备的数据,那么ganglia绝对是首选,在深入学习之前,还是先从基础概念了解起吧! Gan ...

  8. Orleans[NET Core 3.1] 学习笔记(一).NET环境下的分布式应用程序

    前言 Orleans是一个跨平台的框架,用于搭建可扩展的分布式应用程序 第一次接触Orleans还是两年前做游戏服务器的时候,用SignalR+Orleans的组合,写起代码来不要太爽. 即将进入20 ...

  9. JAVA可视化闹钟源码

    概述 一些同学的Java课设有这样一个问题,比较感兴趣就做了一下 功能介绍: 1.可增加闹钟 2.可删除闹钟 3.时间到了响铃 4.关闭闹钟不会丢失闹钟(因为闹钟存储在txt文件中,不会因程序关闭就终 ...

  10. eclipse没有打断点,项目确仍然要进入断点的问题。

    eclipse没有打断点,却仍然每次debug项目启动时都进入一个断点,很烦人,经在网上查阅发现是勾选了下图中红框中所示的几个选项,把这几项去掉之后就自动不进入断点页面了,经分析这几个选项的大概意思是 ...