数据有两个文件
.glb文件
.json 文件
这个shpere 中一共有4各参数
0:x, 1:y, 2:z 3:半径
xyz 转换成经纬度和高度
getjwd(x, y, z) {
const ellipsoid = this.$cesiumViewer.scene.globe.ellipsoid
const cartesian3 = new Cesium.Cartesian3(x, y, z)
const cartographic = ellipsoid.cartesianToCartographic(cartesian3)
const lat = Cesium.Math.toDegrees(cartographic.latitude)
const lon = Cesium.Math.toDegrees(cartographic.longitude)
const alt = cartographic.height
return {
lon,
lat,
alt,
}
},
加载glb数据
add3DEntityModel(‘glb地址’,‘经度’,‘纬度’,‘高度’,v_heading,v_pitch,v_roll)
add3DEntityModel(uri,longitude,latitude,height,v_heading,v_pitch,v_roll) {
this.$cesiumViewer.entities.removeAll();
//位置(弧度单位)
var position = Cesium.Cartesian3.fromDegrees(longitude, latitude, height);
var heading = Cesium.Math.toRadians(v_heading);
var pitch = Cesium.Math.toRadians(v_pitch);
var roll = Cesium.Math.toRadians(v_roll);
var hpr = new Cesium.HeadingPitchRoll(heading, pitch, roll);
//朝向(弧度单位)
var orientation = Cesium.Transforms.headingPitchRollQuaternion(position, hpr);
var entity = this.$cesiumViewer.entities.add({
name : uri,
description:"<div><p>这是一个飞机!</div>", // 这是模型的描述属性,可以是html标签
position : position,
orientation : orientation,
model : {
uri : uri,
minimumPixelSize : 128,
maximumScale : 20000
}
});
//取或设置相机当前正在跟踪的Entity实例。
//this.$cesiumViewer.trackedEntity = entity;
}
可以直接使用他的xyz 不需要转
这个数据会转成xyz ,所以可以将position换成
add3DEntityModel(uri,xyz,v_heading,v_pitch,v_roll) {
this.$cesiumViewer.entities.removeAll();
//位置(弧度单位)
var position ={
x:xyz.x,y:xyz.y,z:xyz.z,
}
var heading = Cesium.Math.toRadians(v_heading);
var pitch = Cesium.Math.toRadians(v_pitch);
var roll = Cesium.Math.toRadians(v_roll);
var hpr = new Cesium.HeadingPitchRoll(heading, pitch, roll);
//朝向(弧度单位)
var orientation = Cesium.Transforms.headingPitchRollQuaternion(position, hpr);
var entity = this.$cesiumViewer.entities.add({
name : uri,
description:"<div><p>这是一个飞机!</div>", // 这是模型的描述属性,可以是html标签
position : position,
orientation : orientation,
model : {
uri : uri,
minimumPixelSize : 128,
maximumScale : 20000
}
});
//取或设置相机当前正在跟踪的Entity实例。
//this.$cesiumViewer.trackedEntity = entity;
}