DESKTOP-CRQ4N2U\jintian 1 rok pred
rodič
commit
ae13686193

+ 2 - 2
src/components/CrMap.vue

@@ -199,10 +199,10 @@
 						<el-button @click="MilitaryPlotting('DrawClosedCurve')">绘制闭合曲面</el-button>
 					</el-dropdown-item>
 					<el-dropdown-item>
-						<el-button @click="MilitaryPlotting('DrawArc')">绘制弓形</el-button>
+						<el-button @click="MilitaryPlotting('DrawBowLine')">绘制弓形线</el-button>
 					</el-dropdown-item>
 					<el-dropdown-item>
-						<el-button @click="MilitaryPlotting('DrawLune')">绘制弓形面</el-button>
+						<el-button @click="MilitaryPlotting('DrawBowPlane')">绘制弓形面</el-button>
 					</el-dropdown-item>
 					<el-dropdown-item>
 						<el-button @click="MilitaryPlotting('DrawSector')">绘制扇形</el-button>

+ 2 - 2
src/jtMap3d/Widgets/DrawTools/CrEditProperty_MilitaryPlot.ce.vue

@@ -197,8 +197,8 @@
 				title.value = '绘制扇形';
 				break;
 
-			case "DrawArc":
-				title.value = '绘制弓形';
+			case "DrawBowLine":
+				title.value = '绘制弓形线';
 				break;
 			case "DrawLune":
 				title.value = '绘制弓形面';

+ 6 - 6
src/jtMap3d/Widgets/DrawTools/DrawMilitaryPlot.js

@@ -137,14 +137,14 @@ class DrawMilitaryPlot {
 					Cesium: this.cesium
 				})
 				break;
-			case "DrawArc":
-				this.Draw = new MilitaryPlot.DrawArc({
+			case "DrawBowLine":
+				this.Draw = new MilitaryPlot.DrawBowLine({
 					viewer: this._viewer,
 					Cesium: this.cesium
 				})
 				break;
-			case "DrawLune":
-				this.Draw = new MilitaryPlot.DrawLune({
+			case "DrawBowPlane":
+				this.Draw = new MilitaryPlot.DrawBowPlane({
 					viewer: this._viewer,
 					Cesium: this.cesium
 				})
@@ -366,8 +366,8 @@ Object.assign(DrawMilitaryPlot.prototype, {
 					editEntity.Type == 'DrawGatheringPlace' ||
 					editEntity.Type == 'DrawClosedCurve' ||
 					editEntity.Type == "DrawSector" ||
-					editEntity.Type == "DrawArc" ||
-					editEntity.Type == "DrawLune" ||
+					editEntity.Type == "DrawBowLine" ||
+					editEntity.Type == "DrawBowPlane" ||
 					editEntity.Type == 'DrawCurve' ||
 					editEntity.Type == 'DrawCurveFlag' ||
 					editEntity.Type == 'DrawRectFlag' ||

+ 8 - 8
src/jtMap3d/Widgets/DrawTools/MilitaryPlot/EntityEdit.js

@@ -77,7 +77,7 @@ export default class EntityEdit {
 
 	//处理拾取到的对象
 	handlePickEditEntity(pickId) {
-		const EditableTypes = ["DrawAttackArrow", "DrawCircle", "DrawCurve", 'DrawPincerArrow', 'DrawPoint', 'DrawPolygon', 'DrawPolyline', 'DrawRectangle', 'DrawStraightArrow', 'DrawGatheringPlace', 'DrawSector', 'DrawClosedCurve', 'DrawArc', 'DrawLune', 'DrawRectFlag', 'DrawTriangleFlag', 'DrawCurveFlag'];
+		const EditableTypes = ["DrawAttackArrow", "DrawCircle", "DrawCurve", 'DrawPincerArrow', 'DrawPoint', 'DrawPolygon', 'DrawPolyline', 'DrawRectangle', 'DrawStraightArrow', 'DrawGatheringPlace', 'DrawSector', 'DrawClosedCurve', 'DrawBowLine', 'DrawBowPlane', 'DrawRectFlag', 'DrawTriangleFlag', 'DrawCurveFlag'];
 		if (EditableTypes.indexOf(pickId.Type) == -1) return;
 		this.editEntity = pickId;
 		this.EditEndEntity.raiseEvent(this.editEntity);
@@ -171,12 +171,12 @@ export default class EntityEdit {
 				}, false);
 				break;
 
-			case "DrawArc":
+			case "DrawBowLine":
 				this.editEntity.polyline.positions = new Cesium.CallbackProperty(e => {
 					return this.DrawExample.computePosition(this.editPositions);
 				}, false);
 				break;
-			case "DrawLune":
+			case "DrawBowPlane":
 				this.editEntity.polygon.hierarchy = new Cesium.CallbackProperty(e => {
 					return this.DrawExample.computePosition(this.editPositions);
 				}, false);
@@ -280,12 +280,12 @@ export default class EntityEdit {
 				this.editEntity.Position = this.DrawExample.getData();
 				break;
 
-			case "DrawArc":
+			case "DrawBowLine":
 				position = this.DrawExample.computePosition(this.editPositions);
 				this.editEntity.polyline.positions = position;
 				this.editEntity.Position = this.DrawExample.getData();
 				break;
-			case "DrawLune":
+			case "DrawBowPlane":
 				position = this.DrawExample.computePosition(this.editPositions);
 				this.editEntity.polygon.hierarchy = position;
 				this.editEntity.Position = this.DrawExample.getData();
@@ -378,12 +378,12 @@ export default class EntityEdit {
 					positionArr.push(this.LatlngTocartesian(position[i]))
 				}
 				return positionArr;
-			case "DrawArc":
+			case "DrawBowLine":
 				for (let i = 0; i < position.length; i++) {
 					positionArr.push(this.LatlngTocartesian(position[i]))
 				}
 				return positionArr;
-			case "DrawLune":
+			case "DrawBowPlane":
 				for (let i = 0; i < position.length; i++) {
 					positionArr.push(this.LatlngTocartesian(position[i]))
 				}
@@ -595,7 +595,7 @@ export default class EntityEdit {
 
 	//创建中点节点
 	createMidVertex() {
-		if (this.editEntity.Type == 'DrawCircle' || this.editEntity.Type == 'DrawPincerArrow' || this.editEntity.Type == 'DrawRectangle' || this.editEntity.Type == 'DrawStraightArrow' || this.editEntity.Type == 'DrawGatheringPlace' || this.editEntity.Type == "DrawSector" || this.editEntity.Type == "DrawArc" || this.editEntity.Type == "DrawLune" || this.editEntity.Type == "DrawRectFlag" || this.editEntity.Type == "DrawTriangleFlag" || this.editEntity.Type == "DrawCurveFlag") {
+		if (this.editEntity.Type == 'DrawCircle' || this.editEntity.Type == 'DrawPincerArrow' || this.editEntity.Type == 'DrawRectangle' || this.editEntity.Type == 'DrawStraightArrow' || this.editEntity.Type == 'DrawGatheringPlace' || this.editEntity.Type == "DrawSector" || this.editEntity.Type == "DrawBowLine" || this.editEntity.Type == "DrawBowPlane" || this.editEntity.Type == "DrawRectFlag" || this.editEntity.Type == "DrawTriangleFlag" || this.editEntity.Type == "DrawCurveFlag") {
 			return
 		}
 		this.midVertexEntities = [];

+ 6 - 4
src/jtMap3d/Widgets/DrawTools/MilitaryPlot/drawingMethod/DrawAttackArrow.js

@@ -122,16 +122,18 @@ class DrawAttackArrow {
 				$this.createPoint(cartesian); // 绘制点
 				$this._positions.push(cartesian);
 
-				if ($this._positions.length > 2) {
-					showTooltipMessage("点击添加点,点击完成按钮,结束绘制");
-				} else {
+				if ($this._positions.length <= 2) {
 					showTooltipMessage("点击添加点");
-					if ($this._positions.length === 2) {
+				} else {
+					showTooltipMessage("点击添加点,点击完成按钮,结束绘制");
+					if ($this._positions.length === 3) {
 						if (!$this.Cesium.defined($this._AttackArrow)) {
 							$this._AttackArrow = $this.createAttackArrow();
 
 							//创建按钮
 							createOperationMainDom();
+							//隐藏回退按钮
+							document.getElementById("btnDrawBackout").style.display = 'none';
 							//完成绘制
 							document.getElementById("btnDrawComplete").onclick = () => {
 

+ 36 - 36
src/jtMap3d/Widgets/DrawTools/MilitaryPlot/drawingMethod/DrawArc.js → src/jtMap3d/Widgets/DrawTools/MilitaryPlot/drawingMethod/DrawBowLine.js

@@ -1,20 +1,20 @@
 
 /*
-九、绘制弓形
+九、绘制弓形线
  */
-class DrawArc {
+class DrawBowLine {
 	constructor(arg) {
 		this.viewer = arg.viewer;
 		this.Cesium = arg.Cesium;
 		this.tt = 0.4;
 		this.floatingPoint = null; //标识点
 		this.drawHandler = null; //画事件
-		this.DrawArc = null; //弓形
-		this._DrawArcLast = null; //最后一个弓形
+		this.DrawBowLine = null; //弓形
+		this._DrawBowLineLast = null; //最后一个弓形
 		this._positions = []; //活动点
 		this._entities_point = []; //脏数据
 		this._entities_PincerArrow = []; //脏数据
-		this._DrawArcData = null; //用于构造弓形
+		this._DrawBowLineData = null; //用于构造弓形
 		this.DrawStartEvent = new Cesium.Event(); //开始绘制事件
 		this.DrawEndEvent = new Cesium.Event(); //结束绘制事件 
 		
@@ -39,12 +39,12 @@ class DrawArc {
 
 	//返回弓形
 	get PincerArrow() {
-		return this._DrawArcLast;
+		return this._DrawBowLineLast;
 	}
 
 	//返回弓形数据用于加载弓形
 	getData() {
-		return this._DrawArcData;
+		return this._DrawBowLineData;
 	}
 
 	// 修改编辑调用计算
@@ -53,14 +53,14 @@ class DrawArc {
 		if (data.length < 3) {
 			return;
 		}
-		var DrawArc = [];
+		var DrawBowLine = [];
 		let positions = [];
 		for (var i = 0; i < data.length; i++) {
 			positions.push($this.cartesianToLatlng(data[i]));
 			var cart3 = $this.lonLatToMercator($this.cartesianToLatlng(data[i]));
-			DrawArc.push(cart3);
+			DrawBowLine.push(cart3);
 		}
-		let [pnt1, pnt2, pnt3, startAngle, endAngle] = [DrawArc[0], DrawArc[2], DrawArc[1], null, null];
+		let [pnt1, pnt2, pnt3, startAngle, endAngle] = [DrawBowLine[0], DrawBowLine[2], DrawBowLine[1], null, null];
 		let center = $this.getCircleCenterOfThreePoints(pnt1, pnt2, pnt3)
 		let radius = $this.MathDistance(pnt1, center)
 		let angle1 = $this.getAzimuth(pnt1, center)
@@ -78,7 +78,7 @@ class DrawArc {
 			var cart3 = $this.LatlngTocartesian($this.WebMercator2lonLat(getArcPoint[l]));
 			pHierarchy.push(cart3);
 		}
-		$this._DrawArcData = positions
+		$this._DrawBowLineData = positions
 		return pHierarchy
 	}
 
@@ -88,12 +88,12 @@ class DrawArc {
 		if (data.length < 3) {
 			return;
 		}
-		var DrawArc = [];
+		var DrawBowLine = [];
 		for (var i = 0; i < data.length; i++) {
 			var cart3 = $this.lonLatToMercator(data[i]);
-			DrawArc.push(cart3);
+			DrawBowLine.push(cart3);
 		}
-		let [pnt1, pnt2, pnt3, startAngle, endAngle] = [DrawArc[0], DrawArc[2], DrawArc[1], null, null];
+		let [pnt1, pnt2, pnt3, startAngle, endAngle] = [DrawBowLine[0], DrawBowLine[2], DrawBowLine[1], null, null];
 		let center = $this.getCircleCenterOfThreePoints(pnt1, pnt2, pnt3)
 		let radius = $this.MathDistance(pnt1, center)
 		let angle1 = $this.getAzimuth(pnt1, center)
@@ -113,7 +113,7 @@ class DrawArc {
 			pHierarchy.push(cart3);
 		}
 		var arrowEntity = $this.viewer.entities.add({
-			Type: 'DrawArc',
+			Type: 'DrawBowLine',
 			Position: data,
 			id: data.id || $this.objId,
 			polyline: {
@@ -180,11 +180,11 @@ class DrawArc {
 				return;
 			}
 			//console.log("点击地图移动采集的点:",cartesian);
-			if (!$this.Cesium.defined($this.DrawArc)) {
-				$this.DrawArc = $this.createDrawArc();
+			if (!$this.Cesium.defined($this.DrawBowLine)) {
+				$this.DrawBowLine = $this.createDrawBowLine();
 			}
 			$this.floatingPoint.position.setValue(cartesian);
-			if ($this.DrawArc) {
+			if ($this.DrawBowLine) {
 				//替换最后一个点
 				// _positions.pop();
 				// _positions.push(cartesian);
@@ -204,18 +204,18 @@ class DrawArc {
 		this.handler.setInputAction(function(movement) {
 
 			if ($this._positions.length >= 3) {
-				$this._DrawArcData = $this._positions.concat();
-				$this.viewer.entities.remove($this.DrawArc); //移除
-				$this.DrawArc = null;
+				$this._DrawBowLineData = $this._positions.concat();
+				$this.viewer.entities.remove($this.DrawBowLine); //移除
+				$this.DrawBowLine = null;
 				var lnglatArr = [];
-				for (var i = 0; i < $this._DrawArcData.length; i++) {
-					var lnglat = $this.cartesianToLatlng($this._DrawArcData[i]);
+				for (var i = 0; i < $this._DrawBowLineData.length; i++) {
+					var lnglat = $this.cartesianToLatlng($this._DrawBowLineData[i]);
 					lnglatArr.push(lnglat)
 				}
-				$this._DrawArcData = lnglatArr;
+				$this._DrawBowLineData = lnglatArr;
 				var pincerArrow = $this.addload(lnglatArr); //加载
 				$this._entities_PincerArrow.push(pincerArrow);
-				$this._DrawArcLast = pincerArrow;
+				$this._DrawBowLineLast = pincerArrow;
 				$this.viewer.entities.remove($this.floatingPoint);
 				$this.floatingPoint = null;
 
@@ -228,20 +228,20 @@ class DrawArc {
 	}
 
 	//创建弓形
-	createDrawArc() {
+	createDrawBowLine() {
 		let $this = this
-		var DrawArcEntity = $this.viewer.entities.add({
+		var DrawBowLineEntity = $this.viewer.entities.add({
 			polyline: {
 				positions: new $this.Cesium.CallbackProperty(function() {
 					if ($this._positions.length < 3) {
 						return;
 					}
-					var DrawArc = [];
+					var DrawBowLine = [];
 					for (var i = 0; i < $this._positions.length; i++) {
 						var cart3 = $this.lonLatToMercator($this.cartesianToLatlng($this._positions[i]));
-						DrawArc.push(cart3);
+						DrawBowLine.push(cart3);
 					}
-					let [pnt1, pnt2, pnt3, startAngle, endAngle] = [DrawArc[0], DrawArc[2], DrawArc[1], null, null];
+					let [pnt1, pnt2, pnt3, startAngle, endAngle] = [DrawBowLine[0], DrawBowLine[2], DrawBowLine[1], null, null];
 					let center = $this.getCircleCenterOfThreePoints(pnt1, pnt2, pnt3)
 					let radius = $this.MathDistance(pnt1, center)
 					let angle1 = $this.getAzimuth(pnt1, center)
@@ -268,10 +268,10 @@ class DrawArc {
 				clampToGround: true
 			}
 		})
-		//$this._entities_DrawArc.push(DrawArcEntity);
-		// DrawArcEntity.valueFlag = "value";
-		$this._entities_PincerArrow.push(DrawArcEntity);
-		return DrawArcEntity
+		//$this._entities_DrawBowLine.push(DrawBowLineEntity);
+		// DrawBowLineEntity.valueFlag = "value";
+		$this._entities_PincerArrow.push(DrawBowLineEntity);
+		return DrawBowLineEntity
 	}
 
 	//创建点
@@ -306,7 +306,7 @@ class DrawArc {
 	}
 
 	clearPoint() {
-		this.DrawEndEvent.raiseEvent(this._DrawArcLast, this._DrawArcData, this.drawType);
+		this.DrawEndEvent.raiseEvent(this._DrawBowLineLast, this._DrawBowLineData, this.drawType);
 		for (var i = 0; i < this._entities_point.length; i++) {
 			this.viewer.entities.remove(this._entities_point[i]);
 		}
@@ -531,4 +531,4 @@ class DrawArc {
 
 }
 
-export default DrawArc
+export default DrawBowLine

+ 34 - 35
src/jtMap3d/Widgets/DrawTools/MilitaryPlot/drawingMethod/DrawLune.js → src/jtMap3d/Widgets/DrawTools/MilitaryPlot/drawingMethod/DrawBowPlane.js

@@ -1,20 +1,19 @@
-// DrawLune
 /*
-九、绘制弓形
+九、绘制弓形
  */
-class DrawLune {
+class DrawBowPlane {
     constructor(arg) {
         this.viewer = arg.viewer;
         this.Cesium = arg.Cesium;
         this.tt = 0.4;
         this.floatingPoint = null;//标识点
         this.drawHandler = null;//画事件
-        this.DrawLune = null;//弓形
-        this._DrawLuneLast = null; //最后一个弓形
+        this.DrawBowPlane = null;//弓形
+        this._DrawBowPlaneLast = null; //最后一个弓形
         this._positions = [];//活动点
         this._entities_point = [];//脏数据
         this._entities_PincerArrow = [];//脏数据
-        this._DrawLuneData = null; //用于构造弓形
+        this._DrawBowPlaneData = null; //用于构造弓形
         this.DrawStartEvent = new Cesium.Event(); //开始绘制事件
         this.DrawEndEvent = new Cesium.Event(); //结束绘制事件 
 		
@@ -38,12 +37,12 @@ class DrawLune {
 
     //返回弓形
     get PincerArrow() {
-        return this._DrawLuneLast;
+        return this._DrawBowPlaneLast;
     }
 
     //返回弓形数据用于加载弓形
     getData() {
-        return this._DrawLuneData;
+        return this._DrawBowPlaneData;
     }
 
     // 修改编辑调用计算
@@ -52,14 +51,14 @@ class DrawLune {
         if (data.length < 3) {
             return;
         }
-        var DrawLune = [];
+        var DrawBowPlane = [];
         let positions = [];
         for (var i = 0; i < data.length; i++) {
             positions.push($this.cartesianToLatlng(data[i]));
             var cart3 =$this.lonLatToMercator($this.cartesianToLatlng(data[i]));
-            DrawLune.push(cart3);
+            DrawBowPlane.push(cart3);
         }
-        let [pnt1, pnt2, pnt3, startAngle, endAngle] = [DrawLune[0], DrawLune[2], DrawLune[1], null, null];
+        let [pnt1, pnt2, pnt3, startAngle, endAngle] = [DrawBowPlane[0], DrawBowPlane[2], DrawBowPlane[1], null, null];
         let center = $this.getCircleCenterOfThreePoints(pnt1, pnt2, pnt3)
         let radius = $this.MathDistance(pnt1, center)
         let angle1 = $this.getAzimuth(pnt1, center)
@@ -78,7 +77,7 @@ class DrawLune {
             pHierarchy.push(cart3);
         }
         pHierarchy.push(pHierarchy[0])
-        $this._DrawLuneData = positions
+        $this._DrawBowPlaneData = positions
         return new $this.Cesium.PolygonHierarchy(pHierarchy)
     }
 
@@ -88,12 +87,12 @@ class DrawLune {
         if (data.length < 3) {
             return;
         }
-        var DrawLune = [];
+        var DrawBowPlane = [];
         for (var i = 0; i < data.length; i++) {
             var cart3 =$this.lonLatToMercator(data[i]);
-            DrawLune.push(cart3);
+            DrawBowPlane.push(cart3);
         }
-        let [pnt1, pnt2, pnt3, startAngle, endAngle] = [DrawLune[0], DrawLune[2], DrawLune[1], null, null];
+        let [pnt1, pnt2, pnt3, startAngle, endAngle] = [DrawBowPlane[0], DrawBowPlane[2], DrawBowPlane[1], null, null];
         let center = $this.getCircleCenterOfThreePoints(pnt1, pnt2, pnt3)
         let radius = $this.MathDistance(pnt1, center)
         let angle1 = $this.getAzimuth(pnt1, center)
@@ -113,7 +112,7 @@ class DrawLune {
         }
         pHierarchy.push(pHierarchy[0])
         var arrowEntity = $this.viewer.entities.add({
-            Type: 'DrawLune',
+            Type: 'DrawBowPlane',
             Position: data,
             id: data.id || $this.objId,
             polygon: {
@@ -184,11 +183,11 @@ class DrawLune {
                 return;
             }
             //console.log("点击地图移动采集的点:",cartesian);
-            if (!$this.Cesium.defined($this.DrawLune)) {
-                $this.DrawLune = $this.createDrawLune();
+            if (!$this.Cesium.defined($this.DrawBowPlane)) {
+                $this.DrawBowPlane = $this.createDrawBowPlane();
             }
             $this.floatingPoint.position.setValue(cartesian);
-            if ($this.DrawLune) {
+            if ($this.DrawBowPlane) {
                 //替换最后一个点
                 // _positions.pop();
                 // _positions.push(cartesian);
@@ -208,18 +207,18 @@ class DrawLune {
         this.handler.setInputAction(function (movement) {
 
             if ($this._positions.length >= 3) {
-                $this._DrawLuneData = $this._positions.concat();
-                $this.viewer.entities.remove($this.DrawLune); //移除
-                $this.DrawLune = null;
+                $this._DrawBowPlaneData = $this._positions.concat();
+                $this.viewer.entities.remove($this.DrawBowPlane); //移除
+                $this.DrawBowPlane = null;
                 var lnglatArr = [];
-                for (var i = 0; i < $this._DrawLuneData.length; i++) {
-                    var lnglat = $this.cartesianToLatlng($this._DrawLuneData[i]);
+                for (var i = 0; i < $this._DrawBowPlaneData.length; i++) {
+                    var lnglat = $this.cartesianToLatlng($this._DrawBowPlaneData[i]);
                     lnglatArr.push(lnglat)
                 }
-                $this._DrawLuneData = lnglatArr;
+                $this._DrawBowPlaneData = lnglatArr;
                 var pincerArrow = $this.addload(lnglatArr); //加载
                 $this._entities_PincerArrow.push(pincerArrow);
-                $this._DrawLuneLast = pincerArrow;
+                $this._DrawBowPlaneLast = pincerArrow;
                 $this.viewer.entities.remove($this.floatingPoint);
                 $this.floatingPoint = null;
 
@@ -232,20 +231,20 @@ class DrawLune {
     }
 
     //创建弓形
-    createDrawLune() {
+    createDrawBowPlane() {
         let $this = this
-        var DrawLuneEntity = $this.viewer.entities.add({
+        var DrawBowPlaneEntity = $this.viewer.entities.add({
             polygon: {
                 hierarchy: new $this.Cesium.CallbackProperty(function () {
                     if ($this._positions.length < 3) {
                         return;
                     }
-                    var DrawLune = [];
+                    var DrawBowPlane = [];
                     for (var i = 0; i < $this._positions.length; i++) {
                         var cart3 =$this.lonLatToMercator($this.cartesianToLatlng($this._positions[i]));
-                        DrawLune.push(cart3);
+                        DrawBowPlane.push(cart3);
                     }
-                    let [pnt1, pnt2, pnt3, startAngle, endAngle] = [DrawLune[0], DrawLune[2], DrawLune[1], null, null];
+                    let [pnt1, pnt2, pnt3, startAngle, endAngle] = [DrawBowPlane[0], DrawBowPlane[2], DrawBowPlane[1], null, null];
                     let center = $this.getCircleCenterOfThreePoints(pnt1, pnt2, pnt3)
                     let radius = $this.MathDistance(pnt1, center)
                     let angle1 = $this.getAzimuth(pnt1, center)
@@ -272,8 +271,8 @@ class DrawLune {
             }
         }
         )
-        $this._entities_PincerArrow.push(DrawLuneEntity);
-        return DrawLuneEntity
+        $this._entities_PincerArrow.push(DrawBowPlaneEntity);
+        return DrawBowPlaneEntity
     }
 
     //创建点
@@ -308,7 +307,7 @@ class DrawLune {
     }
 
     clearPoint() {
-        this.DrawEndEvent.raiseEvent(this._DrawLuneLast, this._DrawLuneData, this.drawType);
+        this.DrawEndEvent.raiseEvent(this._DrawBowPlaneLast, this._DrawBowPlaneData, this.drawType);
         for (var i = 0; i < this._entities_point.length; i++) {
             this.viewer.entities.remove(this._entities_point[i]);
         }
@@ -533,4 +532,4 @@ class DrawLune {
 
 }
 
-export default DrawLune
+export default DrawBowPlane

+ 2 - 0
src/jtMap3d/Widgets/DrawTools/MilitaryPlot/drawingMethod/DrawClosedCurve.js

@@ -181,6 +181,8 @@ class DrawClosedCurve {
 
 							//创建按钮
 							createOperationMainDom();
+							//隐藏回退按钮
+							document.getElementById("btnDrawBackout").style.display = 'none';
 							//完成绘制
 							document.getElementById("btnDrawComplete").onclick = () => {
 

+ 2 - 0
src/jtMap3d/Widgets/DrawTools/MilitaryPlot/drawingMethod/DrawGatheringPlace.js

@@ -146,6 +146,8 @@ class DrawGatheringPlace {
 
 						//创建按钮
 						createOperationMainDom();
+						//隐藏回退按钮
+						document.getElementById("btnDrawBackout").style.display = 'none';
 						//完成绘制
 						document.getElementById("btnDrawComplete").onclick = () => {
 

+ 4 - 1
src/jtMap3d/Widgets/DrawTools/MilitaryPlot/drawingMethod/DrawPincerArrow.js

@@ -132,9 +132,12 @@ class DrawPincerArrow {
 					$this._positions.pop();
 					$this._positions.push(cartesian);
 
+					showTooltipMessage("点击添加点,点击完成按钮,结束绘制");
+
 					//创建按钮
 					createOperationMainDom();
-					showTooltipMessage("点击添加点,点击完成按钮,结束绘制");
+					//隐藏回退按钮
+					document.getElementById("btnDrawBackout").style.display = 'none';
 					//完成绘制
 					document.getElementById("btnDrawComplete").onclick = () => {
 

+ 110 - 34
src/jtMap3d/Widgets/DrawTools/MilitaryPlot/drawingMethod/DrawStraightArrow.js

@@ -2,8 +2,13 @@ import {
 	createTooltip
 } from "../../../common/common.js";
 
-//    七、直线箭头
-// DrawStraightArrow
+import {
+	isRuntimeApp,
+	isRuntimeWeb,
+	createOperationMainDom,
+	showTooltipMessage
+} from "../../../common/RuntimeEnvironment.js";
+
 /*
 绘制直线箭头
  */
@@ -101,48 +106,119 @@ class DrawStraightArrow {
 
 	//开始创建
 	startCreate(drawType) {
-		this.drawType = drawType;
+		if (isRuntimeApp()) {
+			showTooltipMessage("点击开始绘制");
+		}
+
 		var $this = this;
+
+		this.drawType = drawType;
 		this.handler = new this.Cesium.ScreenSpaceEventHandler(this.viewer.scene.canvas);
-		this.handler.setInputAction(function(evt) { //单机开始绘制
-			//屏幕坐标转地形上坐标
-			var cartesian = $this.getCatesian3FromPX(evt.position);
-			if ($this._positions.length == 0) {
-				$this._positions.push(cartesian.clone());
-				$this.floatingPoint = $this.createPoint(cartesian);
-				$this._positions.push(cartesian);
-			}
-			if (!$this._straightArrow) {
+
+		//单击开始绘制
+		this.handler.setInputAction(function(evt) {
+
+			if (isRuntimeApp()) {
+				//屏幕坐标转地形上坐标
+				var cartesian = $this.getCatesian3FromPX(evt.position);
+				if (!cartesian) {
+					return;
+				}
+
 				$this.createPoint(cartesian); // 绘制点
-			} else {
-				$this._straightArrowData = $this._positions.concat();
-				$this.viewer.entities.remove($this._straightArrow); //移除
-				$this._straightArrow = null;
-				$this._positions = [];
-				$this.floatingPoint.position.setValue(cartesian);
-				var lnglatArr = [];
-				for (var i = 0; i < $this._straightArrowData.length; i++) {
-					var lnglat = $this.cartesianToLatlng($this._straightArrowData[i]);
-					lnglatArr.push(lnglat)
+				$this._positions.push(cartesian);
+
+				if ($this._positions.length === 2) {
+					showTooltipMessage("点击完成按钮,结束绘制");
+					$this.destroy();
+					if (!$this.Cesium.defined($this._straightArrow)) {
+						$this._straightArrow = $this.createStraightArrow();
+
+						//创建按钮
+						createOperationMainDom();
+						//隐藏回退按钮
+						document.getElementById("btnDrawBackout").style.display='none';
+						
+						//完成绘制
+						document.getElementById("btnDrawComplete").onclick = () => {
+
+							$this._straightArrowData = $this._positions.concat();
+							$this.viewer.entities.remove($this._straightArrow); //移除
+							$this._straightArrow = null;
+							$this._positions = [];
+
+							var lnglatArr = [];
+							for (var i = 0; i < $this._straightArrowData.length; i++) {
+								var lnglat = $this.cartesianToLatlng($this._straightArrowData[i]);
+								lnglatArr.push(lnglat)
+							}
+							$this._straightArrowData = lnglatArr;
+							var straightArrow = $this.addload($this._straightArrowData); //加载
+							$this._entities_straightArrow.push(straightArrow);
+							$this._straightArrowLast = straightArrow;
+
+							//删除关键点
+							$this.clearPoint();
+							$this.destroy();
+
+							let buttonDiv = document.getElementById("drawButtonDiv");
+							if (buttonDiv) {
+								//从页面移除
+								document.body.removeChild(buttonDiv);
+							}
+						}
+					}
 				}
-				$this._straightArrowData = lnglatArr;
-				var straightArrow = $this.addload($this._straightArrowData); //加载
-				$this._entities_straightArrow.push(straightArrow);
-				$this._straightArrowLast = straightArrow;
-				$this.clearPoint();
-				$this.destroy();
-				
-				$this._tooltip.setVisible(false);
-			}
+			} else {
+				/* 锁定点击事件 以免和双击事件冲突 */
+				clearTimeout($this._timer);
+				$this._timer = setTimeout(function() {
+					console.log('监听鼠标事件', '单击')
 
+					//屏幕坐标转地形上坐标
+					var cartesian = $this.getCatesian3FromPX(evt.position);
+					if ($this._positions.length == 0) {
+						$this._positions.push(cartesian.clone());
+						$this.floatingPoint = $this.createPoint(cartesian);
+						$this._positions.push(cartesian);
+					}
+					if (!$this._straightArrow) {
+						$this.createPoint(cartesian); // 绘制点
+					} else {
+						$this._straightArrowData = $this._positions.concat();
+						$this.viewer.entities.remove($this._straightArrow); //移除
+						$this._straightArrow = null;
+						$this._positions = [];
+						$this.floatingPoint.position.setValue(cartesian);
+						var lnglatArr = [];
+						for (var i = 0; i < $this._straightArrowData.length; i++) {
+							var lnglat = $this.cartesianToLatlng($this._straightArrowData[i]);
+							lnglatArr.push(lnglat)
+						}
+						$this._straightArrowData = lnglatArr;
+						var straightArrow = $this.addload($this._straightArrowData); //加载
+						$this._entities_straightArrow.push(straightArrow);
+						$this._straightArrowLast = straightArrow;
+						$this.clearPoint();
+						$this.destroy();
+
+						$this._tooltip.setVisible(false);
+					}
+				}, 200);
+			}
 		}, $this.Cesium.ScreenSpaceEventType.LEFT_CLICK);
-		this.handler.setInputAction(function(evt) { //移动时绘制面
+		//移动时绘制面
+		this.handler.setInputAction(function(evt) {
+
+			/* 如果运行环境是App 则禁止使用鼠标移动事件 */
+			if (isRuntimeApp()) return;
+
 			$this._tooltip.showAt(evt.endPosition, "点击开始绘制");
 
 			if ($this._positions.length < 2) return;
-			
+
 			$this._tooltip.showAt(evt.endPosition, "点击结束绘制");
-			
+
 			var cartesian = $this.getCatesian3FromPX(evt.endPosition);
 			if (!$this.Cesium.defined($this._straightArrow)) {
 				$this._straightArrow = $this.createStraightArrow();

+ 4 - 4
src/jtMap3d/Widgets/DrawTools/MilitaryPlot/drawingMethod/index.js

@@ -5,8 +5,8 @@ import DrawGatheringPlace from './DrawGatheringPlace';
 import DrawClosedCurve from './DrawClosedCurve';
 import DrawSector from './DrawSector';
 
-import DrawArc from './DrawArc';
-import DrawLune from './DrawLune';
+import DrawBowLine from './DrawBowLine';
+import DrawBowPlane from './DrawBowPlane';
 
 import DrawCurve from './DrawCurve';
 import DrawCurveFlag from './DrawCurveFlag';
@@ -29,8 +29,8 @@ let MilitaryPlot = {
 
 	DrawSector, //绘制扇形
 
-	DrawArc, // 绘制弓形
-	DrawLune, // 绘制弓形面
+	DrawBowLine, // 绘制弓形线
+	DrawBowPlane, // 绘制弓形面
 
 	DrawCurve, //绘制曲线
 	DrawCurveFlag, //绘制曲线旗帜