瀏覽代碼

修复bug

xushiting 2 年之前
父節點
當前提交
2eb9d0dc01
共有 2 個文件被更改,包括 49 次插入15 次删除
  1. 3 2
      src/graphic/History/HistoryUtil.js
  2. 46 13
      src/graphic/ListenLayer.js

+ 3 - 2
src/graphic/History/HistoryUtil.js

@@ -843,8 +843,9 @@ export default class HistoryUtil {
 
   setCurveLineInfo(curveLineInfo) {
     let curveLine = dataService.getCurveLine(curveLineInfo.vectorId);
-    curveLine.startId = curveLineInfo.start;
-    curveLine.endId = curveLineInfo.end;
+    curveLine.startId = curveLineInfo.startId;
+    curveLine.endId = curveLineInfo.endId;
+    curveLine.points = [];
     for (let i = 0; i < curveLineInfo.points.length; ++i) {
       curveLine.points[i] = dataService.getCurvePoint(
         curveLineInfo.points[i].vectorId

+ 46 - 13
src/graphic/ListenLayer.js

@@ -778,21 +778,18 @@ export default class ListenLayer {
         Constant.minAdsorbPix
       );
 
+      let line1 = mathUtil.createLine1(
+        joinInfo.position,
+        leftJoinInfo.position
+      );
+      let position1 = mathUtil.getJoinLinePoint(position, line1);
       if (
-        mathUtil.getDistance(position, leftJoinInfo.position) >
-        mathUtil.getDistance(position, rightJoinInfo.position)
+        mathUtil.isContainForSegment(
+          position1,
+          joinInfo.position,
+          leftJoinInfo.position
+        )
       ) {
-        if (joinInfo.distance < curveRoad.rightWidth) {
-          curveRoadInfo = {
-            curveRoadId: curveRoadId,
-            type: VectorType.CurveRoad,
-            distance: joinInfo.distance,
-            x: joinInfo.position.x,
-            y: joinInfo.position.y,
-          };
-        }
-        curveRoadInfo.dir = "right";
-      } else {
         if (joinInfo.distance < curveRoad.leftWidth) {
           curveRoadInfo = {
             curveRoadId: curveRoadId,
@@ -803,8 +800,44 @@ export default class ListenLayer {
           };
         }
         curveRoadInfo.dir = "left";
+      } else {
+        curveRoadInfo = {
+          curveRoadId: curveRoadId,
+          type: VectorType.CurveRoad,
+          distance: joinInfo.distance,
+          x: joinInfo.position.x,
+          y: joinInfo.position.y,
+        };
+        curveRoadInfo.dir = "right";
       }
 
+      // if (
+      //   mathUtil.getDistance(position, leftJoinInfo.position) >
+      //   mathUtil.getDistance(position, rightJoinInfo.position)
+      // ) {
+      //   if (joinInfo.distance < curveRoad.rightWidth) {
+      //     curveRoadInfo = {
+      //       curveRoadId: curveRoadId,
+      //       type: VectorType.CurveRoad,
+      //       distance: joinInfo.distance,
+      //       x: joinInfo.position.x,
+      //       y: joinInfo.position.y,
+      //     };
+      //   }
+      //   curveRoadInfo.dir = "right";
+      // } else {
+      //   if (joinInfo.distance < curveRoad.leftWidth) {
+      //     curveRoadInfo = {
+      //       curveRoadId: curveRoadId,
+      //       type: VectorType.CurveRoad,
+      //       distance: joinInfo.distance,
+      //       x: joinInfo.position.x,
+      //       y: joinInfo.position.y,
+      //     };
+      //   }
+      //   curveRoadInfo.dir = "left";
+      // }
+
       if (leftJoinInfo.distance < Constant.minAdsorbPix) {
         const index = mathUtil.getCurvesIndexForCurvesPoints(
           leftJoinInfo.position,