Selaa lähdekoodia

添加了曲线的监控

xushiting 2 vuotta sitten
vanhempi
commit
be8ab6e178

+ 1 - 1
src/graphic/Controls/MoveRoad.js

@@ -1044,7 +1044,7 @@ export default class MoveRoad {
     for (const roadId1 in parent1) {
       const road1 = dataService.getRoad(roadId1);
       const otherPointId = road1.getOtherPointId(pointId1);
-      const _roadId = this.getRoadId(otherPointId, pointId2);
+      const _roadId = dataService.getRoadId(otherPointId, pointId2);
       if (_roadId != null) {
         return false;
       }

+ 1 - 1
src/graphic/Geometry/CurveEdge.js

@@ -11,9 +11,9 @@ export default class CurveEdge extends Geometry {
     this.end = {};
     this.vectorId = null;
     this.points = [];
+    this.curves = [];
     this.geoType = VectorType.CurveEdge;
     this.setId(vectorId);
-
     this.setPositions(start, end);
   }
 

+ 2 - 0
src/graphic/Geometry/CurveRoad.js

@@ -10,6 +10,8 @@ export default class CurveRoad extends Road {
     this.width = Constant.defaultRoadWidth; //默认宽度
     this.leftDrivewayCount = 2; //左边的车道个数
     this.rightDrivewayCount = 2; //右边的车道个数
+    this.curves = [];
     this.geoType = VectorType.CurveRoad;
+    this.setId(vectorId);
   }
 }

+ 7 - 4
src/graphic/Layer.js

@@ -132,7 +132,6 @@ export default class Layer {
       case null:
         //监控
         needAutoRedraw = listenLayer.start(position);
-        needAutoRedraw = true;
         break;
       case LayerEvents.PanBackGround:
         stateService.clearItems();
@@ -354,6 +353,10 @@ export default class Layer {
   }
 
   onMouseUp(e) {
+    // 右键
+    if (e.button == 2) {
+      return;
+    }
     const X = e.offsetX || e.layerX;
     const Y = e.offsetY || e.layerY;
 
@@ -644,11 +647,11 @@ export default class Layer {
           stateService.setEventName(LayerEvents.PanBackGround);
         } else if (selectItem.type == VectorType.Road) {
           stateService.setEventName(LayerEvents.MoveRoad);
-        } else if (selectItem.type == VectorType.RoadCorner) {
+        } else if (selectItem.type == VectorType.Point) {
           stateService.setEventName(LayerEvents.MoveRoadPoint);
         } else if (selectItem.type == VectorType.CurveRoad) {
           stateService.setEventName(LayerEvents.MoveCurveRoad);
-        } else if (selectItem.type == VectorType.CurveRoadCorner) {
+        } else if (selectItem.type == VectorType.CurvePoint) {
           stateService.setEventName(LayerEvents.MoveCurveRoadPoint);
         } else if (selectItem.type == VectorType.Tag) {
           stateService.setEventName(LayerEvents.MoveTag);
@@ -723,7 +726,7 @@ export default class Layer {
         dataService.deleteRoad(item.vectorId);
       } else if (item.type == VectorType.Tag) {
         dataService.deleteTag(item.vectorId);
-      } else if (item.type == VectorType.RoadCorner) {
+      } else if (item.type == VectorType.Point) {
         //这个比较复杂,参考deleteRoadCorner
         //dataService.deletePoint(item.vectorId);
       }

Tiedoston diff-näkymää rajattu, sillä se on liian suuri
+ 284 - 656
src/graphic/ListenLayer.js


+ 9 - 6
src/graphic/Renderer/Draw.js

@@ -267,10 +267,10 @@ export default class Draw {
     let radius = Style.Point.radius;
     if (
       (draggingItem &&
-        draggingItem.type == VectorType.CurveRoadCorner &&
+        draggingItem.type == VectorType.CurvePoint &&
         vector.vectorId == draggingItem.vectorId) ||
       (selectItem &&
-        selectItem.type == VectorType.CurveRoadCorner &&
+        selectItem.type == VectorType.CurvePoint &&
         vector.vectorId == selectItem.vectorId)
     ) {
       this.context.save();
@@ -280,7 +280,7 @@ export default class Draw {
       radius = Style.Select.Point.radius;
     } else if (
       focusItem &&
-      focusItem.type == VectorType.CurveRoadCorner &&
+      focusItem.type == VectorType.CurvePoint &&
       vector.vectorId == focusItem.vectorId
     ) {
       this.context.save();
@@ -408,10 +408,10 @@ export default class Draw {
     let radius = Style.Point.radius;
     if (
       (draggingItem &&
-        draggingItem.type == VectorType.RoadCorner &&
+        draggingItem.type == VectorType.Point &&
         vector.vectorId == draggingItem.vectorId) ||
       (selectItem &&
-        selectItem.type == VectorType.RoadCorner &&
+        selectItem.type == VectorType.Point &&
         vector.vectorId == selectItem.vectorId)
     ) {
       this.context.save();
@@ -421,7 +421,7 @@ export default class Draw {
       radius = Style.Select.Point.radius;
     } else if (
       focusItem &&
-      focusItem.type == VectorType.RoadCorner &&
+      focusItem.type == VectorType.Point &&
       vector.vectorId == focusItem.vectorId
     ) {
       this.context.save();
@@ -964,6 +964,9 @@ export default class Draw {
   }
 
   drawTestLine(start, end, hit) {
+    start = coordinate.getScreenXY(start);
+    end = coordinate.getScreenXY(end);
+
     this.context.save();
 
     this.context.strokeStyle = "blue";

+ 7 - 7
src/graphic/Renderer/Render.js

@@ -129,13 +129,13 @@ export default class Render {
     //this.drawGeometry(dataService.getImg());
     this.redrawElements();
 
-    if (listenLayer.testStart != null && listenLayer.testEnd != null) {
-      draw.drawTestLine(
-        listenLayer.testStart,
-        listenLayer.testEnd,
-        listenLayer.testHit
-      );
-    }
+    // if (listenLayer.testStart != null && listenLayer.testEnd != null) {
+    //   draw.drawTestLine(
+    //     listenLayer.testStart,
+    //     listenLayer.testEnd,
+    //     listenLayer.testHit
+    //   );
+    // }
   }
 
   //下载图片

+ 5 - 0
src/graphic/Service/CurveEdgeService.js

@@ -10,9 +10,14 @@ export default class CurveEdgeService {
 
   create(start, end, vectorId, parentId) {
     let curveEdge = new CurveEdge(start, end, vectorId, parentId);
+    this.setCurves(curveEdge);
     dataService.addCurveEdge(curveEdge);
     return curveEdge;
   }
+
+  setCurves(curveEdge) {
+    curveEdge.curves = mathUtil.getCurvesByPoints(curveEdge.points);
+  }
 }
 
 const curveEdgeService = new CurveEdgeService();

+ 9 - 1
src/graphic/Service/CurveRoadService.js

@@ -75,7 +75,7 @@ export default class CurveRoadService extends RoadService {
       },
       0
     );
-
+    this.setCurves(curveRoad);
     return curveRoad;
   }
 
@@ -444,6 +444,14 @@ export default class CurveRoadService extends RoadService {
       curveRoad.rightLanes[i][index].x += dx;
       curveRoad.rightLanes[i][index].y += dy;
     }
+
+    this.setCurves(curveRoad);
+    curveEdgeService.setCurves(leftCurveEdge);
+    curveEdgeService.setCurves(rightCurveEdge);
+  }
+
+  setCurves(curveRoad) {
+    curveRoad.curves = mathUtil.getCurvesByPoints(curveRoad.points);
   }
 
   // updateForMovePoint(curveRoad, index) {

+ 5 - 7
src/graphic/enum/SelectState.js

@@ -1,9 +1,7 @@
 const SelectState = {
-    All: 'all',
-    Start: 'start',
-    End: 'end',
-    Select: 'select',
-    /*,
+  All: "all",
+  Select: "select",
+  /*,
     focus: "focus",
     selectArrow: "selectArrow", // beam,flue  focus后,选中下面的箭头
     dragging: "dragging",
@@ -21,5 +19,5 @@ const SelectState = {
     num7: 7,
     num8: 8,
     */
-}
-export default SelectState
+};
+export default SelectState;

+ 0 - 2
src/graphic/enum/VectorType.js

@@ -7,8 +7,6 @@ const VectorType = {
   Line: "Line",
   MeasureLine: "MeasureLine",
   MeasureArrow: "MeasureArrow",
-  RoadCorner: "RoadCorner",
-  CurveRoadCorner: "CurveRoadCorner",
   Edge: "Edge",
   Road: "Road",
   CurveRoad: "CurveRoad",