基于Cesium实现加载显示热力图

目录
  • CesiumHeatmap
  • 编写案例

我是一个小白,到目前为止对于3D方面的东西不是特别的懂,所以说,对于cesium使用的并不是特别的好,可以说根本不会吧,所以说也是在一点一点摸索,一点一点学习的过程中,所以说有些博文写的可能不是准确的,只是用来记录一下学习过程,错了别喷我啊!!

CesiumHeatmap

首先嘞,绘制热力图需要有一个工具,就是使用 CesiumHeatmap 这个工具,然后呢,下面是他的一个github的地址。

CesiumHeatmap 【时空门~ 嗖~】

下载下来放到项目里面就可以了。

我把他放到了这里面嘞。

然后在项目里面引入一下。

<script src="./CesiumHeatmap/CesiumHeatmap.js"></script>

编写案例

  // 测试热力图
  function addHeatMap() {
    let bounds = {
      west: 106.243911,
      east: 106.270811,
      south: 29.244545,
      north: 29.289995,
    };
    let heatMap = CesiumHeatmap.create(
      viewer, // your cesium viewer
      bounds, // bounds for heatmap layer
      {
        // heatmap.js options go here
        // maxOpacity: 0.3
        gradient: {  // the gradient used if not given in the heatmap options object
	  '.3': '#d9e7fc',
	  '.65': '#2a7aed',
	  '.8': '#fbd801',
	  '.95': '#18c3a1'
	},
      },
    );
    let data = [
      { x: 106.254153, y: 29.2883939, value: 76 },
      { x: 106.2654284, y: 29.2854935, value: 63 },
      { x: 106.265005, y: 29.284573, value: 1 },
      { x: 106.264001, y: 29.283456, value: 21 },
      { x: 106.263219, y: 29.282181, value: 28 },
      { x: 106.262788, y: 29.279673, value: 41 },
      { x: 106.2632087, y: 29.2742665, value: 75 },
      { x: 106.2505158, y: 29.28138, value: 76 },
      { x: 106.2531094, y: 29.2833591, value: 100 },
      { x: 106.2531093, y: 29.2844560, value: 80 },
      { x: 106.253293, y: 29.284826, value: 1 },
      { x: 106.250099, y: 29.285638, value: 21 },
      { x: 106.2469149, y: 29.2864109, value: 28 },
      { x: 106.254119, y: 29.276274, value: 41 },
    ];
    let valueMin = 0;
    let valueMax = 50;
    heatMap.setWGS84Data(valueMin, valueMax, data);
    viewer.camera.flyTo({
      destination: Cesium.Cartesian3.fromDegrees(106.254153, 29.2742665, 2e3),
      orientation: {
        heading: Cesium.Math.toRadians(0.0),
        pitch: Cesium.Math.toRadians(-90.0),
        roll: 0.0,
      },
    });
  }

效果就是这个样子。

以上就是基于Cesium实现加载显示热力图的详细内容,更多关于Cesium显示热力图的资料请关注我们其它相关文章!

时间: 2022-06-20

基于Cesium绘制栅栏的示例代码

目录 最终效果 创建 dynamicWallMaterialProperty.js 文件 网上的资料要不收费,要不代码不全,很多跟绘制墙体有关的案例要不缺放法要不干嘛的,我自己根据网上的方法又加上自己百度改,最后实现了一个效果,和我想实现的效果差不多,分享一下子. 最终效果 反正这篇博文最后实现的效果就是上面动图的效果,如果你想实现的效果不是这个样子的话就不要看了,浪费时间了就. 创建 dynamicWallMaterialProperty.js 文件 首先需要一个 dynamicWallMat

基于Cesium绘制抛物弧线

Cesium绘制抛物弧线,供大家参考,具体内容如下 在网上搜了很多都没有搜到,于是自己花了点时间琢磨了一下,做个记录 思路 两点连线作为坐标轴,模拟抛物线,在线上取点画直线,主要用于高度/p> 取n个点,依次画线,得到近似的抛物线,点越多越光滑 JS代码 // 两点之间抛物线绘制函数,twoPoints是一个数组:[lon1,lat1,lon2,lat2] function animatedParabola(twoPoints) { //动态抛物线绘制 let startPoint = [two

vue2.0项目集成Cesium的实现方法

安装cesium 在已有项目中执行, npm i cesium 修改配置 build/webpack.base.conf.js 1.定义 Cesium 源码路径 const cesiumSource = '../node_modules/cesium/Source' 'use strict' const path = require('path') const utils = require('./utils') const config = require('../config') const

Vue2.0中集成UEditor富文本编辑器的方法

在vue的'项目中遇到了需要使用富文本编辑器的需求,在github上看了很多vue封装的editor插件,很多对图片上传和视频上传的支持并不是很好,最终还是决定使用UEditor. 这类的文章网上有很多,我进行了摸索.手写代码.汇总.排版,形成了这篇文章. 下载对应的UEditor源码 首先,去官网上下载UEditor的源码,根据你后台语言的不同下载对应的版本(PHP.Asp..Net.Jsp). http://ueditor.baidu.com/website/download.html 下载

vue2.0项目实现路由跳转的方法详解

一.安装 1.安装路由vue-router: npm install vue-router vue项目的依赖文件node_modules存在vue-router依赖,说明安装成功 2.vue项目引入vue-ruoter: 二.应用 1.路径配置(页面跳转): 方法一:如果切换的页面不多,可以直接在main.js文件内配置. 方法二:如果切换的页面较多,可以建一个专门用于路由的js文件,里面配置路径. 1)router.js配置文件 2)main.js里引入router.js路由文件 2.组件里调

vue2.0安装style/css loader的方法

项目需要引用额外的ui组件库,就需要安装style-loader和css-loader 安装style-loader  (css-loader默认有) npm install style-loader -D 然后,打开模板build--webpack.base.conf.js( 根据初始化模板不同也可能是 build 下面的webpack.base.conf.js ),新增一个json,注意style!css顺序不能颠倒(!表示连接) 补充: 2.0 以后应该写成 style-loader!cs

解决vue2.0 element-ui中el-upload的before-upload方法返回false时submit()不生效问题

我要实现的功能是在上传文件之前校验是否表格中存在重复的数据,有的话,需要弹窗提示是否覆盖,确认之后继续上传,取消之后,就不再上传. 项目中用的element-ui是V1.4.3 <el-upload class="upload-demo" drag ref="fileUpload" :action="urls.fileUpload" :on-success="handleUploadSuccess" :on-error=

Spring boot项目集成Camel FTP的方法示例

1.Spring 中集成camel-ftp 近期项目中涉及到定期获取读取并解析ftp服务器上的文件,自己实现ftp-client的有些复杂,因此考虑集成camel-ftp的方式来解决ftp文件的下载问题.自己则专注于文件的解析工作. demo: https://github.com/LuckyDL/ftp-camel-demo 1.1.POM引用 <dependency> <groupId>org.apache.camel</groupId> <artifactI

vue2.0项目中使用Ueditor富文本编辑器示例代码

最近在vue项目中需要使用富文本编辑器,于是将Ueditor集成进来,作为公共组件. 项目地址:https://github.com/suweiteng/vue2-management-platform 1.放入静态资源并配置 首先把官网下载的Ueditor资源,放入静态资源src/static中. 修改ueditor.config.js中的window.UEDITOR_HOME_URL配置,如下图: 2.引入 在main.js中引入 import '../static/UE/ueditor.

Android原生项目集成React Native的方法

开发环境准备 首先按照开发环境搭建教程来安装React Native在安卓平台上所需的一切依赖软件(比如npm). 在应用中添加JS代码 在项目的根目录中运行: $ npm init $ npm install --save react react-native $ curl -o .flowconfig https://raw.githubusercontent.com/facebook/react-native/master/.flowconfig npm init创建了一个空的node模块

SpringBoot项目集成日志的实现方法

SpringBoot使用Commons Logging进行所有内部日志记录,但保留底层日志实现.默认提供了Java Util Logging, Log4j2 和Logback日志配置.在每种情况下,都预先配置为使用控制台输出,并且还提供了可选的文件输出.(来自官网) 日志格式 SpringBoot默认的日志输出如下所示: 2014-03-05 10:57:51.112 INFO 45469 --- [ main] org.apache.catalina.core.StandardEngine :

Vue2.0 UI框架ElementUI使用方法详解

今天来介绍一下ElementUI的使用,在Vue2.0更新之后,很多UI框架也应运而生,这个框架是饿了么团队开发的一款适用于PC的一个UI框架,体验之后给我的个人感觉确实是有助于快速开发的一款UI框架,在饿了么GitHub中我下载了一个团队开发的官方Demo(GitHub链接为:https://github.com/taylorchen709/vue-admin)感觉可以应对初期团队项目为管理系统的开发这一类的网站,下面我就来仔细讲解下如何让官方的Demo运行起来 首先我们使用windows件+