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

相关文章

Codeforces Round #113 (Div. 2) B 判断多边形是否在凸包内

题目点击打开链接 凸多边形A, 多边形B, 判断B是否严格在A内。  注意AB有重点 。  将A,B上的点合在一起求凸包,如果凸包上的点是B的某个点,则B肯定不在A内。 或者说B上的某点在凸包的边上则也说明B不严格在A里面。 这个处理有个巧妙的方法,只需在求凸包的时候, <=  改成< 也就是说凸包一条边上的所有点都重复点都记录在凸包里面了。 另外不能去重点。 int

Weex入门教程之4,获取当前全局环境变量和配置信息(屏幕高度、宽度等)

$getConfig() 获取当前全局环境变量和配置信息。 Returns: config (object): 配置对象;bundleUrl (string): bundle 的 url;debug (boolean): 是否是调试模式;env (object): 环境对象; weexVersion (string): Weex sdk 版本;appName (string): 应用名字;

小程序button控件上下边框的显示和隐藏

问题 想使用button自带的loading图标功能,但又不需要button显示边框线 button控件有一条淡灰色的边框,在控件上了样式 border:none; 无法让button边框隐藏 代码如下: <button class="btn">.btn{border:none; /*一般使用这个就是可以去掉边框了*/} 解决方案 发现button控件有一个伪元素(::after

【Godot4.3】多边形的斜线填充效果基础实现

概述 图案(Pattern)填充是一个非常常见的效果。其中又以斜线填充最为简单。本篇就探讨在Godot4.3中如何使用Geometry2D和CanvasItem的绘图函数实现斜线填充效果。 基础思路 Geometry2D类提供了多边形和多边形以及多边形与折线的布尔运算。按照自然的思路,多边形的斜线填充应该属于“多边形与折线的布尔运算”范畴。 第一个问题是如何获得斜线,这条斜线应该满足什么样

我成功在本地打开了Cesium啦!

1首先下载Node.js,我是跟着这篇下载的,https://zhuanlan.zhihu.com/p/77594251,不过这后面的我没弄对Cesium环境配置也没影响。 另外:我看其他推文说,在终端写node -v和npm-v查node和npm的版本可以检测node和npm是否下载成功。 2然后我在CesiumB站官号看的教学视频,跟着下载Cesium源代码。 Cesium基础入门1-零

模拟退火判断一个圆是否可以放在一个多边形内

/*给定n个点的一个多边形,一个圆的半径,判断圆是否可以放在多边形里*//* ***********************************************Author :rabbitCreated Time :2014/7/3 22:46:38File Name :2.cpp**********************************************

利用向量积(叉积)计算三角形的面积和多边形的面积(hdu2036)

开始撸计算几何题目了。。。。。。。 预备知识:叉乘求多边形面积 参考证明资料: 公式证明: http://www.cnblogs.com/xiexinxinlove/p/3708147.html 高中知识: http://wenku.baidu.com/view/867e6edfad51f01dc281f11a.html #include<stdio.h>#inclu

HDU 2036 求多边形面积

题目: http://acm.hdu.edu.cn/showproblem.php?pid=2036 对用(按逆时针排列)描述的多边形,其面积为: 若按顺时针排列,取负数即可。 资料链接: http://zh.wikipedia.org/wiki/%E5%A4%9A%E8%BE%B9%E5%BD%A2 不知道这公式是咋推导的,网上找不到,先留着。 #

GIS圈大事件!Cesium被收购了,是好是坏?

大家好,我是日拱一卒的攻城师不浪,致力于技术与艺术的融合。这是2024年输出的第34/100篇文章。 Cesium开发交流群+V:brown_7778(备注来意) 一觉醒来,突然看到Cesium官方发的消息,宣布通过收购的方式加入Bentley软件公司。 可能小伙伴们对Bentley公司还不是很了解。 Bentley 是数字孪生领域的长期合作伙伴,也是开放生态系统的真正支持者。

Cesium 展示——实现昼夜交替

文章目录 需求分析1. 添加2. 移除 需求 Cesium 展示——实现昼夜交替 分析 1. 添加 <