| | |
| | | * @Author: shuishen 1109946754@qq.com |
| | | * @Date: 2022-10-18 17:17:50 |
| | | * @LastEditors: shuishen 1109946754@qq.com |
| | | * @LastEditTime: 2022-10-25 15:41:19 |
| | | * @LastEditTime: 2022-10-25 16:38:11 |
| | | * @FilePath: \srs-police-affairs\src\utils\EntityDraw.js |
| | | * @Description: |
| | | * |
| | |
| | | export default class EntityDraw { |
| | | |
| | | drawPolygonLayer = null |
| | | drawPolylineLayer = null |
| | | |
| | | drawPointLayer = null |
| | | |
| | |
| | | // 添加面图层 |
| | | 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') |
| | |
| | | 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 |
| | | } |
| | |
| | | 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) |
| | |
| | | } |
| | | |
| | | 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() |
| | | } |
| | |
| | | |
| | | }) |
| | | |
| | | 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() |
| | | } |
| | |
| | | // 清除 |
| | | 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() |
| | | |