当前位置: 首页 > news >正文

厦门做网站seo的惠州哪家做网站比较好

厦门做网站seo的,惠州哪家做网站比较好,面膜网站广告怎么做,四川省住房和城乡建设厅官网站网Cesium——使用cesium 加载静态热力图显示 实现思路 要在 Cesium 中加载静态热力图,我们需要完成以下几个主要步骤: 1、计算热力图数据的四至范围和中心点。 2、初始化热力图并设置相关参数。 3、将数据添加到热力图中。 4、定位到热力图的位置并刷…

Cesium——使用cesium 加载静态热力图显示

实现思路

要在 Cesium 中加载静态热力图,我们需要完成以下几个主要步骤:

1、计算热力图数据的四至范围和中心点。

2、初始化热力图并设置相关参数。

3、将数据添加到热力图中。

4、定位到热力图的位置并刷新场景。

代码实现

加载热力图的核心代码

以下是实现加载静态热力图的核心代码:
//调用
let data = [{x:112.11,y:34.11,value:11},{x:112.22,y:34.11,value:188}]
testLoc(data)

//-----------------加载热力图start------------------//function testLoc(newHeatList) {// 设定热力图的四至范围// 初始化边界值let bounds = {west: Infinity,east: -Infinity,south: Infinity,north: -Infinity,};// 检查数据是否为空if (newHeatList.length === 0) {console.error("数据为空,无法计算四至范围");bounds = null;} else {// 遍历数据,动态计算四至范围newHeatList.forEach((point) => {if (point.x < bounds.west) bounds.west = point.x;if (point.x > bounds.east) bounds.east = point.x;if (point.y < bounds.south) bounds.south = point.y;if (point.y > bounds.north) bounds.north = point.y;});// 格式化边界值,保留 6 位小数bounds.west = parseFloat(bounds.west.toFixed(6));bounds.east = parseFloat(bounds.east.toFixed(6));bounds.south = parseFloat(bounds.south.toFixed(6));bounds.north = parseFloat(bounds.north.toFixed(6));}// 调用函数计算中心点const centerPoint = calculateCenterPoint(newHeatList);// 初始化热力图let heatMap = CesiumHeatmap.create(viewer, // your cesium viewerbounds, // bounds for heatmap layer{// heatmap相应参数backgroundColor: "rgba(0,0,0,0)",radius: 25,maxOpacity: 0.5,minOpacity: 0,blur: 0.75,});let data = newHeatList;//设置最大最小值let valueMin = Math.min(...data.map((d) => d.value));let valueMax = Math.max(...data.map((d) => d.value));// 将数据添加到热力图heatMap.setWGS84Data(valueMin, valueMax, data);//定位到热力图的位置// viewer.zoomTo(viewer.entities);CameraFlyTo1(centerPoint.x, centerPoint.y, 20000); //改变默认初始地图高度// 强制刷新viewer.scene.requestRender();
}// 计算中心点
function calculateCenterPoint(points) {if (points.length === 0) {console.error("数据为空,无法计算中心点");return null;}// 初始化经度和纬度的总和let sumX = 0;let sumY = 0;// 遍历所有点,累加经度和纬度points.forEach((point) => {sumX += point.x;sumY += point.y;});// 计算平均值并保留 6 位小数const centerX = parseFloat((sumX / points.length).toFixed(6));const centerY = parseFloat((sumY / points.length).toFixed(6));return { x: centerX, y: centerY };
}
//----------------------------end热力图end----------------------//

代码解释

testLoc** 函数**:

首先,初始化热力图的四至范围(bounds),并检查输入数据是否为空。

如果数据不为空,遍历数据,动态计算四至范围,并将边界值保留 6 位小数。

调用 calculateCenterPoint 函数计算数据的中心点。

使用 CesiumHeatmap.create 方法初始化热力图,并设置相关参数,如背景颜色、半径、透明度等。

计算数据的最小值和最大值,并将数据添加到热力图中。

调用 CameraFlyTo1 函数定位到热力图的位置,并强制刷新场景。

calculateCenterPoint** 函数**:

检查输入数据是否为空,如果为空则输出错误信息并返回 null

初始化经度和纬度的总和,遍历所有点,累加经度和纬度。

计算平均值并保留 6 位小数,返回中心点的坐标。

效果图
在这里插入图片描述

总结

通过以上步骤,我们可以在 Cesium 中加载静态热力图并进行显示。核心在于计算热力图数据的四至范围和中心点,初始化热力图并设置参数,将数据添加到热力图中,最后定位到热力图的位置并刷新场景。希望本文对你有所帮助,你可以根据自己的需求对代码进行修改和扩展。

请注意,上述代码中 viewerCameraFlyTo1 函数需要根据实际情况进行定义和实现。在实际应用中,你可能还需要处理更多的错误情况和优化代码性能。

以上就是使用 Cesium 加载静态热力图显示的详细介绍,希望能帮助你在开发地理信息系统应用时更好地利用 Cesium 的功能。
最后感谢阅读,如有不足指出,请指正,谢谢。

http://www.dtcms.com/a/552897.html

相关文章:

  • 目标检测原理分享
  • AI驱动的VSCode插件开发:从模型研发到性能优化的全栈实践
  • 6 种无误的方法:如何备份和恢复华为手机
  • Spring Boot 整合 ShedLock 处理定时任务重复
  • 静态网站开发课程相关新闻做设计图的网站
  • MCU(微控制器单元)上的语音识别
  • 【普中Hi3861开发攻略--基于鸿蒙OS】-- 第 31 章 WIFI 实验-华为 IoTDA 设备接入
  • hive的全连接
  • 集团企业网站设计方案专业做化学招聘的网站有哪些
  • win11 wsl安装Ubuntu-22.04并迁移D盘 以及安装docker
  • 频闪拍照中的相机和光源同步问题
  • 乐吾乐3D可视化案例【智慧汽车三维可视化】
  • 网站图片验证码出不来潜江资讯网电脑版
  • 大模型在百度电商机审应用的落地实践
  • esp8266+dht11传感器实时上报温湿度
  • WPF中为Button设置IsMouseOver和IsPressed事件中改变背景颜色不起作用
  • vagrant nat网络问题-虚拟机同时存在两个IP,并且不能访问外网
  • 微信小程序代理商加盟多少钱郑州网站优化公司价位
  • Ingress-Nginx故障排除
  • WPF ListView 列表
  • 国内资深易经风水专家谷晟阳
  • seo网站优化优化排名关于网站建设电话销售的开场白
  • Docker Swarm K8s云原生分布式部署2025年版
  • 量化投资从入门到入土:什么是股市
  • Windows 下 ComfyUI + Comfy CLI + PyTorch(CUDA)完整源码安装教程
  • wordpress站点管理wordpress去除仪表盘
  • 【SpringMVC】详解用户登录前后端交互流程:AJAX 异步通信与 Session 机制实战
  • Arbess零基础学习,使用Arbess+GitLab实现Vue.js项目构建并主机部署
  • Git 标准工作流程和 Git 使用(持续更新)
  • 阿里云 OceanBase 可观测最佳实践