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

Cesium 获取 3dtileset的包围盒各顶点坐标

Cesium 获取 3dtileset的包围盒各顶点坐标

在这里插入图片描述


/**
 * 获取 3dtileset的包围盒各顶点坐标, z 方向取高度最低的位置
 * @param {*} tileset
 * @param {*} options
 * @returns
 * @ref https://blog.csdn.net/STANDBYF/article/details/135012273
 * @ref https://community.cesium.com/t/accurate-bounding-box-for-3d-tiles/5890/10
 */
export function getTilesetBoudingBoxPoints(tileset, options = {}) {
  const { center, halfAxes } = tileset._root._boundingVolume._orientedBoundingBox;
  const pointsVec3 = [];

  // 获取三个轴的位置
  const x = new Cartesian3();
  const y = new Cartesian3();
  const z = new Cartesian3();

  Matrix3.getColumn(halfAxes, 0, x);
  Matrix3.getColumn(halfAxes, 1, y);
  Matrix3.getColumn(halfAxes, 2, z);

  const halfXNegative = new Cartesian3();
  const halfXPositive = new Cartesian3();

  Cartesian3.subtract(center, x, halfXNegative)
  Cartesian3.add(center, x, halfXPositive)

  Cartesian3.subtract(halfXNegative, z, halfXNegative)
  Cartesian3.subtract(halfXPositive, z, halfXPositive)

  pointsVec3.push(Cartesian3.add(halfXNegative, y, new Cartesian3()))
  pointsVec3.push(Cartesian3.subtract(halfXNegative, y, new Cartesian3()))

  pointsVec3.push(Cartesian3.subtract(halfXPositive, y, new Cartesian3()))
  pointsVec3.push(Cartesian3.add(halfXPositive, y, new Cartesian3()))

  const pointsLL = [];
  pointsVec3.forEach(item=>{
    const ll = Cartographic.fromCartesian(item);
    pointsLL.push(
      Math.toDegrees(ll.longitude),
      Math.toDegrees(ll.latitude),
    )
  })

  return pointsLL;
}

相关文章:

  • ​【已解决】npm install​卡主不动的情况
  • 深入浅出:Objective-C中使用MWFeedParser下载豆瓣RSS
  • git svn混用
  • 如何使用 CSS 中的 :root 伪类选择器
  • java学习之路-程序逻辑控制
  • 工具-百度云盘服务-身份认证
  • MySQL大小写敏感、MySQL设置字段大小写敏感
  • 【CKA模拟题】查询消耗CPU最多的Pod
  • CIDR网络地址、广播地址、网段区间计算说明与计算工具
  • ai智能外呼机器人的功能,机器人对话常用语模板搭建
  • SpringBoot使用log4j2将日志记录到文件及自定义数据库
  • C语言案例01, 输入两个整数,获得两个数加减乘除的值,持续更新中~
  • java操作HBase
  • 全量知识系统 因子分析+在线处理+实时库+生存拓扑控制+跨语言 的设想及百度AI答问 之3
  • MySQL常见的数据类型
  • 图解I/O中的零拷贝技术
  • 每日五道java面试题之springMVC篇(三)
  • 【Javaweb】【瑞吉外卖】上传下载实现
  • oppo前端开发一面
  • 搭建一个自己的AI学术语音助手(二)
  • “海豚音”依旧互动更多,玛丽亚·凯莉本周来沪开唱
  • 罕见沙尘再度入川,官方:沙尘传输高度达到平流层,远超以往
  • 涨知识|没想到吧,体育老师强调的运动恢复方法是错的?
  • 江西省直机关工委副书记熊亮华履新宜春市委常委、宣传部部长
  • 七方面118项任务,2025年知识产权强国建设推进计划印发
  • 正荣地产:前4个月销售14.96亿元,控股股东已获委任联合清盘人