cesium坐标系转换:经纬度地理坐标系 弧度地理坐标系 笛卡尔坐标 屏幕坐标之间的相互转换

news2024/11/27 13:43:55

参考了网上资料

核心就是  cesium 计算的地理数据用弧度坐标系表示(很多公式计算出来的是弧度结果),我们采集的数据是经纬度表示的(即我们正常的经纬度),围绕着cesium球体展示的用笛卡尔坐标系计算的其方位的(各种附着物的摆放位置和方向)!

cesium  最直接的核心就是  经纬度可以转弧度地理坐标,弧度地理坐标可转笛卡尔坐标,笛卡尔坐标可转屏幕坐标或者二维的笛卡尔坐标,反之,也可以转化回去!

在这里插入图片描述

经纬度坐标

在这里插入图片描述

弧度坐标

笛卡尔坐标

1.经纬度转换为世界坐标(即所谓的笛卡尔坐标系)

第一种方式:直接转换:
Cesium.Cartesian3.fromDegrees(longitude, latitude, height, ellipsoid, result) 

第二种方式:先转换成弧度再转换
var ellipsoid = viewer.scene.globe.ellipsoid;
var cartographic = Cesium.Cartographic.fromDegrees(lng,lat,alt);
var cartesian3 = ellipsoid.cartographicToCartesian(cartographic);

2.世界坐标(即所谓的笛卡尔坐标系)转换为经纬度

var ellipsoid = viewer.scene.globe.ellipsoid;
var cartesian3 = new Cesium.cartesian3(x,y,z);
var cartographic = ellipsoid.cartesianToCartographic(cartesian3);
var lat = Cesium.Math.toDegrees(cartograhphic.latitude);
var lng = Cesium.Math.toDegrees(cartograhpinc.longitude);
var alt = cartographic.height;

 3.弧度和经纬度之间的相互转换

经纬度转弧度:
Cesium.CesiumMath.toRadians(degrees) 
弧度转经纬度:
Cesium.CesiumMath.toDegrees(radians) 

4.屏幕坐标和世界坐标(即所谓的笛卡尔坐标系)相互转换

屏幕转世界坐标:
var pick1= new Cesium.Cartesian2(0,0);
var cartesian = viewer.scene.globe.pick(viewer.camera.getPickRay(pick1),viewer.scene);    
注意这里屏幕坐标一定要在球上,否则生成出的cartesian对象是undefined

世界坐标转屏幕坐标
Cesium.SceneTransforms.wgs84ToWindowCoordinates(scene, Cartesian3);
结果是Cartesian2对象,取出X,Y即为屏幕坐标。
//世界坐标-->屏幕坐标(窗口坐标)
		function cartesianToPick() {
		  var x = -2735245.093986791;
		  var y = 5125869.0825061;
		  var z = 2622627.7980361506;
		  var cartesian3 = new Cesium.Cartesian3(x, y, z);
		  var pick = Cesium.SceneTransforms.wgs84ToWindowCoordinates(viewer.scene, cartesian3);
		  console.log("世界坐标:"+x+","+y+","+z);
		  console.log("世界坐标-->屏幕坐标");
		  console.log("屏幕坐标::"+pick);
		}
		//屏幕坐标-->世界坐标
		function pickToCartesian(){
		  var pick= new Cesium.Cartesian2(252,377);
		  var cartesian = viewer.scene.globe.pick(viewer.camera.getPickRay(pick), viewer.scene);
		  console.log("屏幕坐标::"+pick);
		  console.log("屏幕坐标-->世界坐标:");
		  console.log("世界坐标:"+cartesian);
		}

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

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

相关文章

5月新刊 | MDPI版面费将全面上涨,还有哪些期刊可投?(新增多领域高性价比新刊, 含CCF-B/SSCI/EI)~

近期MDPI官方发布消息称,MDPI出版社旗下期刊的OA论文处理费 (APC), 价格将在2023年6月底上涨,超过90种OA期刊的APC涨幅在200-1200瑞士法郎 (折合人民币1560元-9300元)。 在MDPI出版的OA期刊中,有5种期刊处于2022年中国通迅作者发表OA论文数量…

junit如何在多模块项目中使用

文章目录 前言一、最简单的单元测试二、springboot多模块测试单元1.问题2.解决 总结 前言 相信后端的小伙伴对于junit测试应该不陌生,当我们写好了一些功能之后,由于不太放心是否会出现问题,我们会选择自测; 第一种 通过类似postman之类的,直接走接口测试第二种 由于构造数据…

Halcon 找到产品上 圆圈中的7个点

文章目录 1 关键实现环节演示2 完整代码 及 原图文章目录 1 关键实现环节演示2 完整代码 及 原图找到下图 圆圈中的7个点; 思路: 先找到圆圈外面的矩形, 再找到里面的圆圈, 最后找到圆圈里面的 圆点 1 关键实现环节演示 二值化 阈值分割止 之后,打散, read_image (im…

很多博主用Markdown格式文章?直呼真不错!

概述 Markdown 是一种轻量级标记语言,它可以使我们专注于写作内容,而不用过多关注排版,很多博主、作家等都用它来撰写文章~ 本文将给各位小伙伴介绍 Markdown 语法的使用,本篇文章索奇就是用的纯 markdown 语法来写的~ 标题 一级…

EKMA曲线绘制、MCM箱模型应用与O3形成途径、生成潜势、敏感性分析

目录 EKMA曲线及大气O3来源解析 MCM箱模型实践技术应用与O3形成途径、生成潜势、敏感性分析 一、 大气中O3形成知识基础、MCM和Atchem2原理及Linux系统安装 二、 MCM建模、数据输入、模型运行及结果输出 【讲解案例操作】 三、 O3形成途径、生成潜势及其敏感性分析 【讲解…

2023 谷歌I/O发布会新AI,PALM 2模型要反超GPT-4,一雪前耻!

文章目录 1 前言2 Google I/O 发布者大会3 PaLM 2模型3 Bard项目4 其他AI工具4.1 AI 图片编辑 Magic Editor4.2 Duet AI 办公4.3 Universal Translator 翻译工具4.4 Google 沉浸式导航4.5 Google 搜索引擎 5 讨论 1 前言 每年必看两大会,苹果发布会和谷歌发布会&am…

搭建AI虚拟数字人是一项复杂的任务,需要掌握多个技术领域的知识,包括机器学习、自然语言处理、计算机图形学等。

搭建AI虚拟数字人是一项复杂的任务,需要掌握多个技术领域的知识,包括机器学习、自然语言处理、计算机图形学等。以下是搭建AI虚拟数字人的一般步骤: 确定需求和功能:首先需要确定虚拟数字人的用途和需要实现的功能,例…

精心设计的ChatGPT网页版源码最聪明的镜像ChatGPT

demo软件园每日更新资源,请看到最后就能获取你想要的: 1.精心设计的 ChatGPT网页版源码 最聪明的镜像ChatGPT ChatGPT网页版源码 最聪明的镜像ChatGPT 支持GPT3.5turbo以及GPT4.0turbo的各种版本模型 精心设计的 UI,响应式设计,支持深色模式 极快的首…

【LeetCode】932. 漂亮数组

932. 漂亮数组(中等) 解法一:分治法 重点 这里给出两个定理: 如果 X,Y,Z 是漂亮数组,则 k * X b, k * Y b, k * Z b 一定也是漂亮数组;奇数 偶数 奇数。 因此不难证明,如果 2 * Y ≠ X…

vue+elementui写了一个图书管理系统

用vueelementui写了一个图书管理系统 转载自公号:java大师 目前是指一个纯前端的展示,后端还在开发中,前端接口是通过json-server模拟的 用到的技术栈 1、vue.js 2、elementui 3、json-server 4、axios 5、vue-router 动态路由 目录结构…

Java每日一练(20230511) 有效数字、重复元素II、类和子类

目录 1. 有效数字 🌟🌟🌟 2. 存在重复元素 II 🌟🌟 3. 设计学生类Student和它的一个子类Undergraduate 🌟 🌟 每日一练刷题专栏 🌟 Golang每日一练 专栏 Python每日一练 专…

基于postgresql传统数据仓库搭建

目录 概述数仓选型对比当前数仓架构问题解决方案 架构设计数据仓库设计命名规范模型设计 PostgreSQL的安装数据仓库的建立创建数据库创建用户组创建用户用户加入到用户组创建模式模式授权用户收回函数的执行权限公开表的select权限动态sql函数集中处理函数 fdw实现数据抽取安装…

ChatGPT与Discord无缝接入指南,获取你的专属聊天机器人

ChatGPT与Discord无缝接入指南,获取你的专属聊天机器人 一、获取OpenAI API密钥。二、获取Discord Token三、注册GitHub,有账号的可以直接登录。四、在线开发环境搭建Replit五、注册cron-job.org本教程收集于: AIGC从入门到精通教程 ChatGPT和Discord都非常流行,而在Disco…

基于RK3588s人工智能大算力多网口工业网关交换机,可接5路千兆高清相机

RK3588/RK3588S AI BOX 功能接口说明 接口需求 功能定义与要求 备注 成本与目标 硬件设计争取全国产化, 632GB 版本 RK3588S PCBA 尺寸 146*102 丝印版本号 RK3588S AI BOX V1.0 EMMC 支持 SanDisk SDINBDA4-32/64/128G 4G-8GB 标配 8GB …

tensorboard如何使用

神经网络本身比较难理解,看起来很神秘,所以我们可以借助可视化根据tensorboard关注神经网络的运行过程,其中包括了各项数据指标以及神经网络自身的图结构。 TensorBoard 是 TensorFlow 的可视化工具,可以帮助用户更好地理解和调试…

【Linux】项目自动化构建工具make/makefile

🏖️作者:malloc不出对象 ⛺专栏:Linux的学习之路 👦个人简介:一名双非本科院校大二在读的科班编程菜鸟,努力编程只为赶上各位大佬的步伐🙈🙈 目录 前言一、make/makefile的背景二、…

00后卷起来,真没我们老油条什么事了···

都说00后躺平了,但是有一说一,该卷的还是卷。 这不,前段时间我们公司来了个00后,工作没两年,跳槽到我们公司起薪20K,都快接近我了。后来才知道人家是个卷王,从早干到晚就差搬张床到工位睡觉了。…

Android 中你碰不到但是很重要的类之ActivityThread

作者:Drummor 通过本文能了解一下内容 1、和系统进程打交道的桥头堡 应用进程起来之后ART(Android Runtime)第一站就是ActivityThread,代码层面上就是ActivityThread的main()方法,是不是很熟悉,爷青回啊,这不就是java…

基于深度学习的动物识别系统的实现

项目介绍 动物识别系统,使用Python作为主要开发语言,基于深度学习TensorFlow框架,搭建卷积神经网络算法。并通过对18种动物数据集进行训练,最后得到一个识别精度较高的模型。并基于Django框架,开发网页端操作平台&…

数据分析师 ---- SQL强化(3)

数据分析师 ---- SQL强化(3) 题目:每个月Top3的周杰伦歌曲 从听歌流水中找到18-25岁用户在2022年每个月播放次数top 3的周杰伦的歌曲 输入例子: drop table if exists play_log; create table play_log (fdate date,user_id int,song_id int ); inser…