当前位置: 首页 > news >正文

cesium学习记录04-坐标系

一、地理坐标系和投影坐标系的关系

地理坐标系 (Geographic Coordinate System, GCS)

定义:地理坐标系是一个基于三维地球表面的坐标系统。它使用经度和纬度来表示地点的位置。
特点:
使用经纬度来定义位置。
基于特定的地球参考椭球体。
适用于全球范围的数据表示。
主要问题:由于地球是一个椭球体,直接使用经纬度坐标计算距离、面积或方向会产生误差。

投影坐标系 (Projected Coordinate System, PCS)

定义:投影坐标系是一个基于二维平面的坐标系统。它是通过将地球(或其部分)投影到一个平面上来得到的。
特点:
使用X和Y坐标(在平面上)来定义位置。
能够直接计算距离、面积和方向,因为它是在二维平面上。
所有的投影都会有某种形式的扭曲,无法完美地将地球的三维表面表示在二维平面上。
主要用途:适用于地图制作和本地/区域空间分析。

它们之间的关系:

投影是一个过程,通过它,地理坐标系(GCS)中的数据(经纬度)可以转换为投影坐标系(PCS)中的数据(X, Y坐标)。反之亦然。
由于地球是一个椭球体(或近似为一个凸形的物体),我们不能直接将其完美地展平到二维平面上。因此,当我们进行投影时,必然会引入一些扭曲。根据具体的投影方法,这种扭曲可能影响到面积、形状、距离或方向(也有属性不发生改变,故有等角、等积、任意投影)。
在 GIS 中,经常需要在这两种坐标系统之间进行转换,当我们将地理空间数据从一个坐标系转换到另一个坐标系时,我们通常说是在执行"坐标转换"或"坐标投影"。。

二、中国常用坐标系及EPSG代码:

(1)CGCS2000 地理坐标系:

EPSG:4490

(2)CGCS2000 3度带 Gauss-Kruger 投影:

东经 75° - EPSG:4501
东经 78° - EPSG:4502
…(依此类推,每隔3°一个投影带,直到东经 132° - EPSG:4543)

(3)CGCS2000 6度带 Gauss-Kruger 投影:

东经 75° - EPSG:4544
东经 81° - EPSG:4545
…(依此类推,每隔6°一个投影带)

(4)北京1954 地理坐标系:

EPSG:4214

(5)北京1954 3度带 Gauss-Kruger 投影:

东经 75° - EPSG:2421
东经 78° - EPSG:2422
…(依此类推,每隔3°一个投影带)

(6)WGS 84 地理坐标系:

EPSG:4326
这个是一个全球通用的坐标系,通常被 GPS 和许多国际数据集所采用。

(7)WGS 84 / Pseudo-Mercator:

EPSG:3857
这个是 Web Mercator 投影,主要被 Web 地图(如 Google Maps, Bing Maps)使用。

(8)Xian 1980 地理坐标系:

EPSG:4610
用于某些特定区域的数据。

其它坐标系代码查询

三、坐标转换

这里使用epsg网站在线转换举例说明
在这里插入图片描述
坐标由WGS 84 地理坐标系转换为WGS 84 / 伪墨卡托投影坐标系

四、cesium中的坐标系知识及坐标转换

1,坐标系1.1,屏幕坐标系屏幕坐标系即二维笛卡尔坐标系,Cesium中使用Cartesian2来描述,原点在屏幕左上角,x轴向右,y轴向下,单位为像素。1.2,笛卡尔空间直角坐标系笛卡尔空间直角坐标系即三维笛卡尔坐标系,Cesium中使用Cartesian3来描述,原点在地球中心,x轴向东,y轴向北,z轴向上,单位为米。1.3,WGS84地理坐标系WGS84地理坐标系即经纬度坐标系,在表示经纬度时有度数制和弧度制两种,Cesium中使用Cartographic来描述弧度制的WGS84坐标系,原点在地球中心,x轴向东,y轴向北,z轴向上。1.4,WebGL坐标系WebGL坐标系即WebGL空间直角坐标系,Cesium中使用Cartesian4来描述,原点在地球中心,x轴向东,y轴向北,z轴向上,w轴向外,单位为米。2,坐标转换2.1,角度与弧度互转角度转弧度:let radians=Cesium.Math.toRadians(degrees)弧度转角度:let degrees=Cesium.Math.toDegrees(radians)2.2,WGS84(经纬度)与笛卡尔坐标(Cartesian3)互转WGS84转Cartesian3:(1)  直接通过经纬度转换(1).1 let cartesian3=Cesium.Cartesian3.fromDegrees(longitude,latitude,height); 格式:[113.21, 25.61, 100.0],高度默认为0,可以不写(1).2 let cartesian3s = Cesium.Cartesian3.fromDegreesArray(coordinates); 格式:[113.21, 25.61, 113.54, 25.24],不带高度格式的数组(1).3 let cartesian3s = Cesium.Cartesian3.fromDegreesArrayHeights(coordinates); 格式:[113.21, 25.61, 100.0, 113.54, 25.24, 200.0],带高度格式的数组弧度制也类似,使用Cesium.Cartesian3.fromRadians, Cesium.Cartesian3.fromRadiansArray, Cesium.Cartesian3.fromRadiansArrayHeights(2)  使用椭球体转换let position=Cesium.Cartographic.fromDegrees(longitude,latitude,height);(2).1 let cartesian3=Cesium.Ellipsoid.WGS84.cartographicToCartesian(position); 单个坐标(2).2 let cartesian3s=Cesium.Ellipsoid.WGS84.cartographicArrayToCartesianArray(positions); 坐标数组Cartesian3转WGS84(1)  直接转换let cartographic=Cesium.Cartographic.fromCartesian(cartesian3);  直接转换得到的是WGS84弧度制的经纬度坐标,可将其再转换为角度制(2)  使用椭球体转换(2).1 let cartographic=Cesium.Ellipsoid.WGS84.cartesianToCartographic(cartesian3);  单个坐标(2).2 let cartographics=Cesium.Ellipsoid.WGS84.cartesianArrayToCartographicArray(cartesian3s);  坐标数组2.3 屏幕坐标与笛卡尔坐标互转屏幕坐标转笛卡尔坐标(Cartesian2转Cartesian3)(1) 屏幕坐标转椭球面笛卡尔坐标,不包含地形、模型等的坐标let cartesian3=viewer.scene.camera.pickEllipsoid(cartesian2);(2) 屏幕坐标转场景坐标,包含地形和模型等的场景坐标let cartesian3=viewer.scene.pickPosition(cartesian2);(3) 屏幕坐标转地表笛卡尔空间坐标,通过相机与屏幕点位连线来求取坐标let ray=viewer.camera.getPickRay(cartesian2);let cartesian3=globe.pick(ray,viewer.scene);笛卡尔坐标转屏幕坐标(Cartesian3转Cartesian2)let cartesian2=Cesium.SceneTransforms.wgs84ToWindowCoordinates(viewer.scene,cartesian3);

相关文章:

cesium学习记录04-坐标系

一、地理坐标系和投影坐标系的关系 地理坐标系 (Geographic Coordinate System, GCS) 定义:地理坐标系是一个基于三维地球表面的坐标系统。它使用经度和纬度来表示地点的位置。 特点: 使用经纬度来定义位置。 基于特定的地球参考椭球体。 适用于全球范…...

P5737 【深基7.例3】闰年展示

题目描述 输入 x , y x,y x,y,输出 [ x , y ] [x,y] [x,y] 区间中闰年个数,并在下一行输出所有闰年年份数字,使用空格隔开。 输入格式 输入两个正整数 x , y x,y x,y,以空格隔开。 输出格式 第一行输出一个正整数&#xf…...

Nacos的安装使用教程Linux

在 Linux 操作系统上安装和使用 Nacos 与 Windows 类似,以下是详细的步骤教程。我们将使用 Nacos 的 Standalone 模式进行安装和使用。请注意,对于生产环境,建议使用集群模式来实现高可用性和可扩展性。 步骤 1:准备环境 Java 安…...

数据结构-学习

参考: 数据结构-学习笔记_蓝净云_蓝净云的博客-CSDN博客...

【MFC】05.MFC六大机制:程序启动机制-笔记

MFC程序开发所谓是非常简单,但是对于我们逆向人员来说,如果想要逆向MFC程序,那么我们就必须了解它背后的机制,这样我们才能够清晰地逆向出MFC程序,今天这篇文章就来带领大家了解MFC的第一大机制:程序启动机…...

Von Maur, Inc EDI 需求分析

Von Maur, Inc 是一家历史悠久的卖场,成立于19世纪,总部位于美国。作为一家知名的零售商,Von Maur 主要经营高端时装、家居用品和美妆产品。其使命是为顾客提供优质的产品和无与伦比的购物体验。多年来,Von Maur 凭借其卓越的服务…...

[深度学习入门]PyTorch深度学习[Numpy基础](上)

目录 一、前言二、Numpy概述三、生成Numpy数组3.1 从已有数据中创建数组3.2 利用random模块生成数组3.3 创建特定形状的多维数组3.4 利用arange和linspace函数生成数组 四、获取元素五、Numpy的算术运算5.1 对应元素相乘5.2 点积运算 六、后记 本文的目标受众: 对机…...

Excel vost 实现照光灯效果

如果你想要在 VSTO(Visual Studio Tools for Office)中实现在 Excel 中添加“照光灯”效果,你需要创建一个 VSTO 插件来实现这个功能。照光灯效果通常是指通过将非活动行或列进行高亮显示,以便更清楚地查看某一行或列的内容。以下…...

IntelliJ中文乱码问题

1、控制台乱码 运行时控制台输出的中文为乱码,解决方法:帮助 > 编辑自定义虚拟机选项… > 此时会自动创建出一个新文件,输入:-Dfile.encodingUTF-8,然后重启IDE即可,操作截图如下: 2、…...

【C++】红黑树模拟实现插入功能(包含旋转和变色)

红黑树模拟实现并封装为map和set 前言正式开始红黑树概念红黑树基本要求大致框架树节点树 调整红黑树使其平衡第一种:cur红,p红,g黑,u存在且为红第二种:cur红,p红,g黑,u不存在或为黑…...

Pads输出器件坐标文件时,如何更改器件坐标精度

相信对于用pads软件的工程师么,在完成PCB设计的时候都需要输出生产文件给板厂和贴片厂,今天我们需要给大家介绍的是如何在在pads软件上面输出器件坐标文件以及如何更改器件坐标文件的精度。 首先我们需要点击工具-基本脚本-基本脚本接下来会跳到下面这个…...

Vuejs3父组传值给子组件

父组件代码 <script setup> import TextProps from ./components/TextProps.vue; import { reactive } from vue;const queryobj reactive({"a":1, "b":1}); const aryobj reactive([1,2,3]);</script><template><div class"…...

竞赛项目 深度学习的智能中文对话问答机器人

文章目录 0 简介1 项目架构2 项目的主要过程2.1 数据清洗、预处理2.2 分桶2.3 训练 3 项目的整体结构4 重要的API4.1 LSTM cells部分&#xff1a;4.2 损失函数&#xff1a;4.3 搭建seq2seq框架&#xff1a;4.4 测试部分&#xff1a;4.5 评价NLP测试效果&#xff1a;4.6 梯度截断…...

【剑指 の 精选】热门状态机 DP 运用题

题目描述 这是 LeetCode 上的 「剑指 Offer II 091. 粉刷房子」 &#xff0c;难度为 「中等」。 Tag : 「状态机 DP」、「动态规划」 假如有一排房子&#xff0c;共 n 个&#xff0c;每个房子可以被粉刷成红色、蓝色或者绿色这三种颜色中的一种&#xff0c;你需要粉刷所有的房子…...

自动化实践-全量Json对比在技改需求提效实践

1 背景 随着自动化测试左移实践深入&#xff0c;越来越多不同类型的需求开始用自动化测试左移来实践&#xff0c;在实践的过程中也有了新的提效诉求&#xff0c;比如技改类的服务拆分项目或者BC流量拆分的项目&#xff0c;在实践过程中&#xff0c;这类需求会期望不同染色环境…...

【Matlab】PSO优化(单隐层)BP神经网络

上一篇博客介绍了BP-GA&#xff1a;BP神经网络遗传算法(BP-GA)函数极值寻优——非线性函数求极值&#xff0c;本篇博客将介绍用PSO&#xff08;粒子群优化算法&#xff09;优化BP神经网络。 1.优化思路 BP神经网络的隐藏节点通常由重复的前向传递和反向传播的方式来决定&#…...

创建型模式-原型模式

文章目录 一、原型模式1. 概述2. 结构3. 实现4. 案例1.5 使用场景1.6 扩展&#xff08;深克隆&#xff09; 一、原型模式 1. 概述 用一个已经创建的实例作为原型&#xff0c;通过复制该原型对象来创建一个和原型对象相同的新对象。 2. 结构 原型模式包含如下角色&#xff1a; …...

JS逆向系列之猿人学爬虫第11题 - app抓取 - so文件协议破解

题目地址 http://match.yuanrenxue.com/match/11这是个app题目,先下载下来安装到测试手机上 安装完成后的app界面长这样 打开之后是这样的: 要求已经简单明了了。 二话不说先反编译app 不出意外的是没出意外,源代码里面没啥混淆,所有东西都展示的明明白白的。 "…...

c基础扫雷

和三子棋一样&#xff0c;主函数先设计游戏菜单界面&#xff0c;这里就不做展示了。 初始化棋盘 初级扫雷大小为9*9的棋盘&#xff0c;但排雷是周围一圈进行排雷(8格)&#xff0c;而边界可能会越界。数组扩大了一圈,行和列都加了2&#xff0c;所以我们用一个11*11的数组来初始化…...

端点中心(Endpoint Central)的软件许可证管理

软件许可证管理 &#xff08;SLM&#xff09; 是从单个控制台管理整个组织中使用的软件许可证的过程。软件许可证是由软件发行商或分销商制作的法律文件&#xff0c;提供有关软件使用和分发的规则和指南&#xff0c;本文档通常包含条款和条件、限制和免责声明。 软件许可证管理…...

大话软工笔记—需求分析概述

需求分析&#xff0c;就是要对需求调研收集到的资料信息逐个地进行拆分、研究&#xff0c;从大量的不确定“需求”中确定出哪些需求最终要转换为确定的“功能需求”。 需求分析的作用非常重要&#xff0c;后续设计的依据主要来自于需求分析的成果&#xff0c;包括: 项目的目的…...

解决Ubuntu22.04 VMware失败的问题 ubuntu入门之二十八

现象1 打开VMware失败 Ubuntu升级之后打开VMware上报需要安装vmmon和vmnet&#xff0c;点击确认后如下提示 最终上报fail 解决方法 内核升级导致&#xff0c;需要在新内核下重新下载编译安装 查看版本 $ vmware -v VMware Workstation 17.5.1 build-23298084$ lsb_release…...

智能仓储的未来:自动化、AI与数据分析如何重塑物流中心

当仓库学会“思考”&#xff0c;物流的终极形态正在诞生 想象这样的场景&#xff1a; 凌晨3点&#xff0c;某物流中心灯火通明却空无一人。AGV机器人集群根据实时订单动态规划路径&#xff1b;AI视觉系统在0.1秒内扫描包裹信息&#xff1b;数字孪生平台正模拟次日峰值流量压力…...

安宝特方案丨船舶智造的“AR+AI+作业标准化管理解决方案”(装配)

船舶制造装配管理现状&#xff1a;装配工作依赖人工经验&#xff0c;装配工人凭借长期实践积累的操作技巧完成零部件组装。企业通常制定了装配作业指导书&#xff0c;但在实际执行中&#xff0c;工人对指导书的理解和遵循程度参差不齐。 船舶装配过程中的挑战与需求 挑战 (1…...

【 java 虚拟机知识 第一篇 】

目录 1.内存模型 1.1.JVM内存模型的介绍 1.2.堆和栈的区别 1.3.栈的存储细节 1.4.堆的部分 1.5.程序计数器的作用 1.6.方法区的内容 1.7.字符串池 1.8.引用类型 1.9.内存泄漏与内存溢出 1.10.会出现内存溢出的结构 1.内存模型 1.1.JVM内存模型的介绍 内存模型主要分…...

tomcat入门

1 tomcat 是什么 apache开发的web服务器可以为java web程序提供运行环境tomcat是一款高效&#xff0c;稳定&#xff0c;易于使用的web服务器tomcathttp服务器Servlet服务器 2 tomcat 目录介绍 -bin #存放tomcat的脚本 -conf #存放tomcat的配置文件 ---catalina.policy #to…...

绕过 Xcode?使用 Appuploader和主流工具实现 iOS 上架自动化

iOS 应用的发布流程一直是开发链路中最“苹果味”的环节&#xff1a;强依赖 Xcode、必须使用 macOS、各种证书和描述文件配置……对很多跨平台开发者来说&#xff0c;这一套流程并不友好。 特别是当你的项目主要在 Windows 或 Linux 下开发&#xff08;例如 Flutter、React Na…...

Vue3 PC端 UI组件库我更推荐Naive UI

一、Vue3生态现状与UI库选择的重要性 随着Vue3的稳定发布和Composition API的广泛采用&#xff0c;前端开发者面临着UI组件库的重新选择。一个好的UI库不仅能提升开发效率&#xff0c;还能确保项目的长期可维护性。本文将对比三大主流Vue3 UI库&#xff08;Naive UI、Element …...

命令行关闭Windows防火墙

命令行关闭Windows防火墙 引言一、防火墙:被低估的"智能安检员"二、优先尝试!90%问题无需关闭防火墙方案1:程序白名单(解决软件误拦截)方案2:开放特定端口(解决网游/开发端口不通)三、命令行极速关闭方案方法一:PowerShell(推荐Win10/11)​方法二:CMD命令…...

leetcode73-矩阵置零

leetcode 73 思路 记录 0 元素的位置&#xff1a;遍历整个矩阵&#xff0c;找出所有值为 0 的元素&#xff0c;并将它们的坐标记录在数组zeroPosition中置零操作&#xff1a;遍历记录的所有 0 元素位置&#xff0c;将每个位置对应的行和列的所有元素置为 0 具体步骤 初始化…...