Cesium 定位到图层(ImageryLayer)报错 DeveloperError: normalized result is not a number

article/2025/8/15 23:04:32

Cesium 定位到图层(ImageryLayer)报错 DeveloperError: normalized result is not a number

    • 错误原因
    • 调试定位问题过程
    • 问题解决
    • 总结

2023年4月19日更新—搞了一个 Cesium 镜像,欢迎使用:沙盒示例 和 API

在使用 Cesium 封装代码的时候,遇到个奇怪的问题。

使用 viewer.flyTo(ImageryLayer) 报错:DeveloperError: normalized result is not a number。

经过不断尝试发现,定位到某些 ImageryLayer 是没问题的,但是有的 ImageryLayer 就会报错。

但是使用 camera.flyTo 定位的话却能正常定位。

经过进一步确认发现,跟加载的 Terrain 有关系,后来终于解决问题,这里记录一下。

错误原因

现已确认,错误需要以下几个条件:

1. 开启地形,但是地形数据不完整。

拼接的地形数据,比如:Terrain 地形文件夹中,0-5 级是全国地形数据,6-8 级是北京市数据,而 layer.json 参数是 0-8 级。
在这里插入图片描述

2. 定位到 ImageryLayer 的 Rectangle

给 ImageryLayer 设置 Rectangle 参数,用于 viewer.flyTo 定位。

3. 定位到某些区域的时候会报错。

完整错误:

DeveloperError: normalized result is not a numberErrorat new DeveloperError (http://localhost:8009/lssec.js:83514:11)at Cartesian3.normalize (http://localhost:8009/lssec.js:69756:11)at Ellipsoid.geodeticSurfaceNormal (http://localhost:8009/lssec.js:87921:65)at Ellipsoid.cartesianToCartographic (http://localhost:8009/lssec.js:88014:18)at Array.createUpdate3D (http://localhost:8009/lssec.js:237640:30)at CameraFlightPath.createTween (http://localhost:8009/lssec.js:237932:39)at Camera.flyTo (http://localhost:8009/lssec.js:236172:86)at updateZoomTarget (http://localhost:8009/lssec.js:427653:14)at Viewer._postRender (http://localhost:8009/lssec.js:427539:3)at Event.raiseEvent (http://localhost:8009/lssec.js:92422:20)

调试定位问题过程

1. 首先通过错误定位到报错位置。
在这里插入图片描述
2. 找到 viewer.flyTo 方法,调试查看,这里发现定位其实是计算 Rectangle,然后在进行定位。

初步有了解决思路,继续调试。
在这里插入图片描述
3. 这里可以发现,viewer.flyTo 跟 terrainProvider 是有关系的,因此确定是 Terrain 地形数据资源的问题。
在这里插入图片描述

问题解决

解决问题的方式有两种,一是使用完整的 Terrain 地形数据,不会报错;二是修改定位的方式,可以避免错误。

1. 使用完整 terrain 地形数据

很简单,不要拼接即可,也就是使用工具切割的 Terrain 地形数据目录是什么样就直接使用,不能对 Terrain 目录做任何修改

2. 使用其他方式定位

在查看 API 的时候,发现 ImageryLayer 有这样一个方式,大概意思是获取 Rectangle 之后,使用 camera 进行定位

经过尝试,没问题,不会报错。
在这里插入图片描述

总结

广大 GISer 除了关注这个问题,以及解决方法,还可以关注一下笔者的调试过程。

另外,经过确认,这个问题是 Cesium 的 bug,笔者已经在 githup 上提交了,感兴趣的可以看看。

这里是 Cesium 的错误调试:viewer.flyTo 问题


http://chatgpt.dhexx.cn/article/waxCOUAn.shtml

相关文章

normalize 函数

2. normalize 函数介绍 函数原型: void normalize(InputArray src,OutputArray dst, double alpha1, doublebeta0, int norm_typeNORM_L2, int dtype-1, InputArray masknoArray() ) 该函数归一化输入数组使它的范数或者数值范围在一定的范围内。 Parameters: src …

(六)Normalization

(六)Normalization why 从图中可以看出,当输入太小或者太大的时候,函数的取值随着输入的变化几乎为0。这样就会发生梯度离散的情况,因此我们很有必要把输入控制在一个小一点的区间内。所以我们通过normalization操作&…

【C++】Eigen中norm、normalize、normalized的区别

参考: https://blog.csdn.net/m0_56348460/article/details/117386857https://blog.csdn.net/huangjunsheng123/article/details/119274776?spm1001.2101.3001.6650.7&utm_mediumdistribute.pc_relevant.none-task-blog-2%7Edefault%7EBlogCommendFromBaidu%7E…

理解各种 Normalization

引言 Batch Normalization(BN)似乎已经成为构建网络不可缺少的一部分,它是如此“熟悉”以至于我天天使用却不明白原理。对此,本文梳理了 BN 的意义,实现以及一系列变体:Layer Norm,Instance No…

Layer Normalization解析

原论文名称:Layer Normalization 原论文地址: https://arxiv.org/abs/1607.06450 之前有讲过Batch Normalization的原理,链接,今天来简单讲讲Layer Normalization。Layer Normalization是针对自然语言处理领域提出的,…

Eigen中norm、normalize、normalized的区别

Eigen中norm、normalize、normalized的区别 norm() 对于Vector&#xff0c;norm返回的是向量的二范数&#xff0c;即 例如&#xff1a; Vector2d vec(3.0,4.0); cout << vec.norm() << endl; //输出5 对于Matrix&#xff0c;norm返回的是矩阵的弗罗贝尼乌斯范数…

归一化函数 normalized()

1. 归一化定义与作用 归一化就是要把需要处理的数据经过处理后&#xff08;通过某种算法&#xff09;限制在你需要的一定范围内。 首先归一化是为了后面数据处理的方便&#xff0c;其次是保证程序运行时收敛加快。归一化的具体作用是归纳统一样本的统计分布性。归一化在0-1之间…

手机锁屏后微信收款语音不播报?-by:nixs

荣耀10&#xff0c;之前用荣耀7x就没这毛病&#xff01; 我确认与设置无关&#xff0c;微信语音播报是开启状态&#xff0c;通知设置都是允许的&#xff0c;我更不会二到把手机关静音&#xff01; 反正就是黑屏待机时&#xff0c;没有任何声音&#xff0c;一但点亮屏幕就有语音…

App微信小程序测试流程及要点

1 APP测试基本流程 1.1流程图 1.2测试周期 测试周期可按项目的开发周期来确定测试时间&#xff0c;一般测试时间为两三周&#xff08;即15个工作日&#xff09;&#xff0c;根据项目情况以及版本质量可适当缩短或延长测试时间。正式测试前先向主管确认项目排期。 1.3测试资源…

微信小程序,分享如何封装一个全局支持暂停,拖动等各类操作的音视频等多媒体管理器

不知不觉埋头于业务已许久&#xff0c;距离上一篇分享应该很久很久以前&#xff0c;具体何时&#xff0c;已无从知晓。慢慢的开始觉得锅有点热&#xff0c;感觉呼吸有点困难&#xff0c;温水里面的青蛙趁着腿还没完全麻木的时候&#xff0c;也想着开始重拾旧梦&#xff0c;稍微…

html微信登录密码输入密码,不用输密码,只要8个数字就能登录你的微信

不知道大家有没有遇到过这样的问题&#xff0c;就是当我们换新手机之后&#xff0c;在登录微信的时候就需要密码了。 打开凤凰新闻&#xff0c;查看更多高清图片 可是有些人记性不好&#xff0c;经常忘记微信登录密码&#xff0c;这该怎么办呢&#xff1f;今天小Q来教大家一招可…

微信上隐藏着6个功能,实在是太厉害了,真令人相见恨晚

很多人都说微信不太好用,那是因为你还没有找到好用的功能,如果你只会聊天和付款那就太out了,今天才知道,微信上隐藏着6个功能实在是太厉害了。 一、无线极速传输 微信不仅方便了生活,在办公上也是一个小能手,无需数据线就能与电脑相互传输文件,找到文件传输助手,将文件…

基于微信小程序音乐播放器的设计与实现毕业设计源码271156

Springboot音乐播放小程序的设计与实现 摘 要 本文设计了一种基于微信小程序的音乐播放器&#xff0c;系统为人们提供了方便快捷、即用即搜的音乐搜索播放服务&#xff0c;包括音乐资讯、音乐库推荐、交流论坛、注册登录、最近播放列表功能等&#xff0c;用户不仅能够方便快捷地…

微信按钮翻译中英对照表

申明&#xff1a;发文方便自己查阅&#xff0c;当然如对看到的朋友有所帮助&#xff0c;也是乐事一件。 代码中需要调用微信&#xff0c;翻译连续翻车&#xff0c;比如朋友圈&#xff0c;做个记录方便查阅&#xff1a; /** * 微信 中英文对照 * 微信 wechat * 朋友圈…

微信更新了 版本8.0.30

这次新功能包括&#xff1a; 朋友圈扩展文字输入区域&#xff1a;发朋友圈或朋友圈评论时&#xff0c;编辑文案&#xff0c;文本区域会随文字数量而增大。长按订阅号可以取消关注&#xff1a;在订阅号列表中&#xff0c;此前长按封面只有悬浮功能&#xff0c;更新后现在加入了…

android微信消息无提醒,OPPO手机微信消息不提醒怎么办?(附多种解决方法)

微信来新消息不提醒&#xff0c;不能第一时间看到微信消息&#xff0c;一般是设置不到位。现在就可以通过以下几步来进行排除解决。 小编以R9手机为例&#xff0c;这就告诉你们相关设置哈&#xff0c;一起来学习吧~~ OPPO手机微信消息不提醒怎么办&#xff1f;(附多种解决方法)…

ipad如何与手机微信连接服务器地址,如何设置微信在手机和ipad同步 - 卡饭网

微信怎么设置空白头像和昵称?iPhone手机设置微信空白头像和昵称的方法介绍 微信怎么设置空白头像和昵称?iPhone手机设置微信空白头像和昵称的方法介绍 iPhone手机应该如何设置微信空白名字和头像?微信头像往往能反映出一个人的性格,让自己的微信头像和别人不一样,彰显出自己…

苹果微信密码服务器,苹果微信怎么记住密码的登录

满意答案 tanwandewo 2020.09.14 采纳率&#xff1a;48% 等级&#xff1a;6 已帮助&#xff1a;210人 在进行手机各类密码设置的时候&#xff0c;总是会有一种这辈子不会忘的错觉&#xff0c;于是怎么复杂怎么来&#xff0c;忘记密码就崴泥了&#xff0c;悔恨啊…… 是不是看…

微信能用声音作为密码来登录了,你的应用也可以

自从苹果在iPhone上普及了指纹解锁,以个人生理特征作为密码的生物识别已经成为了越来越流行的身份鉴别手段,冲击着使用多年的传统文字密码方式。 毕竟,在脑袋里记住密码,真的不如用你独一无二的身体特征直接作为密码那么方便。 就说我们每天都在用的微信,现在也赶上这个潮…

模仿微信声音锁的实现(运用DTW算法)

自己写了模仿微信声音锁的一个android程序&#xff0c;先录两段相同的语音信号作为模板&#xff0c;解锁时通过对比输入语音和该两段语音模板的相似度&#xff0c;如果相似度高则解锁成功。 程序界面如下&#xff0c;仿照微信设置&#xff0c;当然跟原版比效果略渣。 launche…