Cesium.Cesium3DTileset
时间: 2023-08-28 10:11:50 浏览: 310
您好!Cesium3DTileset 是 Cesium 中的一个重要组件,它用于加载和渲染基于3D Tiles 格式的地理空间数据。3D Tiles 是一种开放的规范,用于高效地存储、传输和渲染大规模的3D地理数据,如城市模型、地形、点云等。Cesium3DTileset 可以加载这些数据,并在浏览器中以高性能的方式进行可视化展示。您还有其他关于 Cesium3DTileset 的问题吗?
相关问题
cesium.cesium3dtileset.fromurl配置经纬度
### 加载带指定经纬度的 3D Tiles 数据
在 Cesium 中使用 `Cesium3DTileset.fromUrl` 方法加载带有特定地理位置(即经度和纬度)的 3D Tiles 数据时,通常不需要直接通过此方法传递经纬度参数。这是因为 3D Tiles 的位置信息已经内嵌在其元数据中[^1]。
然而,在某些情况下可能需要调整整个 Tileset 的位置来匹配预期的地理坐标系中的某个具体地点。这可以通过设置 `modelMatrix` 属性实现,该属性允许对 tileset 进行平移、旋转或缩放操作:
```javascript
// 创建 viewer 实例
const viewer = new Cesium.Viewer('cesiumContainer');
// 定义目标位置 (经度, 纬度, 高度)
let position = Cesium.Cartesian3.fromDegrees(-75.59777, 40.03883, 0);
// 计算 modelMatrix 来定位到给定的位置
let transform = Cesium.Transforms.eastNorthUpToFixedFrame(position);
transform = Cesium.Matrix4.multiplyByUniformScale(transform, 1.0, transform); // 可选:调整比例
// 使用 fromUrl 方法创建并配置 3D Tiles 对象
viewer.scene.primitives.add(
new Cesium.Cesium3DTileset({
url : 'https://example.com/tiles/quantized-mesh-url.json',
modelMatrix : transform,
})
);
```
上述代码片段展示了如何基于给定的经纬度创建变换矩阵 (`modelMatrix`) 并将其应用于 `Cesium3DTileset` 构造函数选项中,以此方式可以控制所加载 3D tiles 的全局位置。
Cesium.Cesium3DTileset 显隐
在Cesium中,Cesium3DTileset是一种用于加载高度模型、建筑物、瓦片等复杂地理信息的数据结构。为了显隐Cesium3DTileset,你可以直接操作每个tileset实例的`show`和`hide`方法,或者利用`visibility`属性来控制。
下面是一个基本的例子:
```javascript
// 创建Cesium3DTileset实例
const tileset = new Cesium.Cesium3DTileset({
url: 'your-tileset-url',
});
// 添加到场景
scene.primitives.add(tileset);
// 控制显示
tileset.show = false; // 隐藏
tileset.show = true; // 显示
// 使用属性的方式
tileset.visibility = Cesium setVisibleProperty; // 设置为true显示,false隐藏
```
注意,`visibility`属性的值通常是一个布尔值或`Cesium setVisibleProperty`,后者允许你更精细地控制动画显示和隐藏过程。
阅读全文
相关推荐
【资源说明】
基于cesium的3dtilset模型视频投放源码+使用说明(无需任何修改,直接引入即可).zip
在项目中引入Cesium.js
##### 然后引入 cesium-videoshed.js 即可
// 初始化
let viewer = new Cesium.Viewer("viewerContainer")
// 参数
let viewModel = { verticalAngle: 90, horizontalAngle: 120, distance: 10 };
let videoShed3DArr = [];
// 创建
let create = () => {
let videoShed3D = new Cesium.VideoShed3D(viewer, {
type: 'Video',
url: "src/cs.mp4",
alpha: 1,
debugFrustum: true,
horizontalAngle: Number(viewModel.horizontalAngle),
verticalAngle: Number(viewModel.verticalAngle),
distance: Number(viewModel.distance),
});
videoShed3DArr.push(videoShed3D)
}
// 销毁
let destroy = () => {
videoShed3DArr.forEach(video => video.destroy())
}
【备注】
1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用!有问题请及时沟通交流。
2、适用人群:计算机相关专业(如计科、信息安全、数据科学与大数据技术、人工智能、通信、物联网、自动化、电子信息等)在校学生、专业老师或者企业员工下载使用。
3、用途:项目具有较高的学习借鉴价值,不仅适用于小白学习入门进阶。也可作为毕设项目、课程设计、大作业、初期项目立项演示等。
4、如果基础还行,或热爱钻研,亦可在此项目代码基础上进行修改添加,实现其他不同功能。
欢迎下载,沟通交流,互相学习,共同进步!