修改线报错

This commit is contained in:
2025-08-14 12:01:59 +08:00
parent b4f7e7ad8f
commit 4411c9d17d
2 changed files with 58 additions and 56 deletions

View File

@ -1460,39 +1460,41 @@ class PolylineObject extends Base {
// let ray2 = this.sdk.viewer.camera.getPickRay(point2); // let ray2 = this.sdk.viewer.camera.getPickRay(point2);
// cartesian2 = this.sdk.viewer.scene.globe.pick(ray2, this.sdk.viewer.scene); // cartesian2 = this.sdk.viewer.scene.globe.pick(ray2, this.sdk.viewer.scene);
// } // }
if (cartesian1 && cartesian2) {
var distance = Cesium.Cartesian3.distance(cartesian1, cartesian2);
var repeatX = distance / entity.polyline.width.getValue();
// 根据地图缩放程度调整repeatX
var cameraHeight = this.sdk.viewer.camera.positionCartographic.height;
var boundingSphere = new Cesium.BoundingSphere(
new Cesium.Cartesian3(-1000000, 0, 0), // 中心点坐标
500000 // 半径(距离)
);
// 获取绘图缓冲区的宽度和高度(通常是屏幕的分辨率) var distance = Cesium.Cartesian3.distance(cartesian1, cartesian2);
var drawingBufferWidth = this.sdk.viewer.canvas.clientWidth;
var drawingBufferHeight = this.sdk.viewer.canvas.clientHeight;
// 使用 getPixelSize 方法获取包围球在屏幕上的像素大小 var repeatX = distance / entity.polyline.width.getValue();
var groundResolution = this.sdk.viewer.scene.camera.getPixelSize(boundingSphere, drawingBufferWidth, drawingBufferHeight) // 根据地图缩放程度调整repeatX
// repeatX *= groundResolution / cameraHeight / ((myImg.width / myImg.height * 5) + 1); var cameraHeight = this.sdk.viewer.camera.positionCartographic.height;
if (groundResolution > 700) { var boundingSphere = new Cesium.BoundingSphere(
repeatX *= groundResolution / cameraHeight / (options.space * (canvasEle.width / canvasEle.height * 5) + 1); new Cesium.Cartesian3(-1000000, 0, 0), // 中心点坐标
} else { 500000 // 半径(距离)
repeatX = undefined; );
// 获取绘图缓冲区的宽度和高度(通常是屏幕的分辨率)
var drawingBufferWidth = this.sdk.viewer.canvas.clientWidth;
var drawingBufferHeight = this.sdk.viewer.canvas.clientHeight;
// 使用 getPixelSize 方法获取包围球在屏幕上的像素大小
var groundResolution = this.sdk.viewer.scene.camera.getPixelSize(boundingSphere, drawingBufferWidth, drawingBufferHeight)
// repeatX *= groundResolution / cameraHeight / ((myImg.width / myImg.height * 5) + 1);
if (groundResolution > 700) {
repeatX *= groundResolution / cameraHeight / (options.space * (canvasEle.width / canvasEle.height * 5) + 1);
} else {
repeatX = undefined;
}
if (this.sdk.viewer.scene.mode === Cesium.SceneMode.SCENE3D) {
return repeatX
} else {
let sdk3d = get3DView()
let sdk3dEntity = sdk3d.viewer.entities.getById(this.options.id)
return sdk3dEntity.polyline.oriRepeatX
}
} }
if (this.sdk.viewer.scene.mode === Cesium.SceneMode.SCENE3D) {
return repeatX
} else {
let sdk3d = get3DView()
let sdk3dEntity = sdk3d.viewer.entities.getById(this.options.id)
return sdk3dEntity.polyline.oriRepeatX
}
} }
/** /**
* 编辑框 * 编辑框

View File

@ -880,38 +880,38 @@ class Tools {
let ray2 = this.sdk.viewer.camera.getPickRay(point2); let ray2 = this.sdk.viewer.camera.getPickRay(point2);
let cartesian2 = this.sdk.viewer.scene.globe.pick(ray2, this.sdk.viewer.scene); let cartesian2 = this.sdk.viewer.scene.globe.pick(ray2, this.sdk.viewer.scene);
if (cartesian1 && cartesian2) {
var distance = Cesium.Cartesian3.distance(cartesian1, cartesian2);
var distance = Cesium.Cartesian3.distance(cartesian1, cartesian2); var repeatX = distance / entity.polyline.width.getValue();
// 根据地图缩放程度调整repeatX
var cameraHeight = this.sdk.viewer.camera.positionCartographic.height;
var boundingSphere = new Cesium.BoundingSphere(
new Cesium.Cartesian3(-1000000, 0, 0), // 中心点坐标
500000 // 半径(距离)
);
var repeatX = distance / entity.polyline.width.getValue(); // 获取绘图缓冲区的宽度和高度(通常是屏幕的分辨率)
// 根据地图缩放程度调整repeatX var drawingBufferWidth = this.sdk.viewer.canvas.clientWidth;
var cameraHeight = this.sdk.viewer.camera.positionCartographic.height; var drawingBufferHeight = this.sdk.viewer.canvas.clientHeight;
var boundingSphere = new Cesium.BoundingSphere(
new Cesium.Cartesian3(-1000000, 0, 0), // 中心点坐标
500000 // 半径(距离)
);
// 获取绘图缓冲区的宽度和高度(通常是屏幕的分辨率) // 使用 getPixelSize 方法获取包围球在屏幕上的像素大小
var drawingBufferWidth = this.sdk.viewer.canvas.clientWidth; var groundResolution = this.sdk.viewer.scene.camera.getPixelSize(boundingSphere, drawingBufferWidth, drawingBufferHeight)
var drawingBufferHeight = this.sdk.viewer.canvas.clientHeight; // repeatX *= groundResolution / cameraHeight / ((myImg.width / myImg.height * 5) + 1);
if (groundResolution > 700) {
repeatX *= groundResolution / cameraHeight / (options.space * (canvasEle.width / canvasEle.height * 5) + 1);
} else {
repeatX = undefined;
}
// 使用 getPixelSize 方法获取包围球在屏幕上的像素大小 if (this.sdk.viewer.scene.mode === Cesium.SceneMode.SCENE3D) {
var groundResolution = this.sdk.viewer.scene.camera.getPixelSize(boundingSphere, drawingBufferWidth, drawingBufferHeight) return repeatX
// repeatX *= groundResolution / cameraHeight / ((myImg.width / myImg.height * 5) + 1); } else {
if (groundResolution > 700) { let sdk3d = get3DView()
repeatX *= groundResolution / cameraHeight / (options.space * (canvasEle.width / canvasEle.height * 5) + 1); let sdk3dEntity = sdk3d.viewer.entities.getById(this.options.id)
} else { return sdk3dEntity.polyline.oriRepeatX
repeatX = undefined; }
} }
if (this.sdk.viewer.scene.mode === Cesium.SceneMode.SCENE3D) {
return repeatX
} else {
let sdk3d = get3DView()
let sdk3dEntity = sdk3d.viewer.entities.getById(this.options.id)
return sdk3dEntity.polyline.oriRepeatX
}
} }
/*创建直箭头图片*/ /*创建直箭头图片*/