cesium 指定点旋转rectangle entity方式 坐标篇

cesium中rectangle是水平垂直于正北方向的,rectangle的属性中有rotation,但是rotation是以矩形的中心点进行旋转的,旋转过程中矩形的形状可能会变形,如果需要以矩形的顶点为原点进行旋转,可以采用entity的方式添加polygon,并根据顶点重新计算其他三个点的坐标。

用Primitive的方式参考cesium 指定点旋转rectangle Primitive方式 矩阵篇-CSDN博客

一、rectangle属性

二、用entity添加rectangle,设置rotation旋转

let p1 = [113.389, 38.094669];
let p2 = [113.390968, 38.095338];// 添加两个标签,方便看矩形的两个顶点位置viewer.entities.add({position: Cesium.Cartesian3.fromDegrees(...p1),label: {text: '1',},});viewer.entities.add({position: Cesium.Cartesian3.fromDegrees(...p2),label: {text: '2',},});viewer.entities.add({rectangle: {coordinates: Cesium.Rectangle.fromDegrees(...p1, ...p2),rotation: Cesium.Math.toRadians(30), // 以矩形的中心点为原点旋转material: Cesium.Color.fromAlpha(Cesium.Color.RED, 1)},});

三、用entity添加polygon,polygon的四个顶点取自rectangle的四个顶点,实现矩形效果

let polygon = viewer.entities.add({polygon: {hierarchy: Cesium.Cartesian3.fromDegreesArray([...p1,p2[0], p1[1],...p2,p1[0], p2[1]]),material: Cesium.Color.fromAlpha(Cesium.Color.GREEN, 0.9)},});

4、根据步骤3中的polygon,以p1为原点从正北方向顺时针旋转30度,重新计算其他三个点的位置,需要用到tuf

turf中用到的几个方法参考turf rhumbBearing distance destination-CSDN博客

let r = 30; // 以p1为原点,从正北方向顺时针旋转30度
let t1 = turf.point(p1);let t2 = turf.point(p2);let length = turf.distance(t1, t2, { units: 'miles' });let bearing = turf.rhumbBearing(t1, t2);let leny = Math.cos(bearing / 180 * Math.PI) * length;let dest1 = turf.destination(p1, leny, 0 + r, { units: 'miles' })let dest2 = turf.destination(p1, length, bearing + r, { units: 'miles' })let lenx = Math.cos((90 - bearing) / 180 * Math.PI) * length;let dest3 = turf.destination(p1, lenx, 90 + r, { units: 'miles' });// polygon为步骤三中添加的entity
polygon.polygon.hierarchy.setValue(new Cesium.PolygonHierarchy(Cesium.Cartesian3.fromDegreesArray([...p1,...dest1.geometry.coordinates,...dest2.geometry.coordinates,...dest3.geometry.coordinates,])))

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

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

相关文章

2024年外贸行业营销神器推荐

2024年外贸行业营销神器推荐:外贸人每天面对的不是国内客户,而是全球客户,相对于国内来说,会更加麻烦和繁琐,今天就码一篇2024年外贸行业营销神器的推荐文章,希望可以减轻各位外贸人的负担! 1、…

OpenHarmony实战开发-页面深色模式适配。

介绍 本示例介绍在开发应用以适应深色模式时,对于深色和浅色模式的适配方案,采取了多种策略如下: 1. 固定属性适配:对于部分组件的颜色属性,如背景色或字体颜色,若保持不变,可直接设定固定色值…

Matroska解封装原理与实践

本期作者 背景 Matroska是一种开放标准、功能强大的多媒体封装格式,可容纳多种不同类型的视频、音频及字幕流,其常见的文件扩展名为.mkv、.mka等。与应用广泛的MP4相比,Matroska更加灵活开放,可以同时容纳多个字幕,甚至…

29、Lua中的元表与元方法

Lua中的元表与元方法 前言算术类的元方法__tostring元方法如何保护我们的 "奶酪"——元表__index元方法__newindex元方法 前言 Lua中每个值都可具有元表。 元表是普通的Lua表,定义了原始值在某些特定操作下的行为。你可通过在值的原表中设置特定的字段来…

网络协议之 STP生成树协议学习心得

title: STP生成树协议 tags: internet top: true cover: true stp协议的背景 为了解决单点故障的问题,提出冗余的概念,但是又产生了新的问题————环路 表现形式为: (1)MAC地址表抖动 (2)多帧…

C#引用外部组件的常用方法

我们在开发程序过程中,时常会使用到第三方组件,比如一些通信、UI组件等。常用的引用方法有下面几种。 01 NuGet引用 NuGet是.NET的一个包管理平台,很多开源组件会通过NuGet进行管理和发布。比如我们常用的S7NetPlus等。 从NuGet中引用组件…

零基础学Python专栏文章导航站

零基础学Python专栏文章导航站 专栏导读零基础入门篇 专栏导读 本文是零基础学Python的文章导航站。专栏分为零基础入门篇、模块篇、网络爬虫篇、Web开发篇、办公自动化篇、数据分析篇… 为了方便专栏订阅者更方便的阅读专栏文章,点击链接即可跳转到具体文章&#…

Vue的项目文件夹中的<router>指的是什么

在Vue框架搭建的项目中,前端路由主要指的是基于HTML5的history模式或hash模式来实现在不刷新页面的情况下进行页面之间的跳转。这是单页应用(SPA, Single Page Application)中的一个核心概念。 具体来说,前端路由允许我们在不重新…

FL Studio v21.2.3.4004 中文永久版网盘下载(含Key.reg注册表补丁)

软件介绍 FL Studio21水果编曲软件汉化版是一款专业的音乐制作软件,被广泛地应用于电子音乐、hip-hop、流行乐等多种音乐类型的制作。该软件提供了丰富的音频编曲工具和音乐效果器,让用户可以轻松地创作出高品质的音乐作品。同时,这也是一款…

2. Vue Router4 安装和配置

1. 如何安装 Vue Router4 Vue Router4 可以通过 npm 或者 yarn 这样的包管理器进行安装。以下是安装 Vue Router4 的命令: # 使用 npm 安装 npm install vue-router4# 使用 yarn 安装 yarn add vue-router4这些命令会将 Vue Router4 安装到你的项目中,…

(一)Java八股——Redis

1 Redis缓存 1.1 什么是缓存穿透 ? 怎么解决 ?(穿透) ​ 缓存穿透是指查询一个一定不存在的数据,如果从存储层查不到数据则不写入缓存,这将导致这个不存在的数据每次请求都要到 DB 去查询,可能导致 DB 挂掉。这种情…

“我,月薪4500,副业收入2w”:用Python做副业,到底有多赚钱?

现在在年轻人打工的第一目标是什么? 就是:搞钱!搞钱!搞钱! 但赚钱谈何容易,很多人工作只有一点“死”工资,每月再扣除房租水电、花呗信用卡的钱,能用的钱真的不多了,更…

Linux yum搭建Keepalived,2 台机器都有虚拟 IP 问题

文章目录 Keepalived 搭建一、安装二、keepalived配置1、配置文件详解global_defs模块参数vrrp_instance模块参数vrrp_script模块参数 2、修改配置文件3、启动服务 Tips:1️⃣问题:两台机器上面都有VIP的情况2️⃣完整配置文件 Keepalived 搭建 服务IP服务器Keepal…

van-uploader 在app内嵌的webview中的一些坑

问题: 部分版本在ios 中没有问题,但是安卓中不触发图片选择和拍照(之前是可以的,可能是没有锁定版本,重新发版导致的)。在ios中下拉文案是英文,html配置lang等于 zh 也没有用,ios里…

Linux实现cp指令(4.14)

参数&#xff1a;argc是参数总个数 argv是数组的指针&#xff0c;例如argv[0]是cp&#xff0c;argv[1]是src.c&#xff0c;argv[2]是dec.c。 思路&#xff1a; 打开src.c读src.c到buf打开/创建desc.c将buf写入des.cclose两个文件 #include <sys/types.h> #include <…

有依赖的的动态规划问题

题目 题型分析 这是比较典型的动态规划的问题。动态规划是什么呢&#xff1f;本质上动态规划是对递归的优化。例如&#xff0c;兔子数列&#xff1a;f(x) f(x - 1) f(x -2), 我们知道 f 代表了计算公式&#xff0c;这里解放思想一下&#xff0c;如果 f 替换为数组&#xff0…

信息系统项目管理师——成本管理计算专题(一)

常见考点如下: ①问项目预算、BAC、成本基准、应急储备、管理储备的含义及它们之间的区别 ②给出成本基准和管理储备求项目预算&#xff0c;或者给出预算求成本基准等等 ③看图找 PV、AC、EV、SV、CV、BAC、EAC、ETC等 ④根据题干求项目的PV、AC、EV、SV、CV、BAC、EAC、ETC等 …

k8s高可用集群部署介绍 -- 理论

部署官网参考文档 负载均衡参考 官网两种部署模式拓扑图和介绍 介绍两种高可用模式 堆叠 拓扑图如下&#xff08;图片来自k8s官网&#xff09;&#xff1a; 特点&#xff1a;将etcd数据库作为控制平台的一员&#xff0c;由于etcd的共识算法&#xff0c;所以集群最少为3个&…

产业园区综合计费解决方案/预付费系统/用户侧能源计量及收费/无人值守远程抄表收费

安科瑞薛瑶瑶18701709087 园区管理的难点 ◆计费方式多样&#xff1a;园区类型多样&#xff0c;计费逻辑存在多样&#xff0c;工业电价、商业电价、两部制电价等 ◆缴费方式多样&#xff1a;租户性质不同&#xff0c;存在公对公&#xff0c;私对公&#xff0c;线下支付&…

Spring-AI-上下文记忆

引入依赖 pom文件 <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/POM/4.0.0" xmlns:xsi"http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation"http://maven.apache.org/P…