【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使用scp进行远程目录文件复制的详细步骤和示例

《Linux使用scp进行远程目录文件复制的详细步骤和示例》在Linux系统中,scp(安全复制协议)是一个使用SSH(安全外壳协议)进行文件和目录安全传输的命令,它允许在远程主机之间复制文件和目录,... 目录1. 什么是scp?2. 语法3. 示例示例 1: 复制本地目录到远程主机示例 2: 复制远程主

windows系统上如何进行maven安装和配置方式

《windows系统上如何进行maven安装和配置方式》:本文主要介绍windows系统上如何进行maven安装和配置方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不... 目录1. Maven 简介2. maven的下载与安装2.1 下载 Maven2.2 Maven安装2.

C/C++的OpenCV 进行图像梯度提取的几种实现

《C/C++的OpenCV进行图像梯度提取的几种实现》本文主要介绍了C/C++的OpenCV进行图像梯度提取的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的... 目录预www.chinasem.cn备知识1. 图像加载与预处理2. Sobel 算子计算 X 和 Y

c/c++的opencv图像金字塔缩放实现

《c/c++的opencv图像金字塔缩放实现》本文主要介绍了c/c++的opencv图像金字塔缩放实现,通过对原始图像进行连续的下采样或上采样操作,生成一系列不同分辨率的图像,具有一定的参考价值,感兴... 目录图像金字塔简介图像下采样 (cv::pyrDown)图像上采样 (cv::pyrUp)C++ O

Go语言中使用JWT进行身份验证的几种方式

《Go语言中使用JWT进行身份验证的几种方式》本文主要介绍了Go语言中使用JWT进行身份验证的几种方式,包括dgrijalva/jwt-go、golang-jwt/jwt、lestrrat-go/jw... 目录简介1. github.com/dgrijalva/jwt-go安装:使用示例:解释:2. gi

SpringBoot如何对密码等敏感信息进行脱敏处理

《SpringBoot如何对密码等敏感信息进行脱敏处理》这篇文章主要为大家详细介绍了SpringBoot对密码等敏感信息进行脱敏处理的几个常用方法,文中的示例代码讲解详细,感兴趣的小伙伴可以了解下... 目录​1. 配置文件敏感信息脱敏​​2. 日志脱敏​​3. API响应脱敏​​4. 其他注意事项​​总结

python进行while遍历的常见错误解析

《python进行while遍历的常见错误解析》在Python中选择合适的遍历方式需要综合考虑可读性、性能和具体需求,本文就来和大家讲解一下python中while遍历常见错误以及所有遍历方法的优缺点... 目录一、超出数组范围问题分析错误复现解决方法关键区别二、continue使用问题分析正确写法关键点三

Python对PDF书签进行添加,修改提取和删除操作

《Python对PDF书签进行添加,修改提取和删除操作》PDF书签是PDF文件中的导航工具,通常包含一个标题和一个跳转位置,本教程将详细介绍如何使用Python对PDF文件中的书签进行操作... 目录简介使用工具python 向 PDF 添加书签添加书签添加嵌套书签Python 修改 PDF 书签Pytho

Java进行日期解析与格式化的实现代码

《Java进行日期解析与格式化的实现代码》使用Java搭配ApacheCommonsLang3和Natty库,可以实现灵活高效的日期解析与格式化,本文将通过相关示例为大家讲讲具体的实践操作,需要的可以... 目录一、背景二、依赖介绍1. Apache Commons Lang32. Natty三、核心实现代

Python Selenium动态渲染页面和抓取的使用指南

《PythonSelenium动态渲染页面和抓取的使用指南》在Web数据采集领域,动态渲染页面已成为现代网站的主流形式,本文将从技术原理,环境配置,核心功能系统讲解Selenium在Python动态... 目录一、Selenium技术架构解析二、环境搭建与基础配置1. 组件安装2. 驱动配置3. 基础操作模