北斗网格位置码在低空空域管理的Cesium实现
创作时间:
作者:
@小白创作中心
北斗网格位置码在低空空域管理的Cesium实现
引用
1
来源
1.
https://www.cnblogs.com/bimgis/p/18589121
北斗网格位置码是北斗卫星导航系统的重要组成部分,它将地球表面划分为不同级别的网格,为低空空域管理提供了精准的位置信息。Cesium是一个用于创建3D地球和地图的开源JavaScript库,能够实现丰富的地理空间数据可视化。本文将介绍如何使用Cesium实现北斗网格位置码在低空空域管理中的应用。
特定区域、特定级别的网格显示
在低空空域管理中,需要对特定区域的网格进行显示。如果特定区域跨越东西半球或南北半球,可以将其分为多个部分进行处理,这样在遍历循环时会更加方便。以中国区域版图为例:
const lon_west = 72.0; // 矩形左下角经度
const lon_east = 138.0; // 矩形右上角经度
const lat_south = 16.0; // 矩形左下角纬度
const lat_north = 56.0; // 矩形右上角纬度
根据剖分规则,可以将经纬度和高度划分为不同的级别:
const level_1 = 4; // 一级 4° 纬度
const level_1_0 = 6; // 一级 6° 经度
const level_2 = 30 / 60; // 二级 30′
const level_3 = 15 / 60; // 三级 15′
const level_3_0 = 10 / 60; // 纬度上应该为10/60
const level_4 = 1 / 60; // 四级 1′
const level_5 = 4 / 3600; // 五级 4″
const level_6 = 2 / 3600; // 六级 2″
const level_7 = 1 / (3600 * 4); // 七级 1/4″
const level_8 = 1 / (3600 * 32); // 八级 1/32″
const level_9 = 1 / (3600 * 256); // 九级 1/256″
const level_10 = 1 / (3600 * 2048); // 十级 1/2048″ 1.5cm
一级剖分示例:
五级剖分示例:
北斗二维编码
按照国标要求进行编码,需要注意的是编码是不等长的,级别不同,长度也不同。将编码绘制到网格的中心。
二级的二维编码示例:
北斗三维编码
高度维编码的获取方式:
// 根据公式 C.14 逐个提取每个部分的编码
const a11 = parseInt(binaryStr.slice(32 - 3, 32), 2).toString(8); // --从低位(右侧)取第 1 位到第 3 位
const a10 = parseInt(binaryStr.slice(32 - 6, 32 - 3), 2).toString(8); // --从低位(右侧)取第 4 位到第 6 位
const a9 = parseInt(binaryStr.slice(32 - 9, 32 - 6), 2).toString(8); // --从低位(右侧)取第 7 位到第 9 位
const a8 = parseInt(binaryStr.slice(32 - 12, 32 - 9), 2).toString(8); // --从低位(右侧)取第 10 位到第 12 位
const a7 = parseInt(binaryStr[32 - 13], 2).toString(2); // --从低位(右侧)取第 13 位
const a6 = parseInt(binaryStr.slice(32 - 17, 32 - 13), 2).toString(16).toUpperCase(); // --从低位(右侧)取第 14 位到第 17 位
const a5 = parseInt(binaryStr.slice(32 - 21, 32 - 17), 2).toString(16).toUpperCase(); // --从低位(右侧)取第 18 位到第 21 位
const a4 = parseInt(binaryStr[32 - 22], 2).toString(2); // --从低位(右侧)取第 22 位
const a3 = parseInt(binaryStr.slice(32 - 25, 32 - 22), 2).toString(8); // --从低位(右侧)取第 23 位到第 25 位
const a21 = parseInt(binaryStr.slice(32 - 31, 32 - 25), 2).toString(10).padStart(2, '0'); // --从低位(右侧)取第 26 位到第 31 位
const a0 = parseInt(binaryStr[32 - 32], 2).toString(2); // --从低位(右侧)取第 32 位
二级网格的三维编码示例:
用户可视范围及地图比例尺动态确定区域及级别
根据用户可视范围和地图比例尺动态确定显示的区域及级别,具体实现可参考文末视频链接。
根据经纬度点、高度及级别绘制点所在网格
动态隔离飞行器所在北斗网格空域
更多详细内容请参考外链:https://zhuanlan.zhihu.com/p/8428345687
热门推荐
鲍威尔放鹰!国际金价一夜暴跌64美元,黄金还能看多吗?
电脑机箱尺寸全解析:从全塔到迷你塔,如何选择适合自己的机箱?
四神汤的功效与食用方法
能吸收二手烟的植物盆栽,再也不怕家里有个吸烟的人啦!
十本网文巅峰之作!盘点 2004 - 2014 最热门小说,重温网文黄金时代
中国信通院牵头大模型软硬件标准立项,推动人工智能协同创新
身体的酸碱平衡保卫战
瑞虎坡时的动力表现怎样?这种表现怎样应对不同坡度的挑战?
干部在线学习平台的学习效果如何评估?
焦虑引导冥想
2014年欧冠决赛回顾:皇马加时逆袭马竞终夺十冠的经典时刻
(科普)甲状腺结节但甲功五项正常,可以不用管吗?
十八路诸侯讨伐董卓,他们都是谁?放到现在都是什么官?
东莞理工学院全国排名和最强专业解析
古人是如何洗澡的,一般多久洗一次?略显奢侈但又很“开放”
大学选修课无人机航拍技术与技巧怎么样?
20#钢:优质低碳碳素钢的特性与应用
冒名顶替诈骗损失激增至13亿美元:五大常见骗局及防范指南
AI创作利器:负面提示语,附大量常用关键词
眩晕综合征的注意事项
排水精细化管理 青岛探索开展城市排水单元管理责任制
小心别让孩子这样坐太久!W型坐姿看起来很可爱,但长时间坐著会有问题!
鬼谷八荒夜雨楼剧情攻略:关键选择详解与推荐
【健康科普】中医护理视角下的中风预防与康复指南
比特币与以太坊:两大加密货币的比较
5 种动漫友谊成为角色的祝福(以及 5 种比诅咒更糟糕的友谊)
《六姊妹》原著结局:家文改嫁,家欢出狱,小玲三婚,家艺最圆满
12个核心力量训练动作,记得收藏!
现实社会的文学投影——说说玄幻、仙侠网文中的卷文化
手机分辨率选择(影响手机显示效果的关键因素及最佳分辨率选择方法)