【mars3d-heatLayer】热力图在相机视角缩放时按新的raduis进行渲染

2024-08-24 02:20

本文主要是介绍【mars3d-heatLayer】热力图在相机视角缩放时按新的raduis进行渲染,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

 

地图放大

地图缩小

代码:

import * as mars3d from "mars3d"export let map // mars3d.Map三维地图对象// 需要覆盖config.json中地图属性参数(当前示例框架中自动处理合并)
export const mapOptions = {scene: {center: { lat: 25.873121, lng: 119.290515, alt: 51231, heading: 2, pitch: -71 },showSun: false,showMoon: false,showSkyBox: false,showSkyAtmosphere: false,fog: false,backgroundColor: "#363635", // 天空背景色contextOptions: { webgl: { antialias: mars3d.Util.isPCBroswer() } },logarithmicDepthBuffer: false, // 对数深度缓冲区[当热力图出现阴影体或遮挡时设置下]globe: {baseColor: "#363635", // 地球地面背景色showGroundAtmosphere: false,enableLighting: false},cameraController: {zoomFactor: 1.5,minimumZoomDistance: 0.1,maximumZoomDistance: 200000,enableCollisionDetection: false // 允许进入地下}}
}/*** 初始化地图业务,生命周期钩子函数(必须)* 框架在地图初始化完成后自动调用该函数* @param {mars3d.Map} mapInstance 地图对象* @returns {void} 无*/
export function onMounted(mapInstance) {map = mapInstance // 记录map// map.basemap = 2017 // 暗色底图mars3d.Util.fetchJson({ url: "//data.mars3d.cn/file/apidemo/heat-fuzhou.json" }).then(function (result) {const arrPoints = []for (let i = 0; i < result.Data.length; i++) {const item = result.Data[i]arrPoints.push({ lng: item.x, lat: item.y, value: item.t0 })}showHeatMap(arrPoints)})// addTerrainClip()
}/*** 释放当前地图业务的生命周期函数* @returns {void} 无*/
export function onUnmounted() {map = null
}function showHeatMap(arrPoints) {// 热力图 图层const heatLayer = new mars3d.layer.HeatLayer({positions: arrPoints,// 以下为热力图本身的样式参数,可参阅api:https://www.patrick-wied.at/static/heatmapjs/docs.htmlmax: 20000,heatStyle: {radius: 20,minOpacity: 0,maxOpacity: 0.4,blur: 0.3,gradient: {0: "#e9ec36",0.25: "#ffdd2f",0.5: "#fa6c20",0.75: "#fe4a33",1: "#ff0000"}},// 以下为矩形矢量对象的样式参数style: {opacity: 1.0// clampToGround: true,},redrawZoom: true, // 视角缩放时是否进行按新的raduis进行渲染。flyTo: true})map.addLayer(heatLayer)window.heatLayer = heatLayermap.on(mars3d.EventType.mouseMove, (e) => {const point = mars3d.LngLatPoint.fromCartesian(e.cartesian)const data = heatLayer.getPointData(point)if (!data.x) {return}const inhtml = `经度: ${point.lng} <br />纬度: ${point.lat} <br />X值: ${data.x} <br />Y值: ${data.y} <br />value值: ${data.value} <br />颜色:<span style="background-color: ${data.color};padding:2px 5px;">${data.color}</span>`map.openSmallTooltip(e.windowPosition, inhtml)})
}// 添加地形外裁剪
async function addTerrainClip() {const geojson = await mars3d.Util.fetchJson({ url: "http://data.mars3d.cn/file/geojson/areas/350100.json" })const arr = mars3d.Util.geoJsonToGraphics(geojson) // 解析geojsonconst options = arr[0]const terrainClip = new mars3d.thing.TerrainClip({image: false,splitNum: 10, // 井边界插值数clipOutSide: true})map.addThing(terrainClip)terrainClip.addArea(options.positions, { simplify: { tolerance: 0.004 } })map.scene.globe.depthTestAgainstTerrain = false // 关闭深度
}

 相对路径:

src\example\layer-other\heatmap\heatLayer\map.js

下载示例;

git clone https://gitee.com/marsgis/mars3d-vue-example.git

这篇关于【mars3d-heatLayer】热力图在相机视角缩放时按新的raduis进行渲染的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1101178

相关文章

Linux使用fdisk进行磁盘的相关操作

《Linux使用fdisk进行磁盘的相关操作》fdisk命令是Linux中用于管理磁盘分区的强大文本实用程序,这篇文章主要为大家详细介绍了如何使用fdisk进行磁盘的相关操作,需要的可以了解下... 目录简介基本语法示例用法列出所有分区查看指定磁盘的区分管理指定的磁盘进入交互式模式创建一个新的分区删除一个存

C#使用HttpClient进行Post请求出现超时问题的解决及优化

《C#使用HttpClient进行Post请求出现超时问题的解决及优化》最近我的控制台程序发现有时候总是出现请求超时等问题,通常好几分钟最多只有3-4个请求,在使用apipost发现并发10个5分钟也... 目录优化结论单例HttpClient连接池耗尽和并发并发异步最终优化后优化结论我直接上优化结论吧,

使用Python进行文件读写操作的基本方法

《使用Python进行文件读写操作的基本方法》今天的内容来介绍Python中进行文件读写操作的方法,这在学习Python时是必不可少的技术点,希望可以帮助到正在学习python的小伙伴,以下是Pyth... 目录一、文件读取:二、文件写入:三、文件追加:四、文件读写的二进制模式:五、使用 json 模块读写

基于WinForm+Halcon实现图像缩放与交互功能

《基于WinForm+Halcon实现图像缩放与交互功能》本文主要讲述在WinForm中结合Halcon实现图像缩放、平移及实时显示灰度值等交互功能,包括初始化窗口的不同方式,以及通过特定事件添加相应... 目录前言初始化窗口添加图像缩放功能添加图像平移功能添加实时显示灰度值功能示例代码总结最后前言本文将

使用zabbix进行监控网络设备流量

《使用zabbix进行监控网络设备流量》这篇文章主要为大家详细介绍了如何使用zabbix进行监控网络设备流量,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录安装zabbix配置ENSP环境配置zabbix实行监控交换机测试一台liunx服务器,这里使用的为Ubuntu22.04(

在Pandas中进行数据重命名的方法示例

《在Pandas中进行数据重命名的方法示例》Pandas作为Python中最流行的数据处理库,提供了强大的数据操作功能,其中数据重命名是常见且基础的操作之一,本文将通过简洁明了的讲解和丰富的代码示例,... 目录一、引言二、Pandas rename方法简介三、列名重命名3.1 使用字典进行列名重命名3.编

python安装完成后可以进行的后续步骤和注意事项小结

《python安装完成后可以进行的后续步骤和注意事项小结》本文详细介绍了安装Python3后的后续步骤,包括验证安装、配置环境、安装包、创建和运行脚本,以及使用虚拟环境,还强调了注意事项,如系统更新、... 目录验证安装配置环境(可选)安装python包创建和运行Python脚本虚拟环境(可选)注意事项安装

如何使用celery进行异步处理和定时任务(django)

《如何使用celery进行异步处理和定时任务(django)》文章介绍了Celery的基本概念、安装方法、如何使用Celery进行异步任务处理以及如何设置定时任务,通过Celery,可以在Web应用中... 目录一、celery的作用二、安装celery三、使用celery 异步执行任务四、使用celery

SpringBoot使用minio进行文件管理的流程步骤

《SpringBoot使用minio进行文件管理的流程步骤》MinIO是一个高性能的对象存储系统,兼容AmazonS3API,该软件设计用于处理非结构化数据,如图片、视频、日志文件以及备份数据等,本文... 目录一、拉取minio镜像二、创建配置文件和上传文件的目录三、启动容器四、浏览器登录 minio五、

python-nmap实现python利用nmap进行扫描分析

《python-nmap实现python利用nmap进行扫描分析》Nmap是一个非常用的网络/端口扫描工具,如果想将nmap集成进你的工具里,可以使用python-nmap这个python库,它提供了... 目录前言python-nmap的基本使用PortScanner扫描PortScannerAsync异