Cesium工具封装
加载gltf模型
let modelMatrix = Cesium.Transforms.eastNorthUpToFixedFrame(Cesium.Cartesian3.fromDegrees(经度,纬度,高度0));
let model = window.viewer.scene.primitives.add(
Cesium.Model.fromGltf({
id: '唯一id不写cesium会默认生成一个',
url:'写文件地址',
modelMatrix: modelMatrix,
scale:modeHeight?.scale || 1,
})
);
entity相关
1.获取eneity实体的坐标
getPositionsByEnity(entity) {
if (entity) {
if (entity.polygon) {
return JSON.stringify(
this.getLngLatByCartesian3(
entity.polygon.hierarchy.getValue().positions
)
);
} else if (entity.rectangle) {
let rectangle = entity.rectangle.coordinates.getValue();
let result = [];
Cesium.Rectangle.subsample(
rectangle,
Cesium.Ellipsoid.WGS84,
rectangle.height,
result
);
return JSON.stringify(this.getLngLatByCartesian3(result));
} else if (entity.point) {
return JSON.stringify(
this.getLngLatByCartesian3(entity.position._value)
);
} else if (entity.ellipse) {
let res = {
center: this.getLngLatByCartesian3(entity.position._value),
radius: entity.ellipse.semiMajorAxis.getValue(),
};
return JSON.stringify(res);
} else if (entity.polyline) {
return this.getLngLatByCartesian3(entity.polyline.positions.getValue(), 'polyline')
}
}
return undefined;
},
getLngLatByCartesian3(car3_ps, type) {
let result = null;
if (car3_ps instanceof Cesium.Cartesian3) {
let _cartographic = Cesium.Cartographic.fromCartesian(car3_ps);
let _lat = Cesium.Math.toDegrees(_cartographic.latitude);
let _lng = Cesium.Math.toDegrees(_cartographic.longitude);
let _alt = _cartographic.height;
if (type == 'polyline') {
result = { longitude: _lng, latitude: _lat, elevation: _alt }
} else {
result = { lng: _lng, lat: _lat, alt: _alt }
}
return result;
} else if (car3_ps instanceof Array) {
let res = [];
for (let i = 0; i < car3_ps.length; i++) {
let _cartographic = Cesium.Cartographic.fromCartesian(car3_ps[i]);
let _lat = Cesium.Math.toDegrees(_cartographic.latitude);
let _lng = Cesium.Math.toDegrees(_cartographic.longitude);
let _alt = _cartographic.height;
if (type == 'polyline') {
res.push({ longitude: _lng, latitude: _lat, elevation: _alt })
} else {
res.push({ lng: _lng, lat: _lat, alt: _alt })
}
}
return res;
}
}
删除entity
var radar = viewer.entities.getById('radar');
viewer.entities.remove(radarEntity);
var radar = viewer.entities.getById('radar');
viewer.entities.remove(radar );
viewer.entities.removeAll();