Cesium 定位到图层(ImageryLayer)报错 DeveloperError: normalized result is not a number
Cesium 定位到图层(ImageryLayer)报错 DeveloperError: normalized result is not a number
- 错误原因
- 调试定位问题过程
- 问题解决
- 总结
在使用 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 问题
Cesium 定位到图层(ImageryLayer)报错 DeveloperError: normalized result is not a number相关推荐
- cesium 地图无法加载 报错401 缺少token
cesium 地图无法加载 报错401 缺少token 首先,报错401 说明用户没有访问权限,需要进行身份认证,也就是cesium需要密钥,也是最近实行的吧,因为之前不用也能加载出地图. token ...
- python解码bash64报错:binascii.Error: Invalid base64-encoded string: number of data characters (7121) can
文章目录 报错信息 产生过程 问题产生原因(失败,报错不是这个问题) 20230223 问题产生原因2:base64编码数据是错误的 报错信息 binascii.Error: Invalid base ...
- leaflet 鼠标移动到图层时变_leaflet 图层切换报错
let onlinemapArr=L.layerGroup([this.$refs.gis.onLineMap,this.fireLayer]) let outlinemapArr=L.layerGr ...
- 使用pymysql报错:pymysql.err.InternalError: Packet sequence number wrong - got 5 expected 1
环境:Python 3.8.5 在使用pymysql去数据库查询数据时,出现了如下错误: Exception ignored in: <function MysqlPoolClient.__de ...
- pymysql.cursors.SSCursor 报错 Previous unbuffered result was left incomplete
读取大数据量时,使用 SSCursor (流式游标) 解决 Python 使用 pymysql 查询大量数据导致内存使用过高的问题 如果用传统的 fetchall() 或 fetchone() 方法, ...
- 存储过程报错ERROR 117242000 - Result consisted of more than one row
今天在学习sql函数时候遇到以下问题: 参考: 一开始总是在纠结是不是存储过程哪里写错了,最后却发现数据表被人动过,插入了重复的记录,所以在select into 的时候会报错.自己也反应也忒慢了,竟 ...
- Mysql报错:1172 - Result consisted of more than one row
执行mysql函数时报错:1172 - Result consisted of more than one row 函数语句中select into语句中WHERE account = userNam ...
- npm运行报错:Error: ENOSPC: System limit for number of file watchers reached
原因 查了一下,是linux系统的限制导致这个报错了,需要设置一下:fs.inotify.max_user_watches 这个参数. 解决方法 执行:vim /etc/sysctl.conf,添加如 ...
- reactjs npm start运行报错:Error: ENOSPC: System limit for number of file watchers reached
**解决方法**执行:vim /etc/sysctl.conf,添加如下内容:fs.inotify.max_user_watches=524288输入:wq在命令行执行:sysctl -p重新执行:n ...
最新文章
- AMD真龙一族网络社区成立
- Windows 7键盘失灵导致无法输入登录密码问题解决方案
- 表格排序tablesort小案列
- Java springcloud B2B2C o2o多用户商城 springcloud架构 (十七)上传文件
- linux安装perl编译环境,CentOS7 安装 perl 环境
- 虚拟机建立快照_使用qmeu-img创建虚拟机(创建虚拟机,虚拟机快照)
- html出现403错误信息,网站(HTTP)出现403错误集锦,请对号入座;
- “9元课程”拼凑起来的暑假和K12在线教育企业的生死营销战
- SSM整合项目实践——完成图书的CRUD
- jQuery - 按回车键触发跳转
- mysql5.6免安装版配置
- RFID:ISO14443、15693、18000体系分析
- html5 下拉按钮样式修改,css和jquery实现的select美化自定义下拉框样式
- 常用第三方APP 的url scheme
- 【数据结构笔记】将两个递增的有序链表合并为一个递增的有序链表
- 码农的自我修养 - 关于ARM你需要知道的
- 小型电子管通用计算机103机,中国第一台电脑
- 上海相会 | 冒志鸿与丁磊畅谈ArcBlock未来宏图
- 淘宝等各平台API接口,执行item_get - 获得商品详情信息
- PHP导出Excel时数据量过大的问题
热门文章
- 逃逸闭包(@escaping)和非逃逸闭包
- html 上下广告悬浮,JS上下自动漂浮广告,可关闭
- Visual Studio2017安装和使用教程(详细)
- java行业前景_java开发行业前景
- 华硕无畏灵耀破晓原装Windows10/11系统
- 纹波测量 以及 ATX 12V PC 电源 介绍
- BitMap的recycle问题
- 台式计算机运行慢怎么样能提高速度,旧电脑配置低,如何提升性能、加快运行速度?...
- R绘图实战|GSEA富集分析图
- 初用网易蜂巢遇到的问题