cesium 多边形加边框宽度 Polygon outlineWidth

 cesium中用polygon添加多边形时,设置outlineWidth无效,常见做法是在添加polygon的同时加一个polyline,但是当多边形相邻两条边的角度比较小的情况下,这两个点的连接处有明显的交叉。

解决方案:

第一步:通过turf的buffer方法计算出一个小一点的多边形,注意此时buffer第二个参数为复数才能得到小一点的多边形

第二步:画挖洞多边形,外圈坐标为原始坐标,内圈坐标为第一步计算出来的坐标

第三步:画小多边形,坐标为第一步计算出来的坐标

let poly = turf.polygon([coordinates]);
let buffered = turf.buffer(poly, -0.00005, { units: 'kilometers' });
let innerPositions = buffered.geometry.coordinates[0].reduce(function (acc, curr) {
    return acc.concat(curr);
}, []);

// 画外圈多边形-多边形边框
viewer.entities.add({
    polygon: {
        hierarchy: {
            positions: Cesium.Cartesian3.fromDegreesArray(positions),
            holes: [{
                positions: Cesium.Cartesian3.fromDegreesArray(innerPositions),
            }]
        },
        material: Cesium.Color.fromCssColorString('#f00').withAlpha(0.8),
    }
});
// 画内圈多边形
viewer.entities.add({
    polygon: {
        hierarchy: {
            positions: Cesium.Cartesian3.fromDegreesArray(innerPositions),
        },
        material: Cesium.Color.fromCssColorString('#f00').withAlpha(0.4),
    }
});

其他尝试:

尝试一:第一步用turf的transformScale,当多边形的坐标比较相近的情况下,transformScale不是等比缩放的,导致多边形边框宽度不一致。

尝试二:采用primitive方式加多边形,并调整矩阵缩放,得到的效果和尝试一中一致。

相关参考:cesium primitive 移动 缩放 旋转 矩阵_cesium primite旋转-CSDN博客

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Chromium源码阅读:深入理解Mojo框架的设计思想,并掌握其基本用法(2)

我们继续分析Chromium的Mojo模块。 Dispatcher Dispatcher 是 Mojo IPC 系统中的一个关键概念。它是一个虚基类类(或接口),用于实现与特定 MojoHandle 相关联的 Mojo 核心 API 调用。在 Mojo 系统中,应用程序通过这些 API 与各种…

Python基于车牌识别的车辆进出管理系统

目录 1、效果图2、具体内容系统流程开发工具和环境项目所需依赖包目录描述:启动Django服务登录账号 3、源码下载技术交流 博主介绍: 计算机科班人,全栈工程师,掌握C、C#、Java、Python、Android等主流编程语言,同时也熟…

JavaWeb5 SpringBoot+HTTP协议

Spring Spring Boot 非常快速构建应用程序,简化开发 (1)创建Springboot工程,勾选web开发依赖 创建好的目录,并将没用多余的删掉了 (2)定义请求处理类,并添加方法 创建请求处理类…

华为云DDoS攻击下的应对策略

当华为云上的服务遭遇大规模DDoS攻击导致网络流量异常,触发了华为云的自动防护机制,即所谓的“黑洞”状态时,服务将暂时无法访问,直至攻击停止或流量恢复正常。本文将探讨如何在这一情况下,通过引入第三方安全产品来快…

目标检测——DeepGlobe道路提取数据集

引言 亲爱的读者们,您是否在寻找某个特定的数据集,用于研究或项目实践?欢迎您在评论区留言,或者通过公众号私信告诉我,您想要的数据集的类型主题。小编会竭尽全力为您寻找,并在找到后第一时间与您分享。 …

Springboot使用webupload大文件分片上传(包含前后端源码)

Springboot使用webupload大文件分片上传(包含源码) 1. 实现效果1.1 分片上传效果图1.2 分片上传技术介绍 2. 分片上传前端实现2.1 什么是WebUploader?功能特点接口说明事件APIHook 机制 2.2 前端代码实现2.2.1(不推荐)…

huggingface_hub LocalEntryNotFoundErroringface

报错详细 LocalEntryNotFoundError: An error happened while trying to locate the file on the Hub and we cannot find the requested files in the local cache. Please check your connection and try again or make sure your Internet connection is on.问题说明 在…

【UML用户指南】-15-对高级结构建模-对象图

目录 1、对象图的组成 2、 对象图和类图关系 3、对对象结构建模 4、逆向工程 5、对象图构建要求 对象图对包含在类图中的事物的实例建模。 对象图显示了在某一时间点上一组对象以及它们之间的关系。 对象图用于对系统的静态设计视图或静态交互视图建模。 对某一时刻的系统…

CentOS7下快速升级至OpenSSH9.7p2安全版本

一、CentOS7服务器上编译生成OpenSSH9.3p2的RPM包 1、编译打包的shell脚本来源于该项目 https://github.com/boypt/openssh-rpms解压zip项目包 unzip openssh-rpms-main.zip -d /opt cd /opt/openssh-rpms-main/ vim pullsrc.sh 修改第23行为source ./version.env 2、sh pull…

人工智能在肿瘤细胞分类中的应用|顶刊速递·24-06-06

小罗碎碎念 推文主题——人工智能在肿瘤细胞分类中的应用。 重点关注 临床方向的同学/老师建议重点关注第四篇&第六篇文章,最近DNA甲基化和蛋白组学与AI的结合,在顶刊中出现的频率很高,建议思考一下能否和自己的课题结合。 工科的同学重…

全网爆火【MBTI人格测试】是如何实现的?

功能介绍 概述 MBTI人格测试是一款基于Agent Builder框架开发的智能体应用,旨在通过五个精心设计的问题准确分析用户的MBTI性格类型。完成测试后,应用将提供详细的性格分析和建议,帮助用户更好地理解自己的性格特点。 功能详述 1. MBTI测试…

RAG实战4-RAG过程中发生了什么?

RAG实战4-RAG过程中发生了什么? 在RAG实战3中我们介绍了如何追踪哪些文档片段被用于检索增强生成,但我们仍不知道RAG过程中到底发生了什么,为什么大模型能够根据检索出的文档片段进行回复?本文将用一个简单的例子来解释前面的问题…

Linux磁盘管理(MBR、分区表、分区、格式化)

目录 1、简单介绍 2、MBR: 2.1、分区表: 2.2、注意: 2.3、编号问题: 2.4、磁盘的命名: 2.5、格式化分区 1、简单介绍 1.1、track:磁道,就是磁盘上同心圆,从外向里&#xff0c…

Imagic: Text-Based Real Image Editing with Diffusion Models

Imagic: Text-Based Real Image Editing with Diffusion Models Bahjat Kawar, Google Research, CVPR23, Paper, Code 1. 前言 在本文中,我们首次展示了将复杂(例如,非刚性)基于文本的语义编辑应用于单个真实图像的能力。例如…

[Redis] Redis Desktop Manager 安装包和连接和创建流程

1. 安装流程就是next,就可以。 2. 分别填写好: Name(自定义,redis这个库展示的名字), Host, Port, Auth(Redis 的连接password) 3. 要勾选上Use SSL Protocol 选项, 4. 连接到redis上,展示不同的database,…

为什么电容两端电压不能突变

我们先从RC延时电路说起吧,图1是最简单的RC延时电路,给一个阶跃的电压信号,电压会变成黄色曲线这个样子,这是为什么呢? 图1 电压跳变后,电源负极电子移动到电容下极板,排斥上极板电子流动到电源…

rtl8723du android5.1 6818 (wifi 部分)(第三部分)

这部分主要就是 应用了。具体的详细框架 在 android4.4 部分写的差不多的。 之前板卡依然是使用的 mt6620 ,所以在移植的过程中,需要把之前的 wifi 的驱动一点一点的去掉。 1 kernel 的修改。 将驱动拷贝到 wireless 下。 修改Kconfig 修改Makefile 2 驱动的Makefile 的修改…

C语言经典指针运算笔试题图文解析

指针运算常常出现在面试题中&#xff0c;画图解决是最好的办法。 题目1&#xff1a; #include <stdio.h> int main() {int a[5] { 1, 2, 3, 4, 5 };int* ptr (int*)(&a 1);printf("%d,%d", *(a 1), *(ptr - 1));return 0; } //程序的结果是什么&…

深度学习 --- stanford cs231 编程作业(assignment1,Q3: softmax classifier)

stanford cs231 编程作业(assignment1&#xff0c;Q3: softmax classifier softmax classifier和svm classifier的assignment绝大多部分都是重复的&#xff0c;这里只捡几个重点。 1&#xff0c;softmax_loss_naive函数&#xff0c;尤其是dW部分 1&#xff0c;1 正向传递 第i张…

银河麒麟v10 sp3编译制作内核rpm包——筑梦之路

环境信息 下载内核源码包 这里下载4.19版本的内核源码包&#xff0c;当前最新为4.19.315 https://cdn.kernel.org/pub/linux/kernel/v4.x/linux-4.19.315.tar.xz 准备编译环境 # 安装编译需要的依赖包yum install rpm-devel rpmdevtools yum groupinstall "Developmen…