吉安感知网项目-前端
张含笑
2026-02-26 d3b8e4441dd556aebcd74b94d4639a59d0e81076
applications/task-work-order/src/views/orderView/orderManage/orderManage/FormDiaLog.vue
@@ -550,6 +550,19 @@
   })
}
//  生成圆形坐标点
function buildCirclePositions(center, radius, segments = 120) {
   const cartographic = Cesium.Cartographic.fromCartesian(center)
   const positions = []
   for (let i = 0; i < segments; i++) {
      const angle = (i / segments) * 2 * Math.PI
      const lat = cartographic.latitude + (radius / 6378137) * Math.cos(angle)
      const lon = cartographic.longitude + (radius / (6378137 * Math.cos(cartographic.latitude))) * Math.sin(angle)
      positions.push(Cesium.Cartesian3.fromRadians(lon, lat))
   }
   return positions
}
//  渲染
function renderingAllDevice(list) {
   list.forEach(item => {
@@ -576,6 +589,27 @@
            pixelOffset: new Cesium.Cartesian2(0, -20),
         },
      })
      // 覆盖范围 - 5km圆形区域
      viewer.entities.add({
         position: position,
         ellipse: {
            semiMajorAxis: 5000,
            semiMinorAxis: 5000,
            material: Cesium.Color.fromBytes(45, 140, 240, 80),
            outline: false,
            heightReference: Cesium.HeightReference.CLAMP_TO_GROUND,
         },
      })
      // 覆盖范围描边线 - 贴地
      const circlePositions = buildCirclePositions(position, 5000)
      viewer.entities.add({
         polyline: {
            positions: [...circlePositions, circlePositions[0]],
            clampToGround: true,
            width: 2,
            material: Cesium.Color.fromBytes(45, 140, 240, 255),
         },
      })
   })
}