From b9aead3b741cd6cd84b3198869fa6149d1c9d0c8 Mon Sep 17 00:00:00 2001
From: guanqb <18720758508@163.com>
Date: Tue, 25 Oct 2022 17:49:33 +0800
Subject: [PATCH] Merge branch 'master' of http://192.168.0.105:10010/r/srs-police-affairs
---
src/utils/EntityDraw.js | 115 +++++++++++++++++++++++++++++++++++++++++++++++----------
1 files changed, 94 insertions(+), 21 deletions(-)
diff --git a/src/utils/EntityDraw.js b/src/utils/EntityDraw.js
index d41907c..df5f66e 100644
--- a/src/utils/EntityDraw.js
+++ b/src/utils/EntityDraw.js
@@ -2,7 +2,7 @@
* @Author: shuishen 1109946754@qq.com
* @Date: 2022-10-18 17:17:50
* @LastEditors: shuishen 1109946754@qq.com
- * @LastEditTime: 2022-10-20 10:10:26
+ * @LastEditTime: 2022-10-25 16:38:11
* @FilePath: \srs-police-affairs\src\utils\EntityDraw.js
* @Description:
*
@@ -12,6 +12,7 @@
export default class EntityDraw {
drawPolygonLayer = null
+ drawPolylineLayer = null
drawPointLayer = null
@@ -20,6 +21,8 @@
activeShape = null
drawCompletePosition = []
+
+ type = ''
constructor() {
// 去除双击
@@ -39,12 +42,19 @@
this.drawPolygonLayer = new global.DC.VectorLayer('drawPolygonLayer')
global.viewer.addLayer(this.drawPolygonLayer)
+ // 添加线图层
+ this.drawPolylineLayer = new global.DC.VectorLayer('drawPolylineLayer')
+ global.viewer.addLayer(this.drawPolylineLayer)
+
+
// 添加点图层
this.drawPointLayer = new global.DC.VectorLayer('drawPointLayer')
global.viewer.addLayer(this.drawPointLayer)
}
- activate () {
+ activate (type) {
+ this.type = type
+
this.drawCompletePosition = []
this.clearLayer()
@@ -83,14 +93,27 @@
drawGraph (positionData) {
let graph
- graph = global.viewer.entities.add({
- polygon: {
- hierarchy: positionData,
- material: new global.DC.Namespace.Cesium.ColorMaterialProperty(
- global.DC.Namespace.Cesium.Color.NAVAJOWHITE.withAlpha(0.7)
- ),
- }
- })
+ if (this.type === "polyline") {
+ graph = global.viewer.entities.add({
+ polyline: {
+ material: new global.DC.Namespace.Cesium.ColorMaterialProperty(
+ global.DC.Namespace.Cesium.Color.NAVAJOWHITE.withAlpha(0.7)
+ ),
+ positions: positionData,
+ clampToGround: true,
+ width: 3,
+ },
+ })
+ } else {
+ graph = global.viewer.entities.add({
+ polygon: {
+ hierarchy: positionData,
+ material: new global.DC.Namespace.Cesium.ColorMaterialProperty(
+ global.DC.Namespace.Cesium.Color.NAVAJOWHITE.withAlpha(0.7)
+ ),
+ }
+ })
+ }
return graph
}
@@ -118,7 +141,13 @@
that.activeShapePoints.push(event.surfacePosition)
const dynamicPositions = new global.DC.Namespace.Cesium.CallbackProperty(function () {
- return new global.DC.Namespace.Cesium.PolygonHierarchy(that.activeShapePoints)
+
+ if (that.type === "polyline") {
+ return that.activeShapePoints
+ } else {
+ return new global.DC.Namespace.Cesium.PolygonHierarchy(that.activeShapePoints)
+ }
+
}, false)
that.activeShape = that.drawGraph(dynamicPositions)
@@ -149,10 +178,19 @@
}
rightEvent (event) {
- if (this.activeShapePoints.length < 4) {
- global.viewer.tooltip.showAt(event.windowPosition, '不能绘制成面,请继续添加点')
- return
+
+ if (this.type === "polyline") {
+ if (this.activeShapePoints.length < 2) {
+ global.viewer.tooltip.showAt(event.windowPosition, '不能绘制成线,请继续添加点')
+ return
+ }
+ } else {
+ if (this.activeShapePoints.length < 4) {
+ global.viewer.tooltip.showAt(event.windowPosition, '不能绘制成面,请继续添加点')
+ return
+ }
}
+
this.terminateShape()
}
@@ -169,15 +207,31 @@
})
- let polygon = new global.DC.Polygon(this.drawCompletePosition)
+ if (this.type === "polyline") {
- polygon.setStyle({
- material: new global.DC.Namespace.Cesium.ColorMaterialProperty(
- global.DC.Namespace.Cesium.Color.NAVAJOWHITE.withAlpha(0.7)
- )
- })
+ let polyline = new global.DC.Polyline(this.drawCompletePosition)
- this.drawPolygonLayer.addOverlay(polygon)
+ polyline.setStyle({
+ material: new global.DC.Namespace.Cesium.ColorMaterialProperty(
+ global.DC.Namespace.Cesium.Color.NAVAJOWHITE.withAlpha(0.7)
+ )
+ })
+
+ this.drawPolylineLayer.addOverlay(polyline)
+
+ } else {
+ let polygon = new global.DC.Polygon(this.drawCompletePosition)
+
+ polygon.setStyle({
+ material: new global.DC.Namespace.Cesium.ColorMaterialProperty(
+ global.DC.Namespace.Cesium.Color.NAVAJOWHITE.withAlpha(0.7)
+ )
+ })
+
+ this.drawPolygonLayer.addOverlay(polygon)
+ }
+
+
this.clickInTheProcess()
}
@@ -200,5 +254,24 @@
// 清除
clearLayer () {
this.drawPolygonLayer.clear()
+ this.drawPolylineLayer.clear()
+ }
+
+ // 销毁
+ destroy () {
+ this.unRegisterEvents()
+
+ this.drawPolygonLayer.clear()
+ this.drawPolygonLayer.remove()
+
+ this.drawPolylineLayer.clear()
+ this.drawPolylineLayer.remove()
+
+ this.drawPointLayer.clear()
+ this.drawPointLayer.remove()
+
+ this.activeShape = null
+ this.activeShapePoints = []
+ this.drawCompletePosition = []
}
}
\ No newline at end of file
--
Gitblit v1.9.3