Cesium 仿高德导航线

最近在开发无人机平台中,做一个自主航线规划时,为了达到一个好的航线展示效果,决定仿照高德地图中的线路导航来做。高德地图导航线效果如下:

开始的时候想通过传统的贴图方式来进行处理,发现使用此种方式时,当对地图进行缩放的时候,线路上的箭头数量并不会自动改变,导致非常拥挤。没办法就自己重写了这个线的材质,最终效果如下。

高视角时:

可以看到,当前线路上共计五个箭头。
下面对地图进行缩放:

随着地图视角的接近,该材质会自动生成更多的箭头来填充线路中,这样就会达到一个更好看的效果。

下面说下原理:

我在开发的过程中,将当前线的长度转化为了屏幕长度,然后根据片元的屏幕坐标也转为屏幕像素长度。然后再根据比例计算出纹素拾取的坐标,通过此坐标对图片进行拾取。

以为下部分代码:

 // 获取在虚线内的位置,dashLength * czm_pixelRatio 计算当前像素长度对应的屏幕长度

                float dashPosition = fract(pos.x / (dashLength * czm_pixelRatio));

                vec2 st = materialInput.st;

                vec4 colorImage = texture(image, vec2(fract(dashPosition), st.t));

                // material.alpha = color.a;

                // material.diffuse = max(color.rgb, colorImage.rgb);

                if(colorImage.a < 0.3){

                    material.diffuse = backColor.rgb;

                }else{

                    material.diffuse = color.rgb;

                }

效果体验:vis3d 共享 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/589350.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

深入C语言:探究static关键字的奥秘

文章目录 一、链接属性二、static变量1、定义静态局部变量2、在函数内部使用静态变量3、函数中静态局部变量与递归 三、static变量与全局变量的区别1、存储期与生命周期2、可见性与作用域3、使用场景4、静态与动态内存分配 注意事项 当用于不同的上下文环境时&#xff0c; sta…

手搓 Docker Image Creator(DIC)工具(02):预备知识

此节主要简单介绍一下 Docker、Dockerfile 的基本概念&#xff0c;Dockerfile 对的基本语法&#xff0c;Windows 和 macOS 下 Docker 桌面的安装&#xff0c;Docker 镜像的创建和运行测试等。 1 关于 Docker Docker 是一个开源的应用容器引擎&#xff0c;它允许开发者打包应用…

各种坐标系辨析

坐标系辨析 0. 地球椭圆体1. 大地坐标系2. eci地心惯性坐标系3. 地心地固坐标系(ECEF坐标系&#xff0c;E系)4. 站心坐标系(ENU坐标系)5. LTM坐标系6. IMU坐标系7. 代码部分7.1 LLA(大地坐标系坐标、经纬度海拔)坐标转LTM系(ENU系)下的三维笛卡尔坐标 0. 地球椭圆体 地球表面是…

游泳耳机哪个牌子最好?2024好评率爆表的四款游泳耳机推荐!

在当今快节奏的生活中&#xff0c;运动成为了我们保持健康和放松身心的重要方式之一。游泳作为一项全身运动&#xff0c;不仅可以帮助我们塑造身材&#xff0c;还能让我们在水中尽情享受自由的感觉。然而&#xff0c;在游泳过程中&#xff0c;音乐却往往因为防水问题而成为一种…

【氮化镓】同质GaN垂直PiN二极管的SEB

【Single-event burnout in homojunction GaN vertical PiN diodes with hybrid edge termination design. Appl. Phys. Lett. 124, 132101 (2024)https://doi.org/10.1063/5.0189744】 概括&#xff1a; 本研究探讨了具有混合边缘终止设计&#xff08;Hybrid Edge Terminati…

LabVIEW挖坑指南

一、挖坑指南 1.1、输出变量放在条件框内 错误写法&#xff1a; 现象&#xff1a;如果没进入对应的分支&#xff0c;输出为默认值 正常写法&#xff1a; 让每个分支输出的值都在预料之内。 1.2、统计耗时不准 错误写法 现象&#xff1a;统计出来的耗时是2000ms 正常写法&a…

【Java代码审计】SSRF篇

【Java代码审计】SSRF篇 1.SSRF漏洞2.Java-SSRF漏洞常见接口3.SSRF漏洞演示URLConnectionURLConnection绕过 4.SSRF修复白名单方式过滤方式通用预防SSRF方法 1.SSRF漏洞 SSRF 是 Server-Side Request Forge 的英文首字母缩写&#xff0c;中文意思是服务器端请求伪造。Web 应用…

Coze工作流介绍(一)

Coze工作流介绍 工作流支持通过可视化的方式&#xff0c;对插件、大语言模型、代码块等功能进行组合&#xff0c;从而实现复杂、稳定的业务流程编排&#xff0c;例如旅行规划、报告分析等。 当目标任务场景包含较多的步骤&#xff0c;且对输出结果的准确性、格式有严格要求时…

鱼哥赠书活动第17期:看完这本《Python数据分析》菜鸟也能做Python数据分析?

鱼哥赠书活动第17期&#xff1a;看完这本《Python数据分析》菜鸟也能做Python数据分析&#xff1f; 一、Python是办公自动化的重要工具二、Python是提升职场竞争力的利器三、Python是企业数字化的重要平台四、Python是AI发展的重要通道之一内容简介:第一部分&#xff08;第1~7章…

c++|vector使用及模拟实现

目录 一、vector的介绍 二、vector的使用(常用接口) 2.1string类的成员函数 2.1.1构造函数 2.1.2析构函数 2.1.3“”运算符重载函数 2.2 迭代器(iterator) 及 对象的遍历访问 2.2.1iterator 2.2.2 operator[] && at() 2.2.4 back() && front() 2.2…

Node.js环境调用百度智能云(百度云)api鉴权认证三步走

方式一 :Postman脚本的方式生成v1版本的认证字符串 Postman脚本下载 下载Postman pre-request Script 设置 Authorization 示例脚本 方式二&#xff1a;在线签名工具生成 (试用于验证编程字符串签名是否有错误) 签名计算工具 https://cloud.baidu.com/signature/index.html …

【蓝桥杯嵌入式】六、真题演练(一)-1演练篇:第 14 届真题

温馨提示&#xff1a; 真题演练分为模拟篇和研究篇。本专栏的主要作用是记录我的备赛过程&#xff0c;我打算先自己做一遍&#xff0c;把遇到的问题和不同之处记录到演练篇&#xff0c;然后再返回来仔细研究一下&#xff0c;找到最佳的解题方法记录到研究篇。 目录 解题记录&…