Browse Source

修复bug

xushiting 2 years ago
parent
commit
0d3905a2a6

+ 4 - 4
src/graphic/History/HistoryUtil.js

@@ -174,19 +174,19 @@ export default class HistoryUtil {
           road1.leftDrivewayCount == road2.leftDrivewayCount &&
           road1.rightDrivewayCount == road2.rightDrivewayCount &&
           road1.midDivide.midDivideWidth == road2.midDivide.midDivideWidth &&
-          mathUtil.clonePoint(
+          mathUtil.equalPoint(
             road1.midDivide.leftMidDivide.start,
             road2.midDivide.leftMidDivide.start
           ) &&
-          mathUtil.clonePoint(
+          mathUtil.equalPoint(
             road1.midDivide.leftMidDivide.end,
             road2.midDivide.leftMidDivide.end
           ) &&
-          mathUtil.clonePoint(
+          mathUtil.equalPoint(
             road1.midDivide.rightMidDivide.start,
             road2.midDivide.rightMidDivide.start
           ) &&
-          mathUtil.clonePoint(
+          mathUtil.equalPoint(
             road1.midDivide.rightMidDivide.end,
             road2.midDivide.rightMidDivide.end
           ) &&

+ 2 - 1
src/graphic/Layer.js

@@ -998,9 +998,10 @@ export default class Layer {
         let point = dataService.getRoadPoint(draggingItem.vectorId);
         if (point) {
           listenLayer.start(point, {
-            exceptPointId: draggingItem.vectorId,
+            exceptRoadPointId: draggingItem.vectorId,
             exceptRoadIds: point.parent,
           });
+
           if (
             listenLayer.modifyPoint &&
             listenLayer.modifyPoint.hasOwnProperty("linkedRoadPointId")

+ 4 - 4
src/graphic/Service/EdgeService.js

@@ -138,8 +138,8 @@ export default class EdgeService {
 
         newEdgePoint1 = mathUtil.getJoinLinePoint(startPoint1, lineLeft2);
         newEdgePoint2 = mathUtil.getJoinLinePoint(startPoint1, lineRight2);
-        mathUtil.clonePoint(rightEdge2.start, newEdgePoint1);
-        mathUtil.clonePoint(leftEdge2.start, newEdgePoint2);
+        mathUtil.clonePoint(leftEdge2.start, newEdgePoint1);
+        mathUtil.clonePoint(rightEdge2.start, newEdgePoint2);
       } else {
         newEdgePoint1 = mathUtil.getIntersectionPoint(lineLeft1, lineRight2);
         newEdgePoint2 = mathUtil.getIntersectionPoint(lineLeft2, lineRight1);
@@ -373,8 +373,8 @@ export default class EdgeService {
 
         newEdgePoint1 = mathUtil.getJoinLinePoint(endPoint1, lineLeft2);
         newEdgePoint2 = mathUtil.getJoinLinePoint(endPoint1, lineRight2);
-        mathUtil.clonePoint(rightEdge2.end, newEdgePoint1);
-        mathUtil.clonePoint(leftEdge2.end, newEdgePoint2);
+        mathUtil.clonePoint(leftEdge2.end, newEdgePoint1);
+        mathUtil.clonePoint(rightEdge2.end, newEdgePoint2);
       } else {
         newEdgePoint1 = mathUtil.getIntersectionPoint(lineLeft1, lineRight2);
         newEdgePoint2 = mathUtil.getIntersectionPoint(lineLeft2, lineRight1);

+ 8 - 0
src/graphic/Service/RoadService.js

@@ -1157,12 +1157,20 @@ export default class RoadService {
           road.leftLanes[i].start = {};
           road.leftLanes[i].start.x = startPoint.x + middx1 + leftdx1 * (i + 1);
           road.leftLanes[i].start.y = startPoint.y + middy1 + leftdy1 * (i + 1);
+
+          road.midDivide.leftMidDivide.start = {};
+          road.midDivide.leftMidDivide.start.x = startPoint.x + middx1;
+          road.midDivide.leftMidDivide.start.y = startPoint.y + middy1;
         }
 
         if (dir2 == "end" || !dir2) {
           road.leftLanes[i].end = {};
           road.leftLanes[i].end.x = endPoint.x + middx2 + leftdx2 * (i + 1);
           road.leftLanes[i].end.y = endPoint.y + middy2 + leftdy2 * (i + 1);
+
+          road.midDivide.leftMidDivide.end = {};
+          road.midDivide.leftMidDivide.end.x = endPoint.x + middx1;
+          road.midDivide.leftMidDivide.end.y = endPoint.y + middy2;
         }
       }
       if (dir2 == "start" || !dir2) {