bill 1 anno fa
parent
commit
b9f61b2d8a

+ 148 - 37
src/graphic/Load.js

@@ -47,7 +47,10 @@ export default class Load {
       }
 
       if (dataLocal.backgroundImg) {
-        let bgImg = imageService.createBackgroundImg(dataLocal.backgroundImg.src, dataLocal.backgroundImg.vectorId);
+        let bgImg = imageService.createBackgroundImg(
+          dataLocal.backgroundImg.src,
+          dataLocal.backgroundImg.vectorId
+        );
         bgImg.setCenter(dataLocal.backgroundImg.center);
         // bgImg.setDisplay(dataLocal.backgroundImg.display);
         bgImg.setDisplay(true); //背景图始终显示
@@ -62,7 +65,11 @@ export default class Load {
 
       if (dataLocal.circles) {
         for (let key in dataLocal.circles) {
-          let circle = circleService.create(dataLocal.circles[key].center, dataLocal.circles[key].radius || dataLocal.circles[key].radiusX, key);
+          let circle = circleService.create(
+            dataLocal.circles[key].center,
+            dataLocal.circles[key].radius || dataLocal.circles[key].radiusX,
+            key
+          );
           circle.setRadiusX(dataLocal.circles[key].radiusX);
           circle.setRadiusY(dataLocal.circles[key].radiusY);
           circle.setPoints(dataLocal.circles[key].points);
@@ -73,7 +80,10 @@ export default class Load {
 
       if (dataLocal.magnifiers) {
         for (let key in dataLocal.magnifiers) {
-          let magnifier = magnifierService.create(dataLocal.magnifiers[key].position, key);
+          let magnifier = magnifierService.create(
+            dataLocal.magnifiers[key].position,
+            key
+          );
           magnifier.setSrc(dataLocal.magnifiers[key].photoUrl);
           magnifier.setDisplay(dataLocal.magnifiers[key].display);
 
@@ -91,7 +101,9 @@ export default class Load {
         for (let key in dataLocal.points) {
           let point = pointService.create(dataLocal.points[key], key);
           point.setCategory(dataLocal.points[key].category);
-          point.setParent(JSON.parse(JSON.stringify(dataLocal.points[key].parent)));
+          point.setParent(
+            JSON.parse(JSON.stringify(dataLocal.points[key].parent))
+          );
           point.setDisplay(dataLocal.points[key].display);
           point.setLocationMode(dataLocal.points[key].locationMode);
           point.setLinkedBasePointId(dataLocal.points[key].linkedBasePointId);
@@ -111,14 +123,23 @@ export default class Load {
 
       if (dataLocal.svgs) {
         for (let key in dataLocal.svgs) {
-          let svg = svgService.create(dataLocal.svgs[key].center, dataLocal.svgs[key].type, dataLocal.svgs[key].vectorId);
+          let svg = svgService.create(
+            dataLocal.svgs[key].center,
+            dataLocal.svgs[key].type,
+            dataLocal.svgs[key].vectorId
+          );
           svg.setPoints(dataLocal.svgs[key].points);
         }
       }
 
       if (dataLocal.lines) {
         for (let key in dataLocal.lines) {
-          let line = lineService.createByPointId(dataLocal.lines[key].startId, dataLocal.lines[key].endId, dataLocal.lines[key].category, key);
+          let line = lineService.createByPointId(
+            dataLocal.lines[key].startId,
+            dataLocal.lines[key].endId,
+            dataLocal.lines[key].category,
+            key
+          );
 
           if (dataLocal.lines[key].style) {
             line.setStyle(dataLocal.lines[key].style);
@@ -155,7 +176,10 @@ export default class Load {
       if (dataLocal.curvePoints) {
         for (let key in dataLocal.curvePoints) {
           let curvePointData = dataLocal.curvePoints[key];
-          let curvePoint = curvePointService.create(curvePointData, curvePointData.vectorId);
+          let curvePoint = curvePointService.create(
+            curvePointData,
+            curvePointData.vectorId
+          );
           curvePoint.setIndex(curvePointData.index);
           curvePoint.setPointParent(curvePointData.parent);
           dataService.addCurvePoint(curvePoint);
@@ -165,7 +189,10 @@ export default class Load {
       if (dataLocal.curvelines) {
         for (let key in dataLocal.curvelines) {
           let curveLineData = dataLocal.curvelines[key];
-          let curveLine = lineService.createCurveLineByPointIds(curveLineData.points, curveLineData.vectorId);
+          let curveLine = lineService.createCurveLineByPointIds(
+            curveLineData.points,
+            curveLineData.vectorId
+          );
           curveLine.setStyle(curveLineData.style);
           curveLine.setWeight(curveLineData.weight);
           dataService.addCurveLine(curveLine);
@@ -175,7 +202,10 @@ export default class Load {
       if (dataLocal.roadPoints) {
         for (let key in dataLocal.roadPoints) {
           let roadPointData = dataLocal.roadPoints[key];
-          let roadPoint = roadPointService.create(dataLocal.roadPoints[key], dataLocal.roadPoints[key].vectorId);
+          let roadPoint = roadPointService.create(
+            dataLocal.roadPoints[key],
+            dataLocal.roadPoints[key].vectorId
+          );
           roadPoint.parent = JSON.parse(JSON.stringify(roadPointData.parent));
         }
       }
@@ -183,10 +213,20 @@ export default class Load {
       if (dataLocal.roads) {
         for (let key in dataLocal.roads) {
           uiService.setWayType(dataLocal.roads[key].way);
-          uiService.setSingleRoadDrivewayCount(dataLocal.roads[key].singleRoadDrivewayCount);
-          uiService.setRoadLeftDrivewayCount(dataLocal.roads[key].leftDrivewayCount);
-          uiService.setRoadRightDrivewayCount(dataLocal.roads[key].rightDrivewayCount);
-          let road = new Road(dataLocal.roads[key].startId, dataLocal.roads[key].endId, dataLocal.roads[key].vectorId);
+          uiService.setSingleRoadDrivewayCount(
+            dataLocal.roads[key].singleRoadDrivewayCount
+          );
+          uiService.setRoadLeftDrivewayCount(
+            dataLocal.roads[key].leftDrivewayCount
+          );
+          uiService.setRoadRightDrivewayCount(
+            dataLocal.roads[key].rightDrivewayCount
+          );
+          let road = new Road(
+            dataLocal.roads[key].startId,
+            dataLocal.roads[key].endId,
+            dataLocal.roads[key].vectorId
+          );
           dataService.addRoad(road);
 
           road.setWidth(dataLocal.roads[key].leftWidth, "left");
@@ -210,7 +250,12 @@ export default class Load {
           if (!roads.includes(edge.parent)) {
             roads.push(edge.parent);
           }
-          let newEdge = edgeService.create(edge.start, edge.end, edge.vectorId, edge.parent);
+          let newEdge = edgeService.create(
+            edge.start,
+            edge.end,
+            edge.vectorId,
+            edge.parent
+          );
 
           if (edge.style) {
             newEdge.setStyle(edge.style);
@@ -234,7 +279,10 @@ export default class Load {
 
       if (dataLocal.curveRoadPoints) {
         for (let key in dataLocal.curveRoadPoints) {
-          let curveRoadPoint = curveRoadPointService.create(dataLocal.curveRoadPoints[key], dataLocal.curveRoadPoints[key].vectorId);
+          let curveRoadPoint = curveRoadPointService.create(
+            dataLocal.curveRoadPoints[key],
+            dataLocal.curveRoadPoints[key].vectorId
+          );
           curveRoadPoint.setIndex(dataLocal.curveRoadPoints[key].index);
           curveRoadPoint.setParent(dataLocal.curveRoadPoints[key].parent);
         }
@@ -243,7 +291,13 @@ export default class Load {
       if (dataLocal.curveRoadEdges) {
         for (let key in dataLocal.curveRoadEdges) {
           let curveRoadEdgeData = dataLocal.curveRoadEdges[key];
-          let curveRoadEdge = curveEdgeService.create(curveRoadEdgeData.start, curveRoadEdgeData.end, curveRoadEdgeData.vectorId, curveRoadEdgeData.parentId, curveRoadEdgeData.points);
+          let curveRoadEdge = curveEdgeService.create(
+            curveRoadEdgeData.start,
+            curveRoadEdgeData.end,
+            curveRoadEdgeData.vectorId,
+            curveRoadEdgeData.parentId,
+            curveRoadEdgeData.points
+          );
           curveRoadEdge.setStyle(curveRoadEdgeData.style);
           curveRoadEdge.setWeight(curveRoadEdgeData.weight);
           curveRoadEdge.setParent(curveRoadEdgeData.parent);
@@ -257,7 +311,11 @@ export default class Load {
       if (dataLocal.curveRoads) {
         for (let key in dataLocal.curveRoads) {
           let curveRoadData = dataLocal.curveRoads[key];
-          let curveRoad = new CurveRoad(curveRoadData.startId, curveRoadData.endId, curveRoadData.vectorId);
+          let curveRoad = new CurveRoad(
+            curveRoadData.startId,
+            curveRoadData.endId,
+            curveRoadData.vectorId
+          );
           dataService.addCurveRoad(curveRoad);
 
           curveRoad.leftEdgeId = curveRoadData.leftEdgeId;
@@ -265,24 +323,41 @@ export default class Load {
 
           curveRoad.points = [];
           for (let i = 0; i < curveRoadData.points.length; ++i) {
-            curveRoad.points[i] = dataService.getCurveRoadPoint(curveRoadData.points[i].vectorId);
+            curveRoad.points[i] = dataService.getCurveRoadPoint(
+              curveRoadData.points[i].vectorId
+            );
           }
 
           curveRoad.curves = JSON.parse(JSON.stringify(curveRoadData.curves));
           curveRoad.way = curveRoadData.way;
           curveRoad.singleCurveRoadWidth = curveRoadData.singleCurveRoadWidth;
-          curveRoad.singleCurveRoadDrivewayCount = curveRoadData.singleCurveRoadDrivewayCount;
-          curveRoad.singleLanesCurves = JSON.parse(JSON.stringify(curveRoadData.singleLanesCurves));
-          curveRoad.singleLanesCurves = JSON.parse(JSON.stringify(curveRoadData.singleLanes));
+          curveRoad.singleCurveRoadDrivewayCount =
+            curveRoadData.singleCurveRoadDrivewayCount;
+          curveRoad.singleLanesCurves = JSON.parse(
+            JSON.stringify(curveRoadData.singleLanesCurves)
+          );
+          curveRoad.singleLanesCurves = JSON.parse(
+            JSON.stringify(curveRoadData.singleLanes)
+          );
           curveRoad.leftWidth = curveRoadData.leftWidth;
           curveRoad.rightWidth = curveRoadData.rightWidth;
           curveRoad.leftDrivewayCount = curveRoadData.leftDrivewayCount;
           curveRoad.rightDrivewayCount = curveRoadData.rightDrivewayCount;
-          curveRoad.midDivide = JSON.parse(JSON.stringify(curveRoadData.midDivide));
-          curveRoad.leftLanesCurves = JSON.parse(JSON.stringify(curveRoadData.leftLanesCurves));
-          curveRoad.rightLanesCurves = JSON.parse(JSON.stringify(curveRoadData.rightLanesCurves));
-          curveRoad.leftLanes = JSON.parse(JSON.stringify(curveRoadData.leftLanes));
-          curveRoad.rightLanes = JSON.parse(JSON.stringify(curveRoadData.rightLanes));
+          curveRoad.midDivide = JSON.parse(
+            JSON.stringify(curveRoadData.midDivide)
+          );
+          curveRoad.leftLanesCurves = JSON.parse(
+            JSON.stringify(curveRoadData.leftLanesCurves)
+          );
+          curveRoad.rightLanesCurves = JSON.parse(
+            JSON.stringify(curveRoadData.rightLanesCurves)
+          );
+          curveRoad.leftLanes = JSON.parse(
+            JSON.stringify(curveRoadData.leftLanes)
+          );
+          curveRoad.rightLanes = JSON.parse(
+            JSON.stringify(curveRoadData.rightLanes)
+          );
         }
       }
 
@@ -298,7 +373,9 @@ export default class Load {
             crossPointData.vectorId
           );
           crossPoint.curves = JSON.parse(JSON.stringify(crossPointData.curves));
-          crossPoint.extremePoint = JSON.parse(JSON.stringify(crossPointData.extremePoint));
+          crossPoint.extremePoint = JSON.parse(
+            JSON.stringify(crossPointData.extremePoint)
+          );
           crossPoint.style = crossPointData.style;
           crossPoint.weight = crossPointData.weight;
           dataService.addCrossPoint(crossPoint);
@@ -326,7 +403,10 @@ export default class Load {
       }
     } else if (data3d) {
       if (data3d.backImage) {
-        let bgImg = imageService.createBackgroundImg(data3d.backImage, data3d.vectorId);
+        let bgImg = imageService.createBackgroundImg(
+          data3d.backImage,
+          data3d.vectorId
+        );
         bgImg.setCenter(coordinate.center);
         try {
           if (bgImg.src) {
@@ -341,9 +421,16 @@ export default class Load {
         if (data3d.baseLines) {
           for (let i = 0; i < data3d.baseLines.length; ++i) {
             //理论上基准线只能有一条
-            let baseLine = lineService.create(this.getXY(width, height, data3d.baseLines[i][0]), this.getXY(width, height, data3d.baseLines[i][1]), VectorCategory.Line.BaseLine);
+            let baseLine = lineService.create(
+              this.getXY(width, height, data3d.baseLines[i][0]),
+              this.getXY(width, height, data3d.baseLines[i][1]),
+              VectorCategory.Line.BaseLine
+            );
             Settings.baseLineId = baseLine.vectorId;
-            const geometryBaseLine = mathUtil.createLine1(dataService.getPoint(baseLine.startId), dataService.getPoint(baseLine.endId));
+            const geometryBaseLine = mathUtil.createLine1(
+              dataService.getPoint(baseLine.startId),
+              dataService.getPoint(baseLine.endId)
+            );
             //文字要和基准线的方向一致
             if (typeof geometryBaseLine.a != "undefined") {
               angle = Math.atan(geometryBaseLine.a);
@@ -354,11 +441,23 @@ export default class Load {
             }
           }
         }
+        if (data3d.fixGraph) {
+          data3d.fixGraph.map((graph) => {
+            // graph points
+            for (let i = 0; i < graph.length; i++) {
+              const point = graph[i];
+            }
+          });
+        }
         if (data3d.measures) {
           for (let i = 0; i < data3d.measures.length; ++i) {
             //理论上基准线只能有一条
             //
-            const line = lineService.create(this.getXY(width, height, data3d.measures[i].pos[0]), this.getXY(width, height, data3d.measures[i].pos[1]), VectorCategory.Line.MeasureLine);
+            const line = lineService.create(
+              this.getXY(width, height, data3d.measures[i].pos[0]),
+              this.getXY(width, height, data3d.measures[i].pos[1]),
+              VectorCategory.Line.MeasureLine
+            );
             if (line && data3d.measures[i].dis) {
               line.value = data3d.measures[i].dis;
             }
@@ -366,15 +465,21 @@ export default class Load {
         }
         if (data3d.basePoints) {
           for (let i = 0; i < data3d.basePoints.length; ++i) {
-            let point = pointService.create(this.getXY(width, height, data3d.basePoints[i]));
+            let point = pointService.create(
+              this.getXY(width, height, data3d.basePoints[i])
+            );
             point.setCategory(VectorCategory.Point.BasePoint);
           }
         }
         if (data3d.fixPoints) {
           for (let i = 0; i < data3d.fixPoints.length; ++i) {
-            let point = pointService.create(this.getXY(width, height, data3d.fixPoints[i].pos));
+            let point = pointService.create(
+              this.getXY(width, height, data3d.fixPoints[i].pos)
+            );
             point.setCategory(VectorCategory.Point.FixPoint);
-            let text = textService.create(this.getXY(width, height, data3d.fixPoints[i].pos));
+            let text = textService.create(
+              this.getXY(width, height, data3d.fixPoints[i].pos)
+            );
             text.setValue(data3d.fixPoints[i].text);
             // text.setAngle(angle);
             // text.setDisplayPoint(true);
@@ -385,9 +490,15 @@ export default class Load {
         }
       }
     }
-    uiService.setRoadMidDivideWidth(Constant.defaultMidDivideWidth / coordinate.res);
-    uiService.setCurveRoadMidDivideWidth(Constant.defaultMidDivideWidth / coordinate.res);
-    uiService.setSingleLaneWidth(Constant.defaultSingleLaneWidth / coordinate.res);
+    uiService.setRoadMidDivideWidth(
+      Constant.defaultMidDivideWidth / coordinate.res
+    );
+    uiService.setCurveRoadMidDivideWidth(
+      Constant.defaultMidDivideWidth / coordinate.res
+    );
+    uiService.setSingleLaneWidth(
+      Constant.defaultSingleLaneWidth / coordinate.res
+    );
 
     if (Settings.baseLineId) {
       this.layer.updateForLocation();

+ 1 - 1
src/sdk/types/sdk.ts

@@ -354,7 +354,7 @@ export type FixPoint3D = {
     graphDrawComplete: boolean;
 
     // 测量线已经更改事件,  返回 [[pos, pos], [pos, pos]] 多组线段
-    measureChange: Pos3D[][];
+    measureChange: { line: Pos3D[]; dis: number }[];
     // 形状被修改事件 返回形状点路径,还有中心点位置
     graphChange: { path: Pos3D[]; center: Pos3D };
   }>;

+ 1 - 0
src/views/graphic/data.ts

@@ -35,6 +35,7 @@ export const useData = () => {
             measures: photo.measures,
             basePoints: photo.basePoints,
             baseLines: photo.baseLines,
+
             fixPoints: photo.fixPoints,
           },
           photoUrl: photo.url,

+ 1 - 0
src/views/scene/covers/fixPoints.vue

@@ -56,6 +56,7 @@ watchEffect(() => {
 
 const selectMeasure = ref(false);
 const select = (point: FixPoint, onMeasure: boolean = false) => {
+  console.error(onMeasure);
   selectMeasure.value = onMeasure;
   customMap.activeFixPoint = point;
 };

+ 7 - 5
src/views/scene/fixManage.ts

@@ -170,15 +170,17 @@ export const getFix3d = (data: FixPoint) => {
   }
 
   if (data.measure) {
-    fix3d.bus.on("measureChange", (lines) => {
-      Object.assign(data, { lines });
+    fix3d.bus.on("measureChange", (p) => {
+      Object.assign(data, {
+        lines: p.map((item) => ({ points: item?.line, dis: item?.dis })),
+      });
     });
   }
 
   if (args.graph) {
-    fix3d.bus.on("graphChange", (data) => {
-      console.error(data);
-      // Object.assign(data, { line: path, pos: center });
+    fix3d.bus.on("graphChange", (p) => {
+      console.log(data);
+      Object.assign(data, { points: p?.path, pos: p?.center });
     });
   }
   fix3ds[data.id] = fix3d;