基站模型错误修复

This commit is contained in:
2026-07-28 10:08:55 +08:00
parent 2daca66ab7
commit e8f627cc25
+10 -1
View File
@@ -114,6 +114,8 @@ const base_station_range_segment_count = 96;
const base_station_range_boundary_sample_count = 72;
const base_station_range_ground_clearance = 2;
const default_camera_rectangle = Cesium.Rectangle.fromDegrees(119.98, 36.42, 122.56, 38.40);
const base_station_model_bottom_y = 0.19261999428272247;
const device_model_bottom_y = 4.06771041452885;
export class Cesium_Map extends enhance.Base {
viewer: Cesium.Viewer | null = null;
container_id = "cesium-map";
@@ -834,6 +836,7 @@ export class Cesium_Map extends enhance.Base {
uri: this.model_config.deviceModel.url,
minimumPixelSize: this.device_display_size(ds),
maximumScale: 500,
nodeTransformations: this.device_node_transformations(),
enableVerticalExaggeration: false
},
label: {
@@ -941,6 +944,7 @@ export class Cesium_Map extends enhance.Base {
record.device.model.minimumPixelSize = new Cesium.ConstantProperty(0);
record.device.model.maximumScale = new Cesium.ConstantProperty(500);
}
record.device.model.nodeTransformations = new Cesium.PropertyBag(this.device_node_transformations());
this.keep_model_original_color(record.device.model);
record.device.model.enableVerticalExaggeration = new Cesium.ConstantProperty(false);
}
@@ -1163,7 +1167,12 @@ export class Cesium_Map extends enhance.Base {
base_station_node_transformations(ds: Data_Source): {[key: string]: Cesium.TranslationRotationScale} {
const horizontal_scale = Math.max(0.000001, ds.map3d_style().base_station_scale || 1);
return {
Node: new Cesium.TranslationRotationScale(Cesium.Cartesian3.ZERO, Cesium.Quaternion.IDENTITY, new Cesium.Cartesian3(horizontal_scale, 1, horizontal_scale))
Node: new Cesium.TranslationRotationScale(new Cesium.Cartesian3(0, -base_station_model_bottom_y, 0), Cesium.Quaternion.IDENTITY, new Cesium.Cartesian3(horizontal_scale, 1, horizontal_scale))
};
}
device_node_transformations(): {[key: string]: Cesium.TranslationRotationScale} {
return {
RootNode: new Cesium.TranslationRotationScale(new Cesium.Cartesian3(0, -device_model_bottom_y, 0), Cesium.Quaternion.IDENTITY, new Cesium.Cartesian3(1, 1, 1))
};
}
device_display_size(ds: Data_Source): number {