一、3D Tiles是什么

3D Tiles数据集以分块、分级渲染,将大数据量三维数据以分块、分层形式组织起来,可以大量减轻浏览器和GPU的负担,3D Tiles包括建筑物、树木、点云和矢量数据。

二、加载3D Tiles数据集

设计步骤:

  1. 创建平移矩阵
  2. 加载模型数据
  3. 设置相机视角
  4. 调整高度

或者

  1. 创建平移矩阵(动态创建参数)
  2. 加载模型数据
  3. 设置相机视角

获取偏移量:

加载平移矩阵:

方法一:动态加载modelMatrix
创建平移矩阵的两种方法:

 //创建平移矩阵方法一m = Cesium.Matrix4.fromArray([1.0, 0.0, 0.0, 0.0,0.0, 1.0, 0.0, 0.0,0.0, 0.0, 1.0, 0.0,x, y, z, 1.0]);//创建平移矩阵方法二var translation=Cesium.Cartesian3.fromArray([x, y, z]);m= Cesium.Matrix4.fromTranslation(translation);document.getElementById("result").innerText = "x:" + x + " y:" + y + " z:" + z;tileset.modelMatrix = m;

平移矩阵modelMatrix的获得是直接通过设置m矩阵,动态的调整x,y,z的大小,来得到不同的modelMatrix

var x = 360.0;
var y = -920.0;
var z = -820.0;
// var x = 0;
// var y = 0;
// var z = 0;
var m = Cesium.Matrix4.fromArray([1.0, 0.0, 0.0, 0.0,0.0, 1.0, 0.0, 0.0,0.0, 0.0, 1.0, 0.0,x, y, z, 1.0
]);var tileset = viewer.scene.primitives.add(new Cesium.Cesium3DTileset({url: 'Scene/testm3DTiles.json',maximumScreenSpaceError: 2,maximumNumberOfLoadedTiles: 1000,modelMatrix: m  //方法一,动态修改modelMatrix
}));

方法二,直接调用函数,调整高度,height表示物体离地面的高度
偏移矩阵modelMatrix可以由一个translation来确定,通过调整height来获得不同的modelMatrix,然后视角缩放到瓦片集的时候调用changeHeight函数。

function zoomToTileset() {boundingSphere = tileset.boundingSphere;viewer.camera.viewBoundingSphere(boundingSphere, new Cesium.HeadingPitchRange(0, -2.0, 0));viewer.camera.lookAtTransform(Cesium.Matrix4.IDENTITY);changeHeight(0);
}
// tileset数据加载好后,便缩放相机视角
tileset.readyPromise.then(zoomToTileset);...function changeHeight(height) {height = Number(height);if (isNaN(height)) {return;}var cartographic = Cesium.Cartographic.fromCartesian(tileset.boundingSphere.center);var surface = Cesium.Cartesian3.fromRadians(cartographic.longitude, cartographic.latitude, cartographic.height);var offset = Cesium.Cartesian3.fromRadians(cartographic.longitude, cartographic.latitude,height);var translation = Cesium.Cartesian3.subtract(offset, surface, new Cesium.Cartesian3());tileset.modelMatrix = Cesium.Matrix4.fromTranslation(translation);
}
}));

数据的加载

var tileset = viewer.scene.primitives.add(new Cesium.Cesium3DTileset({url: 'Scene/testm3DTiles.json',maximumScreenSpaceError: 2,maximumNumberOfLoadedTiles: 1000,//modelMatrix: m
}));

完整程序:3D Tiles

cesium入门(三)添加3D Tiles,并调整位置,贴地相关推荐

  1. [WebGL入门]三,3D绘图的基础知识

    注:文章译自http://wgld.org/,原作者杉本雅広(doxas),文章中如果有我的额外说明,我会加上[lufy:],另外,鄙人webgl研究还不够深入,一些专业词语,如果翻译有误,欢迎大家指 ...

  2. cesium之3D Tiles Next(下一代的3D Tiles)介绍

    文章目录 1. 概述 2. 元数据的有效流式传输 2.1 类型系统 2.2 不同层级 2.3 语义规范 3. 空间索引增强 3.1 隐式分割 3.2 S2分割算法 4.复合内容分层 5. 与glTF的 ...

  3. 3D Tiles 简单介绍

    3D Tiles是用于流式传输大规模异构3D地理空间数据集的开放规范.为了扩展Cesium的地形和图像流,3D Tiles将用于流式传输3D内容,包括建筑物,树木,点云和矢量数据. 3D Tiles ...

  4. Cesium:入门教程(五)之 3D Tiles

    3D Tiles Cesium 与开源社区合作开发了3D Tiles,用于传输海量的异构三维地理空间数据集.使用概念上类似于Cesium的terrain和imagery的流技术,3D Tiles 使得 ...

  5. cesium之3D tiles格式介绍

    文章目录 1. 介绍 2. 文件扩展和MIME类型 3. JSON编码 4. URIs 5. 单位 6. 概念 6.1 坐标参考系 6.2 瓦片 6.2.1 几何误差 6.2.2 细化 6.2.2.1 ...

  6. 进一步学习 Cesium 和 3D Tiles 数据相关

    接此: https://blog.csdn.net/bcbobo21cn/article/details/112464630 如下一段代码:也能加载出3D Tiles数据:此段代码和前文的有些相似: ...

  7. 第六章 Cesium学习入门之添加Geojson数据(dataSource)

    从0开始的Cesium 第一章 Cesium学习入门之搭建Vite+Vue3+Cesium开发环境 第二章 Cesium学习入门之搭建Cesium界面预览和小控件隐藏 第三章 Cesium学习入门之地 ...

  8. BIM模型一键输出 3D Tiles (for Cesium) 和 glTF/blg

    基于 Autodesk Navisworks Manager 平台,支持 60+种源BIM模型格式,一键输出 svf/f2d, 3D Tiles(Cesium) 或 glTF/glb 格式数据. En ...

  9. Revit 模型一键输出 3D Tiles (for Cesium) 和 glTF/glb

    Engine RVT 版下载地址:  https://pan.baidu.com/s/1VyRdmcBx-lMNfYbZn4NtIg 主要功能:   可将 *.rvt/*.rfa 模型输出为以下三种数 ...

最新文章

  1. DPU加持下的阿里云如何做加密计算?
  2. 自学python三个月能赚钱吗-自学Python三个月能赚钱吗?
  3. 【Groovy】Groovy 脚本调用 ( Groovy 类中调用 Groovy 脚本 | 创建 GroovyShell 对象并执行 Groovy 脚本 | 完整代码示例 )
  4. go interface转int_32. 一篇文章理解 Go 里的函数
  5. 固定大小容器内,不同比例的图片高度撑满,宽度居中裁剪
  6. POJ - 3273 Monthly Expense(二分水题)
  7. ASP.NET Core 2.2 : 扒一扒新的Endpoint路由方案
  8. php ob 缓存,php中ob函数缓冲机制深入理解
  9. 【图像处理】灰度加权距离变换(GWDT)
  10. FileZilla 服务器端win server2008以上的配置
  11. c语言block内部的实现原理,iOS中block变量捕获原理详析
  12. 51单片机c语言计数程序,51单片机INTOINT1中断计数c语言源程序.doc
  13. Javascript--闭包引起的IE内存泄露(转载)
  14. 哪些影响大数据分析发展
  15. java arraylist 字符串数组_java中String,数组,ArrayList三者之间的转换
  16. 科学计算机病毒代码大全,计算机病毒代码有哪些
  17. d-s证据理论 matlab代码2
  18. CHM格式打不开解决方案
  19. 接死你(骚扰拦截利器) V2 登录木蚂蚁市场了!速速下载,反击骚扰!
  20. 甘超波:NLP抽离与结合

热门文章

  1. visudo命令详解
  2. GSM模块信号强度CSQ与RSSI的对应关系,新增android的ASU值
  3. 任意输入三条边(a,b,c实型),若能构成三角形,则计算并输出其面积,否则输出标志“No Triangle!”。
  4. 使用whistle进行手机抓包并调试
  5. 计算机装机报方案,设计计算机装机方案
  6. CleanMyMac X 4.6.5中文版 — Mac清理优化工具
  7. 基于Android studio的校园小助手app设计
  8. 音视频学习-H264帧基础知识
  9. 第一范式 第二范式 第三范式理解
  10. IRC IRSSI教程