entities方式引入3D模型
const entity = viewer.value.entities.add({
name: “car”,
position: Cesium.Cartesian3.fromDegrees(120.13699186126235, 30.320240186854843, 0),
orientation: Cesium.Transforms.headingPitchRollQuaternion(
Cesium.Cartesian3.fromDegrees(120.13699186126235, 30.320240186854843, 0),
new Cesium.HeadingPitchRoll(
Cesium.Math.toRadians(90), // 设置这个属性即可(顺时针旋转的角度值)
Cesium.Math.toRadians(0),
Cesium.Math.toRadians(0)
)
),
model: {
uri: “/model/car.glb”, // /model/build.gltf
scale: 10,
runAnimations: true, // 是否显示动画
clampAnimations: true, // 是否保持最后一针的动画
// roll: 90, // 旋转
// minimumPixelSize: 128, // 最小的模型像素
// maximumScale: 20000, // 最大的模型像素
// color: Cesium.Color.RED, // 模型加颜色
// show: true,
// color: this.getColor(‘Red’, 1.0), //> 模型颜色与透明度
// colorBlendMode: this.getColorBlendMode(‘Highlight’), //> 模型颜色模式
// colorBlendAmount: parseFloat(0.5), //> 模型混合度
// silhouetteColor: this.getColor(‘Red’, 1.0), //> 模型轮廓颜色
// silhouetteSize: parseFloat(2), //> 模型轮廓大小
}
})
// 让摄像机视口快速定位到模型位置
viewer.value.trackedEntity = entity;
CZML方式引入3D模型
const czml = [
{
id: “document”,
name: “CZML Model”,
version: “1.0”,
},
{
id: “aircraft model”,
name: “Cesium Air”,
position: {
cartographicDegrees: [120.13699186126235, 30.320240186854843, 10000], // 生成位置
},
model: {
gltf: “/model/build.gltf”, // 文件路径
scale: 2.0,
minimumPixelSize: 128,
},
},
];
const dataSourcePromise = viewer.value.dataSources.add(
Cesium.CzmlDataSource.load(czml)
);
dataSourcePromise
.then(function (dataSource) {
viewer.value.trackedEntity = dataSource.entities.getById(
“aircraft model”
);
})
.catch(function (error) {
window.alert(error);
});
完整代码
<template>
<div id=”cesiumContainer”></div>
</template>
<script setup>
import { onMounted, ref } from “vue”;
const viewer = ref(null);
const initCesium = async () => {
// 1.引入token
Cesium.Ion.defaultAccessToken = “xxxxxxxxxxx”;
// 2.三维地球初始化
viewer.value = new Cesium.Viewer(“cesiumContainer”, {
animation: true, //是否创建动画小器件,左下角仪表
shouldAnimate: true,
fullscreenButton: false, //是否显示全屏按钮
geocoder: false, //是否显示geocoder小器件,右上角查询按钮
homeButton: false, //是否显示Home按钮
infoBox: false, //是否显示信息框
sceneModePicker: false, //是否显示3D/2D选择器
scene3DOnly: false, //如果设置为true,则所有几何图形以3D模式绘制以节约GPU资源
selectionIndicator: false, // 是否显示选取指示器组件
timeline: false, // 是否显示时间轴
navigationHelpButton: false,// 是否显示右上角的帮助按钮
baselLayerPicker: false, // 将图层选择的控件关掉,才能添加其他影像数据
shadows: false, // 是否显示背影
baseLayerPicker: false, // 是否显示图层选择器
orderIndependentTranslucency: false, //去掉大气层黑圈
});
// 加载3D模型
// 1.entities方式
// const entity = viewer.value.entities.add({
// name: “car”,
// position: Cesium.Cartesian3.fromDegrees(120.13699186126235, 30.320240186854843, 0),
// orientation: Cesium.Transforms.headingPitchRollQuaternion(
// Cesium.Cartesian3.fromDegrees(120.13699186126235, 30.320240186854843, 0),
// new Cesium.HeadingPitchRoll(
// Cesium.Math.toRadians(90), // 设置这个属性即可(顺时针旋转的角度值)
// Cesium.Math.toRadians(0),
// Cesium.Math.toRadians(0)
// )
// ),
// model: {
// uri: “/model/car.glb”,
// scale: 10,
// runAnimations: true, // 是否显示动画
// clampAnimations: true, // 是否保持最后一针的动画
// // roll: 90, // 旋转
// // minimumPixelSize: 128, // 最小的模型像素
// // maximumScale: 20000, // 最大的模型像素
// // color: Cesium.Color.RED, // 模型加颜色
// // show: true,
// // color: this.getColor(‘Red’, 1.0), //> 模型颜色与透明度
// // colorBlendMode: this.getColorBlendMode(‘Highlight’), //> 模型颜色模式
// // colorBlendAmount: parseFloat(0.5), //> 模型混合度
// // silhouetteColor: this.getColor(‘Red’, 1.0), //> 模型轮廓颜色
// // silhouetteSize: parseFloat(2), //> 模型轮廓大小
// }
// })
// // 让摄像机视口快速定位到模型位置
// viewer.value.trackedEntity = entity;
// 2. CZML方式
const czml = [
{
id: “document”,
name: “CZML Model”,
version: “1.0”,
},
{
id: “aircraft model”,
name: “Cesium Air”,
position: {
cartographicDegrees: [120.13699186126235, 30.320240186854843, 0],
},
model: {
gltf: “/model/build.gltf”,
scale: 2.0,
minimumPixelSize: 128,
},
},
];
const dataSourcePromise = viewer.value.dataSources.add(
Cesium.CzmlDataSource.load(czml)
);
dataSourcePromise
.then(function (dataSource) {
viewer.value.trackedEntity = dataSource.entities.getById(
“aircraft model”
);
})
.catch(function (error) {
window.alert(error);
});
//缩放
viewer.value.scene.screenSpaceCameraController.zoomEventTypes = [
Cesium.CameraEventType.WHEEL,
Cesium.CameraEventType.PINCH,
];
//视图视角切换
viewer.value.scene.screenSpaceCameraController.tiltEventTypes = [
Cesium.CameraEventType.PINCH,
Cesium.CameraEventType.RIGHT_DRAG,
];
}
onMounted(() => {
initCesium();
})
</script>
<style scoped>
#cesiumContainer {
position: relative;
width: 100vw;
height: 100vh;
}
</style>
————————————————
2. 分享目的仅供大家学习和交流,请不要用于商业用途!
3. 如果你也有好源码或者教程,可以到用户中心发布,分享有积分奖励和额外收入!
4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解!
5. 如有链接无法下载、失效或广告,请联系管理员处理!
6. 本站资源售价只是赞助,收取费用仅维持本站的日常运营所需!
7. 如遇到加密压缩包,默认解压密码为"gltf",如遇到无法解压的请联系管理员!
8. 因为资源和程序源码均为可复制品,所以不支持任何理由的退款兑现,请斟酌后支付下载
声明:如果标题没有注明"已测试"或者"测试可用"等字样的资源源码均未经过站长测试.特别注意没有标注的源码不保证任何可用性
GLB下载网(glbxz.com)gltf文件下载-glb格式下载-模型制作 » 【CesiumJS-4】加载其他格式3D模型文件(glb、gltf等)
常见问题FAQ
- 免费下载或者VIP会员专享资源能否直接商用?
- 本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。
- 提示下载要提取码
- 分享过期和重复下载怎么办
- 模型和平台不兼容怎么办