|
@@ -17,6 +17,7 @@ import { addMagnifier } from "./Controls/AddMagnifier";
|
|
import { addSVG } from "./Controls/AddSVG";
|
|
import { addSVG } from "./Controls/AddSVG";
|
|
import { moveRoad } from "./Controls/MoveRoad";
|
|
import { moveRoad } from "./Controls/MoveRoad";
|
|
import { moveLine } from "./Controls/MoveLine";
|
|
import { moveLine } from "./Controls/MoveLine";
|
|
|
|
+import { moveCircle } from "./Controls/MoveCircle";
|
|
import { coordinate } from "./Coordinate";
|
|
import { coordinate } from "./Coordinate";
|
|
import Render from "./Renderer/Render";
|
|
import Render from "./Renderer/Render";
|
|
import { draw } from "./Renderer/Draw";
|
|
import { draw } from "./Renderer/Draw";
|
|
@@ -37,11 +38,11 @@ import VectorCategory from "./enum/VectorCategory";
|
|
const minDragDis = 10;
|
|
const minDragDis = 10;
|
|
|
|
|
|
export default class Layer {
|
|
export default class Layer {
|
|
- constructor(canvas, newsletter) {
|
|
|
|
|
|
+ constructor(canvas, newsletter, graphicState) {
|
|
this.canvas = canvas;
|
|
this.canvas = canvas;
|
|
this.load = new Load(this);
|
|
this.load = new Load(this);
|
|
|
|
|
|
- this.uiControl = new UIControl(this, newsletter);
|
|
|
|
|
|
+ this.uiControl = new UIControl(this, newsletter, graphicState);
|
|
this.renderer = new Render(this);
|
|
this.renderer = new Render(this);
|
|
this.history = new History(this);
|
|
this.history = new History(this);
|
|
this.mousePosition = null;
|
|
this.mousePosition = null;
|
|
@@ -58,7 +59,6 @@ export default class Layer {
|
|
coordinate.init(this.canvas);
|
|
coordinate.init(this.canvas);
|
|
draw.initContext(this.canvas);
|
|
draw.initContext(this.canvas);
|
|
dataService.initVectorData();
|
|
dataService.initVectorData();
|
|
- this.history.init();
|
|
|
|
this.bindEvents();
|
|
this.bindEvents();
|
|
}
|
|
}
|
|
|
|
|
|
@@ -72,6 +72,11 @@ export default class Layer {
|
|
this.canvas.addEventListener("mousedown", this.onMouseDown.bind(this));
|
|
this.canvas.addEventListener("mousedown", this.onMouseDown.bind(this));
|
|
this.canvas.addEventListener("mousemove", this.onMouseMove.bind(this));
|
|
this.canvas.addEventListener("mousemove", this.onMouseMove.bind(this));
|
|
this.canvas.addEventListener("mouseup", this.onMouseUp.bind(this));
|
|
this.canvas.addEventListener("mouseup", this.onMouseUp.bind(this));
|
|
|
|
+
|
|
|
|
+ this.canvas.addEventListener("touchstart", this.onMouseDown.bind(this));
|
|
|
|
+ this.canvas.addEventListener("touchmove", this.onMouseMove.bind(this));
|
|
|
|
+ this.canvas.addEventListener("touchend", this.onMouseUp.bind(this));
|
|
|
|
+
|
|
this.canvas.addEventListener("mousewheel", this.onWheel.bind(this));
|
|
this.canvas.addEventListener("mousewheel", this.onWheel.bind(this));
|
|
this.canvas.addEventListener("DOMMouseScroll", this.onWheel.bind(this));
|
|
this.canvas.addEventListener("DOMMouseScroll", this.onWheel.bind(this));
|
|
this.canvas.addEventListener("resize", this.reSize.bind(this));
|
|
this.canvas.addEventListener("resize", this.reSize.bind(this));
|
|
@@ -85,11 +90,19 @@ export default class Layer {
|
|
};
|
|
};
|
|
|
|
|
|
onMouseDown(e) {
|
|
onMouseDown(e) {
|
|
- this.startX = e.offsetX || e.layerX;
|
|
|
|
- this.startY = e.offsetY || e.layerY;
|
|
|
|
|
|
+ if (e instanceof TouchEvent) {
|
|
|
|
+ this.startX = e.touches[0].pageX;
|
|
|
|
+ this.startY = e.touches[0].pageY;
|
|
|
|
+
|
|
|
|
+ this.lastX = e.touches[0].pageX;
|
|
|
|
+ this.lastY = e.touches[0].pageY;
|
|
|
|
+ } else {
|
|
|
|
+ this.startX = e.offsetX || e.layerX;
|
|
|
|
+ this.startY = e.offsetY || e.layerY;
|
|
|
|
|
|
- this.lastX = e.offsetX || e.layerX;
|
|
|
|
- this.lastY = e.offsetY || e.layerY;
|
|
|
|
|
|
+ this.lastX = e.offsetX || e.layerX;
|
|
|
|
+ this.lastY = e.offsetY || e.layerY;
|
|
|
|
+ }
|
|
|
|
|
|
let position = coordinate.getXYFromScreen({
|
|
let position = coordinate.getXYFromScreen({
|
|
x: this.startX,
|
|
x: this.startX,
|
|
@@ -107,7 +120,6 @@ export default class Layer {
|
|
//用于支持平板电脑
|
|
//用于支持平板电脑
|
|
listenLayer.start(position);
|
|
listenLayer.start(position);
|
|
this.setEventName("mouseDown");
|
|
this.setEventName("mouseDown");
|
|
- const selectItem = stateService.getSelectItem();
|
|
|
|
const eventName = stateService.getEventName();
|
|
const eventName = stateService.getEventName();
|
|
switch (eventName) {
|
|
switch (eventName) {
|
|
case LayerEvents.AddRoad:
|
|
case LayerEvents.AddRoad:
|
|
@@ -120,7 +132,7 @@ export default class Layer {
|
|
break;
|
|
break;
|
|
case LayerEvents.AddLine:
|
|
case LayerEvents.AddLine:
|
|
stateService.setEventName(LayerEvents.AddingLine);
|
|
stateService.setEventName(LayerEvents.AddingLine);
|
|
- addLine.setNewLinePoint("start", position);
|
|
|
|
|
|
+ addLine.setNewLinePoint(position);
|
|
break;
|
|
break;
|
|
case LayerEvents.AddCircle:
|
|
case LayerEvents.AddCircle:
|
|
stateService.setEventName(LayerEvents.AddingCircle);
|
|
stateService.setEventName(LayerEvents.AddingCircle);
|
|
@@ -134,6 +146,7 @@ export default class Layer {
|
|
VectorType.Text,
|
|
VectorType.Text,
|
|
SelectState.Select
|
|
SelectState.Select
|
|
);
|
|
);
|
|
|
|
+ addText.clear();
|
|
break;
|
|
break;
|
|
case LayerEvents.AddMagnifier:
|
|
case LayerEvents.AddMagnifier:
|
|
stateService.setEventName(LayerEvents.MoveMagnifier);
|
|
stateService.setEventName(LayerEvents.MoveMagnifier);
|
|
@@ -143,6 +156,7 @@ export default class Layer {
|
|
VectorType.Magnifier,
|
|
VectorType.Magnifier,
|
|
SelectState.Select
|
|
SelectState.Select
|
|
);
|
|
);
|
|
|
|
+ addMagnifier.clear();
|
|
break;
|
|
break;
|
|
case LayerEvents.AddSVG:
|
|
case LayerEvents.AddSVG:
|
|
stateService.setEventName(LayerEvents.MoveSVG);
|
|
stateService.setEventName(LayerEvents.MoveSVG);
|
|
@@ -152,8 +166,10 @@ export default class Layer {
|
|
VectorType.SVG,
|
|
VectorType.SVG,
|
|
SelectState.Select
|
|
SelectState.Select
|
|
);
|
|
);
|
|
|
|
+ addSVG.clear();
|
|
break;
|
|
break;
|
|
}
|
|
}
|
|
|
|
+ const selectItem = stateService.getSelectItem();
|
|
stateService.setDraggingItem(selectItem);
|
|
stateService.setDraggingItem(selectItem);
|
|
// 清除上一个状态
|
|
// 清除上一个状态
|
|
// 设置当前事件名称
|
|
// 设置当前事件名称
|
|
@@ -162,8 +178,42 @@ export default class Layer {
|
|
}
|
|
}
|
|
|
|
|
|
onMouseMove(e) {
|
|
onMouseMove(e) {
|
|
- const X = e.offsetX || e.layerX;
|
|
|
|
- const Y = e.offsetY || e.layerY;
|
|
|
|
|
|
+ let X = e.offsetX || e.layerX;
|
|
|
|
+ let Y = e.offsetY || e.layerY;
|
|
|
|
+
|
|
|
|
+ if (e instanceof TouchEvent) {
|
|
|
|
+ X = e.touches[0].pageX;
|
|
|
|
+ Y = e.touches[0].pageY;
|
|
|
|
+ //切换到缩放
|
|
|
|
+ if (e.touches.length > 1) {
|
|
|
|
+ //记录开始的两个触摸点的坐标
|
|
|
|
+ if (!this.StorePage1 || !this.StorePage2) {
|
|
|
|
+ this.onMouseUp(e);
|
|
|
|
+ this.StorePage1 = { x: ev.touches[0].pageX, y: ev.touches[0].pageY };
|
|
|
|
+ this.StorePage2 = { x: ev.touches[1].pageX, y: ev.touches[1].pageY };
|
|
|
|
+ return;
|
|
|
|
+ }
|
|
|
|
+ const point1 = {
|
|
|
|
+ x: ev.touches[0].pageX,
|
|
|
|
+ y: ev.touches[0].pageY,
|
|
|
|
+ };
|
|
|
|
+ const point2 = {
|
|
|
|
+ x: ev.touches[1].pageX,
|
|
|
|
+ y: ev.touches[1].pageY,
|
|
|
|
+ };
|
|
|
|
+
|
|
|
|
+ // let zoom =
|
|
|
|
+ // (mathUtil.getDistance(point1, point2) /
|
|
|
|
+ // mathUtil.getDistance(this.StorePage1, this.StorePage2)) *
|
|
|
|
+ // coordinate.defaultZoom;
|
|
|
|
+ let zoom =
|
|
|
|
+ coordinate.defaultZoom +
|
|
|
|
+ mathUtil.getDistance(this.StorePage1, this.StorePage2) -
|
|
|
|
+ mathUtil.getDistance(point1, point2);
|
|
|
|
+ this.zoomVector(zoom);
|
|
|
|
+ return;
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
|
|
let dx = X - this.lastX;
|
|
let dx = X - this.lastX;
|
|
let dy = Y - this.lastY;
|
|
let dy = Y - this.lastY;
|
|
@@ -189,6 +239,8 @@ export default class Layer {
|
|
// 是否需要重绘
|
|
// 是否需要重绘
|
|
let needAutoRedraw = false;
|
|
let needAutoRedraw = false;
|
|
let point = null;
|
|
let point = null;
|
|
|
|
+ this.lastX = X;
|
|
|
|
+ this.lastY = Y;
|
|
const draggingItem = stateService.getDraggingItem();
|
|
const draggingItem = stateService.getDraggingItem();
|
|
|
|
|
|
switch (eventName) {
|
|
switch (eventName) {
|
|
@@ -199,7 +251,6 @@ export default class Layer {
|
|
if (seleteItem != null) {
|
|
if (seleteItem != null) {
|
|
console.log("选中:" + seleteItem.vectorId);
|
|
console.log("选中:" + seleteItem.vectorId);
|
|
} else {
|
|
} else {
|
|
- console.log("什么也没选中");
|
|
|
|
}
|
|
}
|
|
break;
|
|
break;
|
|
case LayerEvents.PanBackGround:
|
|
case LayerEvents.PanBackGround:
|
|
@@ -213,8 +264,6 @@ export default class Layer {
|
|
(dx * coordinate.defaultZoom) / coordinate.zoom,
|
|
(dx * coordinate.defaultZoom) / coordinate.zoom,
|
|
(dy * coordinate.defaultZoom) / coordinate.zoom
|
|
(dy * coordinate.defaultZoom) / coordinate.zoom
|
|
);
|
|
);
|
|
- this.lastX = X;
|
|
|
|
- this.lastY = Y;
|
|
|
|
needAutoRedraw = true;
|
|
needAutoRedraw = true;
|
|
break;
|
|
break;
|
|
case LayerEvents.AddRoad:
|
|
case LayerEvents.AddRoad:
|
|
@@ -293,7 +342,13 @@ export default class Layer {
|
|
break;
|
|
break;
|
|
case LayerEvents.AddingLine:
|
|
case LayerEvents.AddingLine:
|
|
needAutoRedraw = true;
|
|
needAutoRedraw = true;
|
|
- listenLayer.start(position);
|
|
|
|
|
|
+ let exceptLineId = null;
|
|
|
|
+ if (addLine.newLine != null) {
|
|
|
|
+ exceptLineId = addLine.newLine.vectorId;
|
|
|
|
+ }
|
|
|
|
+ listenLayer.start(position, {
|
|
|
|
+ exceptLineId: exceptLineId,
|
|
|
|
+ });
|
|
if (listenLayer.modifyPoint) {
|
|
if (listenLayer.modifyPoint) {
|
|
position = {
|
|
position = {
|
|
x: listenLayer.modifyPoint.x,
|
|
x: listenLayer.modifyPoint.x,
|
|
@@ -302,14 +357,19 @@ export default class Layer {
|
|
}
|
|
}
|
|
elementService.execute(addLine.startInfo.position, position);
|
|
elementService.execute(addLine.startInfo.position, position);
|
|
elementService.setPoint(position);
|
|
elementService.setPoint(position);
|
|
- elementService.setNewLine(addLine.startInfo.position, position);
|
|
|
|
- elementService.setNewLineCategory(VectorCategory.Line.NormalLine);
|
|
|
|
- elementService.showNewLine();
|
|
|
|
- addLine.setNewLinePoint("end", position);
|
|
|
|
|
|
+ if (addLine.newLine == null) {
|
|
|
|
+ addLine.buildLine(position);
|
|
|
|
+ } else {
|
|
|
|
+ addLine.updateLine(position);
|
|
|
|
+ }
|
|
break;
|
|
break;
|
|
case LayerEvents.AddingCircle:
|
|
case LayerEvents.AddingCircle:
|
|
needAutoRedraw = true;
|
|
needAutoRedraw = true;
|
|
- listenLayer.start(position);
|
|
|
|
|
|
+ let exceptCircleId = null;
|
|
|
|
+ if (addCircle.newCircle != null) {
|
|
|
|
+ exceptCircleId = addCircle.newCircle.vectorId;
|
|
|
|
+ }
|
|
|
|
+ listenLayer.start(position, { exceptCircleId: exceptCircleId });
|
|
if (listenLayer.modifyPoint) {
|
|
if (listenLayer.modifyPoint) {
|
|
position = {
|
|
position = {
|
|
x: listenLayer.modifyPoint.x,
|
|
x: listenLayer.modifyPoint.x,
|
|
@@ -318,7 +378,11 @@ export default class Layer {
|
|
}
|
|
}
|
|
elementService.execute(addCircle.center, position);
|
|
elementService.execute(addCircle.center, position);
|
|
elementService.setPoint(position);
|
|
elementService.setPoint(position);
|
|
- addCircle.setRadius(mathUtil.getDistance(addCircle.center, position));
|
|
|
|
|
|
+ if (addCircle.newCircle == null) {
|
|
|
|
+ addCircle.buildCircle(position);
|
|
|
|
+ } else {
|
|
|
|
+ addCircle.updateCircle(position);
|
|
|
|
+ }
|
|
break;
|
|
break;
|
|
case LayerEvents.MoveRoad:
|
|
case LayerEvents.MoveRoad:
|
|
needAutoRedraw = true;
|
|
needAutoRedraw = true;
|
|
@@ -337,8 +401,6 @@ export default class Layer {
|
|
(dy * coordinate.defaultZoom) / coordinate.zoom
|
|
(dy * coordinate.defaultZoom) / coordinate.zoom
|
|
);
|
|
);
|
|
}
|
|
}
|
|
- this.lastX = X;
|
|
|
|
- this.lastY = Y;
|
|
|
|
break;
|
|
break;
|
|
case LayerEvents.MoveRoadPoint:
|
|
case LayerEvents.MoveRoadPoint:
|
|
point = dataService.getRoadPoint(draggingItem.vectorId);
|
|
point = dataService.getRoadPoint(draggingItem.vectorId);
|
|
@@ -441,8 +503,6 @@ export default class Layer {
|
|
(dx * coordinate.defaultZoom) / coordinate.zoom,
|
|
(dx * coordinate.defaultZoom) / coordinate.zoom,
|
|
(dy * coordinate.defaultZoom) / coordinate.zoom
|
|
(dy * coordinate.defaultZoom) / coordinate.zoom
|
|
);
|
|
);
|
|
- this.lastX = X;
|
|
|
|
- this.lastY = Y;
|
|
|
|
break;
|
|
break;
|
|
case LayerEvents.MoveCurveRoadPoint:
|
|
case LayerEvents.MoveCurveRoadPoint:
|
|
if (!draggingItem || !draggingItem.vectorId) {
|
|
if (!draggingItem || !draggingItem.vectorId) {
|
|
@@ -462,11 +522,11 @@ export default class Layer {
|
|
moveRoad.moveCurveRoadPoint(draggingItem.vectorId, position);
|
|
moveRoad.moveCurveRoadPoint(draggingItem.vectorId, position);
|
|
needAutoRedraw = true;
|
|
needAutoRedraw = true;
|
|
break;
|
|
break;
|
|
- case LayerEvents.MoveControlPoint:
|
|
|
|
|
|
+ case LayerEvents.MoveCrossPoint:
|
|
if (!draggingItem || !draggingItem.vectorId) {
|
|
if (!draggingItem || !draggingItem.vectorId) {
|
|
return;
|
|
return;
|
|
}
|
|
}
|
|
- moveRoad.moveControlPoint(draggingItem.vectorId, position);
|
|
|
|
|
|
+ moveRoad.moveCrossPoint(draggingItem.vectorId, position);
|
|
needAutoRedraw = true;
|
|
needAutoRedraw = true;
|
|
break;
|
|
break;
|
|
case LayerEvents.MoveEdge:
|
|
case LayerEvents.MoveEdge:
|
|
@@ -492,8 +552,6 @@ export default class Layer {
|
|
);
|
|
);
|
|
needAutoRedraw = true;
|
|
needAutoRedraw = true;
|
|
}
|
|
}
|
|
- this.lastX = X;
|
|
|
|
- this.lastY = Y;
|
|
|
|
break;
|
|
break;
|
|
case LayerEvents.MovePoint:
|
|
case LayerEvents.MovePoint:
|
|
if (draggingItem != null) {
|
|
if (draggingItem != null) {
|
|
@@ -512,6 +570,31 @@ export default class Layer {
|
|
needAutoRedraw = true;
|
|
needAutoRedraw = true;
|
|
}
|
|
}
|
|
break;
|
|
break;
|
|
|
|
+ case LayerEvents.MoveCircle:
|
|
|
|
+ if (draggingItem != null) {
|
|
|
|
+ if (draggingItem.state == -1) {
|
|
|
|
+ moveCircle.moveFull(
|
|
|
|
+ draggingItem.vectorId,
|
|
|
|
+ (dx * coordinate.defaultZoom) / coordinate.zoom,
|
|
|
|
+ (dy * coordinate.defaultZoom) / coordinate.zoom
|
|
|
|
+ );
|
|
|
|
+ } else if (
|
|
|
|
+ draggingItem.state == 0 ||
|
|
|
|
+ draggingItem.state == 1 ||
|
|
|
|
+ draggingItem.state == 2 ||
|
|
|
|
+ draggingItem.state == 3
|
|
|
|
+ ) {
|
|
|
|
+ moveCircle.movePoint(
|
|
|
|
+ position,
|
|
|
|
+ draggingItem.vectorId,
|
|
|
|
+ draggingItem.state
|
|
|
|
+ );
|
|
|
|
+ } else {
|
|
|
|
+ debugger;
|
|
|
|
+ }
|
|
|
|
+ needAutoRedraw = true;
|
|
|
|
+ }
|
|
|
|
+ break;
|
|
case LayerEvents.MoveText:
|
|
case LayerEvents.MoveText:
|
|
needAutoRedraw = true;
|
|
needAutoRedraw = true;
|
|
if (draggingItem != null) {
|
|
if (draggingItem != null) {
|
|
@@ -542,8 +625,18 @@ export default class Layer {
|
|
if (e.button == 2) {
|
|
if (e.button == 2) {
|
|
return;
|
|
return;
|
|
}
|
|
}
|
|
- const X = e.offsetX || e.layerX;
|
|
|
|
- const Y = e.offsetY || e.layerY;
|
|
|
|
|
|
+ let X = e.offsetX || e.layerX;
|
|
|
|
+ let Y = e.offsetY || e.layerY;
|
|
|
|
+
|
|
|
|
+ if (e instanceof TouchEvent) {
|
|
|
|
+ X = this.lastX;
|
|
|
|
+ Y = this.lastY;
|
|
|
|
+ if (e.touches.length > 1) {
|
|
|
|
+ return;
|
|
|
|
+ }
|
|
|
|
+ this.StorePage1 == null;
|
|
|
|
+ this.StorePage2 == null;
|
|
|
|
+ }
|
|
|
|
|
|
let eventName = stateService.getEventName();
|
|
let eventName = stateService.getEventName();
|
|
const draggingItem = stateService.getDraggingItem();
|
|
const draggingItem = stateService.getDraggingItem();
|
|
@@ -645,13 +738,15 @@ export default class Layer {
|
|
break;
|
|
break;
|
|
case LayerEvents.AddingLine:
|
|
case LayerEvents.AddingLine:
|
|
needAutoRedraw = true;
|
|
needAutoRedraw = true;
|
|
- addLine.buildLine();
|
|
|
|
|
|
+ addLine.finish(position);
|
|
|
|
+ addLine.clearVectorData();
|
|
this.history.save();
|
|
this.history.save();
|
|
elementService.hideAll();
|
|
elementService.hideAll();
|
|
break;
|
|
break;
|
|
case LayerEvents.AddingCircle:
|
|
case LayerEvents.AddingCircle:
|
|
needAutoRedraw = true;
|
|
needAutoRedraw = true;
|
|
- addCircle.buildCircle();
|
|
|
|
|
|
+ addCircle.finish(position);
|
|
|
|
+ addCircle.clear();
|
|
this.history.save();
|
|
this.history.save();
|
|
elementService.hideAll();
|
|
elementService.hideAll();
|
|
break;
|
|
break;
|
|
@@ -690,7 +785,7 @@ export default class Layer {
|
|
needAutoRedraw = true;
|
|
needAutoRedraw = true;
|
|
this.history.save();
|
|
this.history.save();
|
|
break;
|
|
break;
|
|
- case LayerEvents.MoveControlPoint:
|
|
|
|
|
|
+ case LayerEvents.MoveCrossPoint:
|
|
needAutoRedraw = true;
|
|
needAutoRedraw = true;
|
|
this.history.save();
|
|
this.history.save();
|
|
break;
|
|
break;
|
|
@@ -710,11 +805,17 @@ export default class Layer {
|
|
needAutoRedraw = true;
|
|
needAutoRedraw = true;
|
|
this.history.save();
|
|
this.history.save();
|
|
break;
|
|
break;
|
|
|
|
+ case LayerEvents.MoveCircle:
|
|
|
|
+ needAutoRedraw = true;
|
|
|
|
+ this.history.save();
|
|
|
|
+ break;
|
|
}
|
|
}
|
|
|
|
|
|
this.setEventName("mouseUp");
|
|
this.setEventName("mouseUp");
|
|
stateService.clearDraggingItem();
|
|
stateService.clearDraggingItem();
|
|
- this.renderer.autoRedraw();
|
|
|
|
|
|
+ if (needAutoRedraw) {
|
|
|
|
+ this.renderer.autoRedraw();
|
|
|
|
+ }
|
|
}
|
|
}
|
|
|
|
|
|
onWheel(e) {
|
|
onWheel(e) {
|
|
@@ -726,18 +827,22 @@ export default class Layer {
|
|
? (e.wheelDelta / 120) * 20
|
|
? (e.wheelDelta / 120) * 20
|
|
: (-(e.detail || 0) / 3) * 20;
|
|
: (-(e.detail || 0) / 3) * 20;
|
|
const zoom = coordinate.zoom + delta;
|
|
const zoom = coordinate.zoom + delta;
|
|
- if (zoom < 14) {
|
|
|
|
- return;
|
|
|
|
- }
|
|
|
|
|
|
+ this.zoomVector(zoom);
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
|
|
- coordinate.updateZoom(zoom);
|
|
|
|
- dataService.setGridForZoom(
|
|
|
|
- coordinate.width,
|
|
|
|
- coordinate.height,
|
|
|
|
- coordinate.zoom / coordinate.defaultZoom
|
|
|
|
- );
|
|
|
|
- this.renderer.autoRedraw();
|
|
|
|
|
|
+ zoomVector(zoom) {
|
|
|
|
+ if (zoom < 14) {
|
|
|
|
+ return;
|
|
}
|
|
}
|
|
|
|
+
|
|
|
|
+ coordinate.updateZoom(zoom);
|
|
|
|
+ dataService.setGridForZoom(
|
|
|
|
+ coordinate.width,
|
|
|
|
+ coordinate.height,
|
|
|
|
+ (coordinate.res * coordinate.zoom) / coordinate.defaultZoom
|
|
|
|
+ );
|
|
|
|
+ this.renderer.autoRedraw();
|
|
}
|
|
}
|
|
|
|
|
|
//测试用
|
|
//测试用
|
|
@@ -751,7 +856,7 @@ export default class Layer {
|
|
const road = dataService.getRoad(focusItem.vectorId);
|
|
const road = dataService.getRoad(focusItem.vectorId);
|
|
roadService.subtraRoadFromIntersect(road.startId, focusItem.vectorId);
|
|
roadService.subtraRoadFromIntersect(road.startId, focusItem.vectorId);
|
|
roadService.subtraRoadFromIntersect(road.endId, focusItem.vectorId);
|
|
roadService.subtraRoadFromIntersect(road.endId, focusItem.vectorId);
|
|
- //dataService.deleteControlPoint()
|
|
|
|
|
|
+ //dataService.deleteCrossPoint()
|
|
dataService.deleteRoad(focusItem.vectorId);
|
|
dataService.deleteRoad(focusItem.vectorId);
|
|
this.renderer.autoRedraw();
|
|
this.renderer.autoRedraw();
|
|
this.history.save();
|
|
this.history.save();
|
|
@@ -929,8 +1034,8 @@ export default class Layer {
|
|
stateService.setEventName(LayerEvents.MoveCurveRoad);
|
|
stateService.setEventName(LayerEvents.MoveCurveRoad);
|
|
} else if (selectItem.type == VectorType.CurveRoadPoint) {
|
|
} else if (selectItem.type == VectorType.CurveRoadPoint) {
|
|
stateService.setEventName(LayerEvents.MoveCurveRoadPoint);
|
|
stateService.setEventName(LayerEvents.MoveCurveRoadPoint);
|
|
- } else if (selectItem.type == VectorType.ControlPoint) {
|
|
|
|
- stateService.setEventName(LayerEvents.MoveControlPoint);
|
|
|
|
|
|
+ } else if (selectItem.type == VectorType.CrossPoint) {
|
|
|
|
+ stateService.setEventName(LayerEvents.MoveCrossPoint);
|
|
} else if (selectItem.type == VectorType.RoadEdge) {
|
|
} else if (selectItem.type == VectorType.RoadEdge) {
|
|
stateService.setEventName(LayerEvents.MoveEdge);
|
|
stateService.setEventName(LayerEvents.MoveEdge);
|
|
} else if (selectItem.type == VectorType.CurveRoadEdge) {
|
|
} else if (selectItem.type == VectorType.CurveRoadEdge) {
|
|
@@ -986,18 +1091,8 @@ export default class Layer {
|
|
} else if (eventName == LayerEvents.AddingLine) {
|
|
} else if (eventName == LayerEvents.AddingLine) {
|
|
stateService.setEventName(LayerEvents.AddLine);
|
|
stateService.setEventName(LayerEvents.AddLine);
|
|
}
|
|
}
|
|
-
|
|
|
|
|
|
+ addLine.clear(); //之前会保留category
|
|
this.uiControl.clearUI();
|
|
this.uiControl.clearUI();
|
|
elementService.hideAll();
|
|
elementService.hideAll();
|
|
}
|
|
}
|
|
-
|
|
|
|
- revokeHistory() {
|
|
|
|
- this.history.goPreState();
|
|
|
|
- this.renderer.autoRedraw();
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- recoveryHistory() {
|
|
|
|
- this.history.goNextState();
|
|
|
|
- this.renderer.autoRedraw();
|
|
|
|
- }
|
|
|
|
}
|
|
}
|