Browse Source

Merge branch 'dev' of http://192.168.0.115:3000/bill/traffic-laser into dev

# Conflicts:
#	server/test/a0k4xu045_202305311600080410/attach/sceneStore
xushiting 2 years ago
parent
commit
a33d78cd57
2 changed files with 26 additions and 8 deletions
  1. 17 0
      src/graphic/Layer.js
  2. 9 8
      src/graphic/ListenLayer.js

+ 17 - 0
src/graphic/Layer.js

@@ -221,6 +221,15 @@ export default class Layer {
               );
             }
             roadService.initRoadWidthTipsPos(road)
+
+            let leftEdge = dataService.getRoadEdge(road.leftEdgeId);
+            let rightEdge = dataService.getRoadEdge(road.rightEdgeId);
+            if(leftEdge.roadSide){
+              leftEdge.initRoadSide()
+            }
+            if(rightEdge.roadSide){
+              rightEdge.initRoadSide()
+            }
           } else {
             road = dataService.getCurveRoad(selectItem.vectorId);
             if (road) {
@@ -269,6 +278,14 @@ export default class Layer {
                 selectItem.dir
               );
             }
+            let leftEdge = dataService.getRoadEdge(road.leftEdgeId);
+            let rightEdge = dataService.getRoadEdge(road.rightEdgeId);
+            if(leftEdge.roadSide){
+              leftEdge.initRoadSide()
+            }
+            if(rightEdge.roadSide){
+              rightEdge.initRoadSide()
+            }
           } else {
             road = dataService.getCurveRoad(selectItem.vectorId);
             if (road) {

+ 9 - 8
src/graphic/ListenLayer.js

@@ -678,15 +678,17 @@ export default class ListenLayer {
       }
 
       //检查edge
- 
+   // (mathUtil.isContainForSegment(join, startPoint, endPoint) && 
+        // leftSideJoin && 
+        // mathUtil.isContainForSegment(position, join, leftSideJoin))
       distance = this.getDistance(position, leftJoin);
       if (
         (mathUtil.isContainForSegment(leftJoin, leftEdge.start, leftEdge.end) &&
         distance < Constant.minAdsorbPix / 2) ||
-        (mathUtil.isContainForSegment(join, startPoint, endPoint) && 
-        leftSideJoin && 
-        mathUtil.isContainForSegment(position, join, leftSideJoin))
-      
+        (mathUtil.isContainForSegment(join, startPoint, endPoint) &&
+         leftSideJoin &&
+         mathUtil.isContainForSegment(position, leftSideJoin, leftJoin)
+        )
       ) {
         if (!edgeInfo.edgeId || distance < edgeInfo.distance) {
 
@@ -701,7 +703,6 @@ export default class ListenLayer {
       }
 
       distance = this.getDistance(position, rightJoin);
-      // console.error(mathUtil.isContainForSegment(position, join, rightSideJoin))
       if (
         (mathUtil.isContainForSegment(
           rightJoin,
@@ -710,8 +711,8 @@ export default class ListenLayer {
         ) &&
         distance < Constant.minAdsorbPix / 2) ||
         (mathUtil.isContainForSegment(join, startPoint, endPoint) && 
-        rightSideJoin &&
-        mathUtil.isContainForSegment(position, join, rightSideJoin))
+         rightSideJoin &&
+         mathUtil.isContainForSegment(position,rightSideJoin,rightJoin))
       ) {
         if (!edgeInfo.edgeId || distance < edgeInfo.distance) {
           edgeInfo = {