cesium 多边形加边框宽度 Polygon outlineWidth

2024-06-13 05:04

本文主要是介绍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博客

这篇关于cesium 多边形加边框宽度 Polygon outlineWidth的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



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

相关文章

POLYGON Horror Carnival - Low Poly 3D Art by Synty

465 个独特的预设模型 一个正在运行的摩天轮和旋转木马 包括10个示例脚本,让嘉年华栩栩如生 ◼ 描述◼ 欢迎来到恐怖嘉年华。这个地方曾经有诱人的音乐,现在却有着令人不安的旋律,暗示着其中令人不安的惊喜。 这场险恶的盛会的真正核心在于演示场景。它使用3D低多边形资源构建,具有来自不祥的狂欢帐篷、摊位、摩天轮、旋转木马等游戏开发资源。它是疯狂人物与毫无戒心的寻求刺激者玩捉迷藏游戏的完美狩猎场。

在vue项目中集成cesium

首先创建一个新的vue项目 安装vite中cesium插件 https://github.com/nshen/vite-plugin-cesium 安装插件 npm i cesium vite-plugin-cesium vite -D 配置插件 注释原有样式 修改代码 效果

QML 中宽度、高度与隐式宽度/高度的区别及其应用场景

在 QML 中,width、height 与 implicitWidth、implicitHeight 这几个属性常常令开发者感到困惑。本文将详细介绍它们之间的区别,并说明在何种情况下应使用隐式尺寸以及普通尺寸。 基本定义 width 和 height:表示组件/item 的实际尺寸。implicitWidth 和 implicitHeight:表示组件/item 的自然尺寸,即在未明确指定尺

cesium 包络线

cesium 包络线 以下为源码直接复制可用 1、实现思路 通过turf.js中union方法来计算包络线官方地址:https://turfjs.fenxianglu.cn/ 闪烁线请查看cesium轨迹线(闪烁轨迹线) 2、示例代码 <!DOCTYPE html><html lang="en"&g

CSS盒模型--边框设置:border: 1px solid red(像素 样式 颜色 ),border-bottom:1px dotted #ccc

盒模型--边框(一) 盒子模型的边框就是围绕着内容及补白的线,这条线你可以设置它的粗细、样式和颜色(边框三个属性)。 如下面代码为div来设置边框粗细为2px、样式为实心的、颜色为红色的边框: div{border:2px solid red;} 上面是border代码的缩写形式,可以分开写: div{border-width:2px;border-style:solid;bord

Python使用tkinter制作无边框透明时钟源码讲解(tkinter如何实现窗口无边框透明)

文章目录 📖 介绍 📖🏡 演示环境 🏡📒 文章内容 📒📝 导入必要的库📝 创建主窗口🎯 去掉窗口边框🎯 设置窗口透明度🎯 允许窗口背景透明🎯 设置窗口背景颜色为透明🎯 设置窗口位置🎯 创建用于显示时间的标签 📝 更新时间函数📝 使窗口可移动📝 设置窗口置顶📝 完整代码 ⚓️ 相关链接 ⚓️ 📖 介绍 📖 在项目开发中,有时我们需要创建无边

Cesium总目录

文章目录 Cesium全家桶总目录1 MyCesiumJS Basic1.1 使用Vite搭建开发环境1.2 加载在线瓦片地图数据1.3 加载离线地图数据1.4 加载多种格式外部数据1.5 卫星云图轮播1.6 浏览器控制台查看位置角度 2 MyCesiumJS Pro2.1 空间碎片2.2 变色龙2.3 万家灯火2.4 火星2.5 变色龙II2.6 变色龙III2.7 显示s-57海图 (一

img和span放在同一行并实现宽度随内容而变化

参考实现 min-width 方法:兼容浏览器的min-height和min-width html结构为: css样式为: 显示结果为: 添加 white-space: nowrap; 属性后: 问题解决:

关于DevExpress GridView行头显示行号且根据行号宽度动态自适应显示

GridView的行头号默认没有显示,需要在事件CustomDrawRowIndicator中绘制行头号,行号显示代码如下 void CustomDrawRowIndicator (object sender, RowIndicatorCustomDrawEventArgs e){if (e.RowHandle >= 0){e.Info.DisplayText = (e.RowHandle +

[AIGC] 宽度优先搜索(BFS) 讲解以及在 LeetCode 题中的应用

宽度优先搜索(Breadth-First Search,简称 BFS)是一种用于图或树结构的遍历算法。它以广度方向进行搜索,首先访问根节点,然后访问所有相邻的节点,然后再通过它们的邻居一直进行下去,直到所有的节点都被访问过。 文章目录 BFS 的工作过程BFS 在 LeetCode 中的应用 BFS 的工作过程 BFS 从图的某一节点(称为“源”节点)开始,访问可能