注册自定义材质实现qgis里不同比例尺下材质不被拉升的效果

前景提要:

在QGIS里的显示效果,用的是示例的/img/textures/line-interval.png材质图片。

下载示例

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

相关效果

比如材质是5像素,在1:100000万比例尺下,线显示的长度是5像素,那就用一个材质显示,如果放大到1:10000比例尺,线显示的长度是50像素,那就用10个材质显示,这样材质就不会被拉伸了

polyline的宽度及材质均是像素参数,通过自定义材质的方法实现以下效果。

高视角下:

低视角下:

 示例链接:

功能示例(Vue版) | Mars3D三维可视化平台 | 火星科技

实现代码:

function addDemoGraphic11(graphicLayer) {// 注册自定义材质const MianmianType = "LineSprite"mars3d.MaterialUtil.register(MianmianType, {fabric: {uniforms: {image: Cesium.Material.DefaultImageId,imageW: 10},source: `in float v_polylineAngle;mat2 rotate(float rad) {float c = cos(rad);float s = sin(rad);return mat2(c, s,-s, c);}czm_material czm_getMaterial(czm_materialInput materialInput){czm_material material = czm_getDefaultMaterial(materialInput);vec2 st = materialInput.st;vec2 pos = rotate(v_polylineAngle) * gl_FragCoord.xy;float s = pos.x / (imageW * czm_pixelRatio);float t = st.t;vec4 colorImage = texture(image, vec2(fract(s), t));material.diffuse = colorImage.rgb;return material;}`},translucent: true})const graphic = new mars3d.graphic.PolylinePrimitive({positions: [[116.295277, 30.98],[116.295277, 31],[116.4, 31]],style: {width: 10,clampToGround: true,// 使用自定义材质materialType: MianmianType,materialOptions: {image: "./img/textures/line-interval.png",imageW: 74}},flyTo:true})graphicLayer.addGraphic(graphic)
}

实现效果:

 

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

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

相关文章

树的重心-java

主要通过深度优先搜索来完成树的重心,其中关于树的重心的定义可以结合文字多加理解。 文章目录 前言☀ 一、树的重心☀ 二、算法思路☀ 1.图用邻接表存储 2.图的遍历 3.算法思路 二、代码如下☀ 1.代码如下: 2.读入数据 3,代码运行结果 总结 前言☀ 主…

软考 系统架构设计师系列知识点之杂项集萃(28)

接前一篇文章:软考 系统架构设计师系列知识点之杂项集萃(27) 第43题 以下关于软件架构风格与系统性能的关系叙述中,错误的是( )。 A. 对于采用层次化架构风格的系统,划分的层次越多&#xff0…

电机控制系列模块解析(28)—— 其他功能概述

其他功能概述 软件侧:观测器估计发散保护、时序异常检测 主电路侧:IGBT结温估算、直流母线电容容值估算 电机侧:电机温度估计、轴承异常估计、电机退磁检测 负载侧:负载不平衡检测、掉载检测、负载惯量自适应 上述各项功能&a…

React基础教程(五):事件处理

事件处理 1、绑定事件 1.1、绑定方式1 <Button size{"large"} type{"primary"} onClick{ ()>{console.log("Click1")} }>add1</Button>1.2、绑定方式2 <Button size{"large"} type{"primary"} onClic…

新书推荐:2.2.4 第11练:消息循环

/*------------------------------------------------------------------------ 011 编程达人win32 API每日一练 第11个例子GetMessage.c&#xff1a;消息循环 MSG结构 GetMessage函数 TranslateMessage函数&#xff1a;将虚拟键消息转换为字符消息 DispatchMessage函数…

信息系统项目管理师0148:输出(9项目范围管理—9.3规划范围管理—9.3.3输出)

点击查看专栏目录 文章目录 9.3.3 输出 9.3.3 输出 范围管理计划 范围管理计划是项目管理计划的组成部分&#xff0c;描述将如何定义、制定、监督、控制和确认项 目范围。范围管理计划用于指导如下过程和相关工作&#xff1a; ①制定项目范围说明书&#xff1b;②根据详细项目范…

【机器学习】XGBoost: 强化学习与梯度提升的杰作

&#x1f308;个人主页: 鑫宝Code &#x1f525;热门专栏: 闲话杂谈&#xff5c; 炫酷HTML | JavaScript基础 ​&#x1f4ab;个人格言: "如无必要&#xff0c;勿增实体" 文章目录 XGBoost: 强化学习与梯度提升的杰作引言1. XGBoost概览1.1 什么是XGBoost&#…

纷享销客安全体系:安全运维运营

安全运维运营(Security Operations,SecOps)是指在信息安全管理中负责监控、检测、响应和恢复安全事件的一系列运营活动。它旨在保护组织的信息系统和数据免受安全威胁和攻击的损害。 通过有效的安全运维运营&#xff0c;组织可以及时发现和应对安全威胁&#xff0c;减少安全事…

09.2手工制作docker镜像-kod服务

手工制作docker镜像-kod服务 基于centos6.9系统镜像&#xff0c;搭建kod服务&#xff0c;提交镜像 创建并进入容器 添加centos6系统的yum源和epel源 yum源 curl -o /etc/yum.repos.d/CentOS-Base.repo https://www.xmpan.com/Centos-6-Vault-Aliyun.repo epel源 curl -o /e…

定时器的使用和实现

目录 一.定时器Timer类的主要方法 二.定时器Timer类的使用 三.定时器的模拟实现 一.定时器Timer类的主要方法 定时器Timer类在java.util包中。 使用前先进行实例化&#xff0c;然后使用实例的schedule(TimerTask task, long delay)方法&#xff0c;设定指定的任务task在指…

微信小程序按钮设计与交互:打造极致用户体验

微信小程序作为一种流行的应用形式&#xff0c;其界面设计和交互体验对于用户吸引力和留存率至关重要。其中&#xff0c;按钮作为用户与小程序进行交互的主要方式之一&#xff0c;其设计和实现直接影响到用户体验的质量。在本文中&#xff0c;我们将探讨微信小程序按钮的设计与…

因为附件服务重启的问题

生产的服务器出现以下现象&#xff1a; 1.API报503&#xff0c; 2.不停的重启 发现是OOM的错误。 作为经验法则&#xff0c;有几种常见的OOM情况。 堆内存溢出。如内存泄漏。 虚拟机栈和本地方法栈溢出。如有无限的递归方法。 JVM内存消耗超过容器限制。 从上面的截图中&…

python数据分析-心脏瓣膜手术风险分析与预测

研究背景 人的心脏有四个瓣膜&#xff0c;主动脉银、二尖、肺动脉和三尖源 不管是那一个膜发生了病变&#xff0c;都会导致心脏内的血流受到影响&#xff0c;这就是通常所说的心脏期膜病&#xff0c;很多是需要通过手术的方式进行改善的。随着人口老龄化的加剧,&#xff0c;心…

8. 正则表达式

正则表达式 在处理字符串时&#xff0c;需要查找符合某些复杂规则的字符串&#xff0c;正则表达式就是用于描述这些规则的工具 一、正则表达式语法 行定位符&#xff1a;用来描述字符串的边界 -->用来匹配一整行 符号匹配位置^行的开始$行的结尾 ^tm : 可以匹配行 tm equa…

DevOps 安全集成:从开发到部署,全生命周期安全守护

目录 一、DevOps 安全集成&#xff1a;为什么要做&#xff1f; 二、DevOps 安全集成&#xff1a;如何做&#xff1f; 三、DevOps 安全集成的优势 四、DevOps 安全集成&#xff1a;一些最佳实践 五、DevOps 安全集成&#xff1a;未来展望 六、思考与建议 七、总结 DevOps…

Perl 运算符

Perl 运算符 Perl 是一种功能强大的编程语言,广泛应用于系统管理、网络编程、GUI 创建、数据库访问等众多领域。Perl 的语法灵活,支持多种编程范式,包括过程式、面向对象和函数式编程。在 Perl 中,运算符扮演着重要的角色,它们用于执行各种操作,如算术运算、比较、赋值等…

高质量 HarmonyOS 权限管控流程

高质量 HarmonyOS 权限管控流程 在 HarmonyOS 应用开发过程中&#xff0c;往往会涉及到敏感数据和硬件资源的调动和访问&#xff0c;而这部分的调用就会涉及到管控这部分的知识和内容了。我们需要对它有所了解&#xff0c;才可以在应用开发中提高效率和避免踩坑。 权限管控了…

19、Go Gin框架集成Swagger

介绍&#xff1a; Swagger 支持在 Gin 路由中使用一系列注释来描述 API 的各个方面。以下是一些常用的 Swagger 注释属性&#xff0c;这些属性可以在 Gin 路由的注释中使用&#xff1a; Summary: 路由的简短摘要。Description: 路由的详细描述。Tags: 用于对路由进行分类的标…

跟我学C++高级篇——回调函数及应用

一、回调函数 什么是回调函数&#xff1f;顾名思意&#xff0c;回调函数就是调用方被&#xff08;被调用方&#xff09;调用&#xff0c;有点绕口啊。一般的函数调用&#xff0c;都是一方向另一方发起调用&#xff0c;然后得到调用的结果。一般情况下&#xff0c;回调函数通过…

Unity中的CanvasScaler组件讲解

Unity中的CanvasScaler组件是UGUI系统中的一个关键组件&#xff0c;主要用于控制画布的缩放和适配&#xff0c;以确保UI在不同屏幕分辨率下的显示效果一致。以下是关于CanvasScaler组件的详细讲解&#xff1a; 一、CanvasScaler组件的作用 调整UI画布的缩放和分辨率适配&…