Merge branch 'master' of https://git.code.tencent.com/beijing-rtss-test/bj-rtss-client
This commit is contained in:
commit
8abb01a1c1
@ -30,19 +30,17 @@ export class Slope extends JlGraphic {
|
|||||||
lineGraphic: Graphics;
|
lineGraphic: Graphics;
|
||||||
slopeNumber: VectorText;
|
slopeNumber: VectorText;
|
||||||
slopeLong: VectorText;
|
slopeLong: VectorText;
|
||||||
|
changePoints: IPointData[] = [];
|
||||||
constructor() {
|
constructor() {
|
||||||
super(Slope.Type);
|
super(Slope.Type);
|
||||||
this.lineGraphic = new Graphics();
|
this.lineGraphic = new Graphics();
|
||||||
this.slopeNumber = new VectorText();
|
this.slopeNumber = new VectorText();
|
||||||
this.slopeNumber.name = 'slopeNumber';
|
|
||||||
this.slopeLong = new VectorText();
|
this.slopeLong = new VectorText();
|
||||||
this.slopeLong.name = 'slopeLong';
|
|
||||||
const vectorTexts = [this.slopeNumber, this.slopeLong];
|
const vectorTexts = [this.slopeNumber, this.slopeLong];
|
||||||
vectorTexts.forEach((vectorText) => {
|
vectorTexts.forEach((vectorText) => {
|
||||||
vectorText.setVectorFontSize(14);
|
vectorText.setVectorFontSize(14);
|
||||||
vectorText.anchor.set(0.5);
|
vectorText.anchor.set(0.5);
|
||||||
vectorText.style.fill = '0xffffff';
|
vectorText.style.fill = '0xffffff';
|
||||||
vectorText.transformSave = true;
|
|
||||||
});
|
});
|
||||||
this.transformSave = true;
|
this.transformSave = true;
|
||||||
this.addChild(this.lineGraphic);
|
this.addChild(this.lineGraphic);
|
||||||
@ -69,29 +67,21 @@ export class Slope extends JlGraphic {
|
|||||||
this.datas.points.forEach((p, i) => {
|
this.datas.points.forEach((p, i) => {
|
||||||
if (i !== 0) {
|
if (i !== 0) {
|
||||||
this.lineGraphic.lineTo(p.x, p.y + distanceY);
|
this.lineGraphic.lineTo(p.x, p.y + distanceY);
|
||||||
|
this.changePoints.push({ x: p.x, y: p.y + distanceY });
|
||||||
} else {
|
} else {
|
||||||
this.lineGraphic.moveTo(p.x, p.y - distanceY);
|
this.lineGraphic.moveTo(p.x, p.y - distanceY);
|
||||||
|
this.changePoints.push({ x: p.x, y: p.y - distanceY });
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
//坡度值
|
//坡度值
|
||||||
this.slopeNumber.text = Math.abs(
|
this.slopeNumber.text = Math.abs(
|
||||||
parseFloat(this.datas.slopeNumber / 1000 + '')
|
parseFloat(this.datas.slopeNumber / 1000 + '')
|
||||||
);
|
);
|
||||||
const slopeNumberPosition = this.datas.childTransforms?.find(
|
const centerPos = calculateLineMidpoint(
|
||||||
(t) => t.name === this.slopeNumber.name
|
this.datas.points[0],
|
||||||
)?.transform.position;
|
this.datas.points[this.datas.points.length - 1]
|
||||||
if (slopeNumberPosition) {
|
);
|
||||||
this.slopeNumber.position.set(
|
this.slopeNumber.position.set(centerPos.x, centerPos.y - 15);
|
||||||
slopeNumberPosition.x,
|
|
||||||
slopeNumberPosition.y
|
|
||||||
);
|
|
||||||
} else {
|
|
||||||
const centerPos = calculateLineMidpoint(
|
|
||||||
this.datas.points[0],
|
|
||||||
this.datas.points[this.datas.points.length - 1]
|
|
||||||
);
|
|
||||||
this.slopeNumber.position.set(centerPos.x, centerPos.y - 15);
|
|
||||||
}
|
|
||||||
//坡度长度
|
//坡度长度
|
||||||
const slopeKiloMarkerL = this.queryStore.queryById(
|
const slopeKiloMarkerL = this.queryStore.queryById(
|
||||||
this.datas.refDeviceId[0]
|
this.datas.refDeviceId[0]
|
||||||
@ -102,18 +92,7 @@ export class Slope extends JlGraphic {
|
|||||||
this.slopeLong.text =
|
this.slopeLong.text =
|
||||||
slopeKiloMarkerR.datas.kilometerSystem[0]?.kilometer -
|
slopeKiloMarkerR.datas.kilometerSystem[0]?.kilometer -
|
||||||
slopeKiloMarkerL.datas.kilometerSystem[0]?.kilometer;
|
slopeKiloMarkerL.datas.kilometerSystem[0]?.kilometer;
|
||||||
const slopeLongPosition = this.datas.childTransforms?.find(
|
this.slopeLong.position.set(centerPos.x, centerPos.y + 15);
|
||||||
(t) => t.name === this.slopeLong.name
|
|
||||||
)?.transform.position;
|
|
||||||
if (slopeLongPosition) {
|
|
||||||
this.slopeLong.position.set(slopeLongPosition.x, slopeLongPosition.y);
|
|
||||||
} else {
|
|
||||||
const centerPos = calculateLineMidpoint(
|
|
||||||
this.datas.points[0],
|
|
||||||
this.datas.points[this.datas.points.length - 1]
|
|
||||||
);
|
|
||||||
this.slopeLong.position.set(centerPos.x, centerPos.y + 15);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
loadRelations() {
|
loadRelations() {
|
||||||
if (this.datas.refDeviceId.length) {
|
if (this.datas.refDeviceId.length) {
|
||||||
|
@ -110,14 +110,11 @@ class SlopeGraphicHitArea implements IHitArea {
|
|||||||
this.slope = slope;
|
this.slope = slope;
|
||||||
}
|
}
|
||||||
contains(x: number, y: number): boolean {
|
contains(x: number, y: number): boolean {
|
||||||
for (let i = 1; i < this.slope.datas.points.length; i++) {
|
let contains = false;
|
||||||
const p1 = this.slope.datas.points[i - 1];
|
const p1 = this.slope.changePoints[0];
|
||||||
const p2 = this.slope.datas.points[i];
|
const p2 = this.slope.changePoints[1];
|
||||||
if (linePoint(p1, p2, { x, y }, SlopeConsts.lineWidth)) {
|
contains = contains || linePoint(p1, p2, { x, y }, SlopeConsts.lineWidth);
|
||||||
return true;
|
return contains;
|
||||||
}
|
|
||||||
}
|
|
||||||
return false;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user