Cesium JS 椭球切平面计算

2024-02-29

Problem

我对铯如何计算大地测量和地心表面法线有点困惑。根据计算法线生成的平面实际上并不与给定点的椭球面相切,而且,根据大地表面法线创建的平面与根据地心表面法线生成的平面完全相同。

示例以及为什么我需要这个

In this 沙堡 https://sandcastle.cesium.com/#c=vVXbbtswDP0VIU8OYChttwFDmhbrvHQtml7QZOtLgEG1mUSoLBmSnLYb8u+jfIkvdYJhwOY8xCJ5DkXqUF4zTdYcnkGTEyLhmQRgeBrT75nNm/fCbB0oaRmXoOe9/vFcut8akSsmI9GGTkMNIKcJC2G8Bmkv8iAvT0NDhlDjWAo0NWAvZZLas9ByJb1FKvMXcOg++TWXBB+XL1FcWsxWUJkQJNCEh093yvAKQ5Ni6bKUWKuZNAulY8QXO52VJkOBGXujtF19S2bqnL9AdK5ZDF6WcUvTSKt5jEnWYCiLIq/WgC/wmC6vVQTimlnNX+7KSK8oxT1x5SfDanM+IYMB2XITq0jk6CqgALm0K8QcHriHHviV75lHmeuIHpTGTb/ehFAJpasGBG5JF1rF93gWKvZalWIvcRtFhbXNl/0d5ifi1z24HpJabGbFhoop/wlu137TtwK+XNl7WIAGGWJEsbeLpp3e3N6MW1CVWoGifHBVY9E+abrzYof5v5Ns6dgUPJt6a5aAJ2J5iCqImah6NBaCJ0bxiD58nX58T8u4aaoXKPE8PNeJXx+DgGmLb0y+8/qtPKgfPPc/yVREdubal2xXWXeCSWiOa2bymmE+QV3t2/Q+nkZgk+mvVeW436oqt3ZU2NJJxGOQBpnNsLNpR952lrZT1W9xxMyC5kwUcvJ36ukfl/r2GP5LsR1j526tFLp92cUybF4znydnwdWeCcZJ/bCzp3O58Xd9YGavCdDJ+Hz2I5hcBlf9457fGxn7KuC05PvE4wRvd5Jq4VE6sBBjR7Efg8c0fAJLQ2NKkY4Gdego4mvCo5OODyEJBTMGPYtUZJfbvHc6GmD8G6hQLOJyebsGLdirC1sdnk5yI6V0NMBlN9IqJR6ZbjH/Bg当您单击地球表面时,将绘制 XYZ 轴以及应与椭球体相切的平面。

我需要的是在给定点获得与椭球体相切的 XY 平面,然后将其他点投影到该平面上。问题是,正如我所见,飞机根本不与椭球体相切。

顺便说一句 - 当我使用内置方法时:Cesium.EllipsoidTangentPlane();我还得到了奇怪的结果 - 平面仍然不与椭球体相切,并且还漂浮在太空中的某个地方。这是沙堡 https://sandcastle.cesium.com/#c=nVRdb9owFP0rFk9BihzaR0rRpgzUapSiwrYXpMnYl2DVsSPbCWUT/712PpaQ0pc5D/h+nHPvPbmkIBoVHI6g0T2ScEQxGJ6n+GfpC7YDWtqxkpZwCXo7GN5tpX8KhzwQyUQfuqYaQK4zQmFWgLQPVVJQlcGUOKjxLDUaG7CPMsvtV2q5ksE+l9UFPHqI/m4lcsfXyxSX1lWrqQwFCTjj9HWlDG8xOKtNX8VjqZJGCcBCJUHJ0QQ8qdVEmr3SqSOuR9g0LoOBGLtU2h5+ZBs152/A5pqk0KO56Efz1FUvwGDCWNBR5hvs8uRJMRBPxGr+tmoyg3pGf9I2jsZtcyFCUYT+cSOrEPN0LVCATOzBYW5G/uBR2MaOnJWhWzxqnOdhVwSqhNKtALE38V6r9MW9JJUGvUmdyK6NesJO843w4+pVhd2Is8eok1t6naBizf+A7zq8jB2AJwf7AnvQIKnLqHt7uPTj5fNy1oOq3Aq3rb/81G7oEF2Gq2HH1a/f5SZwrnnOXWlACJ4ZxdmGyMQNvhJEwuXKz66lXF2R/xDOc30UrvJe7Q2XwZ4kjKcgjatgxt3OY6KtuxF5G1RrUy4Oau/DHk9KLGhORK1e+Kl8zXMOP/swbE4Z4MVsvvkdLx7j78O7QTiYGHsSMG04v/A0c38+lGsRYBxZSN1sruFol9NXsJga0wg8ibrQCeMF4uz+ygcMUUGMcZF9Lsrd2w6mk8jlf4AKRRiXyXMBWpCTTzvcTBeVE2M8iZx5HWmVEjuie8zv.

感谢任何帮助,因为我不明白这里发生了什么。


平面的法线定义在平面的局部坐标系上,其中x、y和z轴分别表示地球(世界或ECEF)的东、北和上方向。 因此,如果 ECEF 中给出了平面的法向量,则必须像这样在平面的局部坐标系中将其转换。

    // get the local coordinate system of the plane
    var transform = Cesium.Transforms.eastNorthUpToFixedFrame(clickedPoint);
    // get invert matrix
    var inv = Cesium.Matrix4.inverseTransformation(transform, new Cesium.Matrix4());
    // in this case actually world normal coincide with up direction(z axis of coordinate system)
    // to avoid error we slightly extend it.
    var extendedWordNormal = Cesium.Cartesian3.multiplyByScalar(clickedPoint, 1.001, new Cesium.Cartesian3());
    
    // it will be nearly same as (0, 0, 1)
    var localNormal = Cesium.Matrix4.multiplyByPoint(inv, extendedWordNormal, new Cesium.Cartesian3());

    //var localNormal = new Cesium.Cartesian3(0, 0, 1);

请检查这个沙堡 https://sandcastle.cesium.com/#c=tVVdb9owFP0rHk9Bihzo9kRptY61arWWosLWF6TJxBew5tiR7dDSav99N19NAp7Wl1lIxPfjnHtPrp0dM2Qn4AkMOSMKnsgErMgS+qOwBcteXOwnWjkmFJhlr3+6VEtFcJV51MaggG6kXgHlkLrtAqy72GC4dQswBh8Q25kMmkxk3TLF5SHtPDYAap6yGC53oNx1GRRUVDFTO2abCioMasHdqDRzF7ETWgXrTJUPkGP0yWsZXTPHUsS/gM+0UA7pO22k6JppK5p0mlbbhjZfYh18aAP1G1e+DLjMqE5GTu0MU3atTYK8VcuL2mQpMOum2rjt93Shr8Qz8CvDEgg6PEeYQu0atDvmjHj+RNEIxsIbOCsaeqMP26JXOUH/GBueHSgO/FEbPs1hZEM1YcbhE1MfaZJJJ1K5/7Kfx0wy06k4JEM6GAw7lE2uj1VqRDmkqztruAr0ADsNPXW+ky6Kjgn9iYOQ4G/YTfdW2hJGFS7xAkErksZSKwj671WkM59GJDiNO7CUcR60AL7CKtvcaQ6yVGpWRwav3dFMmhgyIq2RQDHIGz5xmvAcspssQW3cFvOGg2LRQdgNeBK88J/QQeP47XnJsZbatETLt3RtdPKAh1ongVcEPI9YXdX8QV/1OR11Dnh4GIS2ETlILTx43uQcX1XeW3js34LYbN0DrMGAijGqKvy6a6fT++mlJ11nTuIF+pjLg+p4IkpBRuV/u/dCwbCt5pGYqWQKuqM7y03tscP5pYP/pGrO5Ve19BR/np65SEBZhLcj72E4CZo5a0au70HCGw6MYLLSL/yngKXxbx+exT4Fent5tfg5ub2ZfOuf9sLe2Lq9hPMa57NIUrysSWZkQGnkIMEusexolaFOjsbW1jzjqJ065mJHBD/zfFxRZGYtetaZLIZx2TsfRxh/lCo140Jt7vGal2yfh22H57elkVI6jnDrz3RayxUzB8h/AA和这个sample https://github.com/3DGISKing/CesiumJsSamples/tree/master/Advanced/FindBestFitPlane

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Cesium JS 椭球切平面计算 的相关文章

  • 如何在 Firefox 控制台中访问附加内容脚本?

    我为 Firefox 和 Chrome 开发了一个插件 它有内容脚本 我想在浏览器选项卡的控制台中访问它们 在 Firefox 上网页控制台 https developer mozilla org en US docs Tools Web
  • 滚动时输入自动完成位置错误(chrome)

    我在输入文本的默认自动完成功能方面遇到了一些麻烦 滚动时它不会相应移动 我希望自动完成文本保留在输入的正下方 有办法做到这一点吗 我在 Chrome 浏览器版本 57 0 2987 133 中发生这种情况 fiddle https jsfi
  • Jasmine-jQuery loadFixtures 未定义

    我对整个茉莉花的事情仍然很陌生 在过去的几个小时里我陷入了这个问题 我尝试使用 loadFixture 加载外部夹具文件 我使用 Jasmine 2 0 0 和 Jasmine jQuery 2 0 5 ReferenceError loa
  • 通过pm2运行node.js,但经常重新启动:通过信号[SIGINT]以代码[0]退出

    我试图在我的系统上运行 node js 但遇到了这个问题 2016 06 01 20 46 28 App app with id 13 and pid 12633 exited with code 0 via signal SIGINT 2
  • 创建一个简单的 10 秒倒计时

    我想要一行这样写的 Your download will begin in 10 9 8 etc Beginning on page load seconds 我已经设置了 10 秒下载文本 并且我还查看了其他 stackoverflow
  • 打开 md-calendar 时滚动到当前日期

    目前正在构建一个使用 Angular Material 的应用程序 我们需要一个 md calendar 组件 我们想要自定义按钮样式和内容 因此不使用普通的 md datepicker 问题是 当 md calender 打开时 滚动位置
  • 了解 sort() 比较函数

    我正在使用一个电子商务平台 该平台无法重新排序产品属性字段的选项 这真的很糟糕 因为要插入新选项 您几乎必须删除所有现有选项并重新开始 我正在尝试在客户端进行操作 这是我正在处理的内容 这是针对鞋码的 9 EE 9 1 2 EE 10 EE
  • 如何导入和导出 javascript ES6 类

    我是 javascript 和 nodejs 的新手 我正在使用这个项目来发展我的技能并学习新技术 目前我的项目使用多个相互依赖的类 类文件位于不同的目录中 我当前正在尝试使用 export 和 require 语句来允许在其他文件中引用类
  • Web 组件 - 服务/非 html 组件

    所以我来自 Angular 想看看如何创建vanilla Web components 现在 从 Angular 开始 我们倾向于将事物分开 组件 充当 HTML CSS 和一些 javascript 然后是 服务 主要负责收集数据和执行不
  • 搜索深度嵌套数组以更新对象

    我有一个深层嵌套的数据结构 我有兴趣匹配数组 和数组数组 中的某个值 然后将一些数据推送到随附的数组中 例如以下是我的数组colors并伴随着的是更多颜色数组可能存在也可能不存在 var myData color green moreCol
  • 如何更改自动完成中的结果过滤器?

    我不想进行字面匹配 而是想通过正则表达式选择结果 我可以覆盖自动完成的默认行为来完成此任务还是需要替代结构 有一个内置的方法可以做到这一点 只需提供一个函数source http jqueryui com demos autocomplet
  • JavaScript 测验在提出所有问题之前结束

    我现在正在学习 JavaScript 并且正在创建一个测验 我的测验运行正常 控制台中没有任何错误 但它会跳过问题 有时会在回答所有问题之前结束测验 即使给出正确答案 也会减少时间 我不太确定为什么它会这样做 因为在我看来它的编码是正确的
  • 在管道中重用变量的功能方式

    在 javascript 和 typescript 中与 Ramda 一起使用函数式编程 我经常发现自己编写如下代码 const myFun c gt const myId c id const value pipe getAnotherO
  • 在 React Navigation 中将 props 传递给自定义抽屉导航器

    在反应导航抽屉菜单中 我想显示用户名 John Doe 它处于我的主要组件的状态 Router 我怎样才能将自定义抽屉内容组件传递给它 额外信息 我从 AsyncStorage 中获取此名称 组件已挂载 这是我的代码 export defa
  • 如何打开弹出窗口并用父窗口中的数据填充它?

    如何使用 JavaScript jQuery 使用父页面中 JS 变量的数据填充弹出窗口 在我的示例中 我有一个文件名数组 我在父窗口中最多列出五个 如果还有更多 我想提供一个链接来打开弹出窗口并列出数组中的每个帖子 因此 如果我打开一个包
  • Ember Data 中出现“超出最大调用堆栈大小”错误的原因可能是什么?

    Ember 发布新版本 3 6 0 后 我开始在控制台中收到错误 rsvp js 24 未捕获 RangeError 超出最大调用堆栈大小 在 WeakMap get 在 getCacheFor metal js 25 在 Computed
  • Knockout.js 安全绑定

    我想使用带有淘汰赛的安全绑定 为此我使用敲除安全绑定 js https github com brianmhunt knockout secure binding 谁能解释一下为什么下面的代码不起作用 它会抛出一个错误 未捕获 淘汰 安全
  • RoR - Rails 中的大文件上传

    我有一个 Rails Web 应用程序 允许用户上传视频 视频存储在 NFS 安装的目录中 当前的设置适用于较小的文件 但我也需要支持大文件上传 最多 4GB 当我尝试上传 4GB 文件时 它最终会发生 但从用户体验的角度来看很糟糕 上传开
  • 在 HTML5 iOS 7 / iOS 8 中显示十进制键盘

    经过几个小时的搜索后 我只是有一个简单的问题 是否有可能在网络浏览器输入字段中显示小数键盘 input type number 只显示数字 但我需要在左下角使用逗号或点 我尝试过任何事情 pattern step等等 但没有显示十进制键盘
  • 强制输入数字小数位

    我想强制

随机推荐

  • PHP:字符串到正则表达式

    我尝试使用字符串作为正则表达式模式 但出现以下错误 PHP Warning preg match Unknown modifier gt in Applications MAMP htdocs cruncher Plugins wordpr
  • 如何使 PHPUnit 在有风险的测试中失败

    我想要 PHPUnitfail如果一项或多项测试被认为有风险 实际上 PHPUnit 5 3 4 by Sebastian Bergmann and contributors RRR 7 7 100 Time 2 83 seconds Me
  • 在哪里可以找到新的 azure devops 扩展的所有可用贡献目标?

    新的azure扩展开发文档 https developer microsoft com en us azure devops develop extensions指向一个示例项目github https github com Microso
  • LLVM 和编译器术语

    我正在研究 LLVM 系统并且我已经阅读了入门文档 http llvm org docs GettingStarted html 然而 一些术语 以及 clang 示例中的措辞 仍然有点令人困惑 以下术语和命令都是编译过程的一部分 我想知道
  • 如何对嵌入 JSON 的 JSON 进行编码

    我有一个 JSON 字符串 其中一个字段是文本字段 此文本字段可以包含用户在 UI 中输入的文本 如果他们输入的文本是 JSON 文本 也许为了说明一些编码 我需要对其文本进行编码 以便它不会在发送的实际 JSON 结构中被解释为 JSON
  • 创建具有多个子文件夹链接的 Ajax 网站失败

    我正在尝试创建一个site那是loading全部都是通过 Ajax 的内容 假设该网站是www abc net I have abc net index html并且无论输入什么 URL 文件夹 文件 该文件都将始终被调用 abc net
  • RGDAL 无法安装

    我无法在 R 中安装 RGDAL 我使用的是 Ubuntu 12 04 configure error gdal config not found or not executable ERROR configuration failed f
  • 关于 REST 响应和 XMLElement

    我有下面一个需要在代码中创建的 REST 响应
  • Page_Load 未在 UserControl 中触发

    我在类库中用 C 创建了一个类 并将此控件添加到了 default aspx 但我的代码没有触发 page load 事件 这是代码 我究竟做错了什么 页面已加载 但页面上未显示标签 我已将控件正确添加到页面 没有任何错误 我已经在其中添加
  • 同步集合包装器工厂方法如何“拥有”传递给它的对象?

    Brian Goetz 在 Java Concurrency in Practice 一书中说 传递给类的构造函数和方法的对象是不拥有由类本身 是因为他们是从外面来的 班级无法控制他们吗 他接着说 如果方法被明确设计为转移传入对象的所有权
  • C++ 隐式参数的顺序: this 和返回的对象,哪个在先?

    在 C 中 成员函数最多可以有 2 个隐式参数 this指针和返回对象的地址 它们位于显式参数之前 但是 哪个先走 我特别对 Android NDK 基于 gcc ARM 中发生的情况感兴趣 Example class MyClass pu
  • Java Kafka adminClient 主题配置。配置值被覆盖

    在尝试使用 java kafka adminClient 配置新创建的 kafka 主题时 值被覆盖 我尝试使用控制台命令设置相同的主题配置 并且它有效 不幸的是 当我尝试通过 Java 代码时 一些值发生冲突并被覆盖 ConfigReso
  • Celery 在任何更改时自动重新加载

    当模块发生更改时 我可以使 celery 自动重新加载CELERY IMPORTS in settings py 我尝试让母模块检测子模块的变化 但它没有检测到子模块的变化 这让我明白检测不是由 celery 递归完成的 我在文档中搜索了它
  • 在android中使用内容提供程序获取联系号码

    我按照本教程学习了内容提供商的基础知识 http www vogella de articles AndroidSQLite article html http www vogella de articles AndroidSQLite a
  • 使用更改 django 模板中表单字段的名称属性

    我有表单字段 表单 项目 这将呈现为
  • 数据类型映射参数中的键只能使用列名

    我已经使用 dask read sql table 从 Oracle 数据库成功引入了一张表 但是 当我尝试引入另一个表时 出现此错误KeyError 只有列名可以用作数据类型映射参数中的键 我已经检查了我的连接字符串和架构 所有这些都很好
  • 转换为日期格式 dd/mm/yyyy

    我有以下日期 2010 04 19 18 31 27 我想将此日期转换为日 月 年 format 您可以使用正则表达式或一些手动字符串摆弄 但我想我更喜欢 date d m Y strtotime str
  • keras自定义损失纯python(没有keras后端)

    我目前正在编写一个用于图像压缩的自动编码器 我想使用用纯 python 编写的自定义损失函数 即不使用 keras 后端函数 这是否可能 如果可能的话 如何实现 如果可能的话 我将非常感谢您提供一个最小工作示例 MWE 请查看这个 MWE
  • AWS CloudFormation:在嵌套堆栈之间传递值

    更多 AWS 问题 好的 我们的想法是一个主模板调用所有嵌套堆栈 在此处的帮助下 我弄清楚了如何将参数从主服务器传递到嵌套堆栈 现在我试图弄清楚如何将值从嵌套堆栈传递到嵌套堆栈 我认为这应该通过出口和进口来完成 但我认为我的做法不太正确 我
  • Cesium JS 椭球切平面计算

    Problem 我对铯如何计算大地测量和地心表面法线有点困惑 根据计算法线生成的平面实际上并不与给定点的椭球面相切 而且 根据大地表面法线创建的平面与根据地心表面法线生成的平面完全相同 示例以及为什么我需要这个 In this 沙堡 htt