【mars3d】Cesium实现雷达放射波

Cesium实现雷达放射波

1、雷达放射波

先看效果图

在这里插入图片描述

说明:使用的是mars3d框架,原生的Cesium实现方式可以绕道~

实现方式:
<template>
  <div id="mars3dContainer"></div>
</template>

<script setup>
import { onMounted } from 'vue'
import * as mars3d from 'mars3d'

let Cesium = mars3d.Cesium
let graphicLayer

onMounted(() => {
  // 初始化 Cesium.Viewer
  var mapOptions = {
    basemaps: [{ name: '天地图', type: 'tdt', layer: 'img_d', show: true }],
    scene: {
      center: { lat: 30.63693, lng: 116.271312, alt: 25226, heading: 350, pitch: -38 }
    }
  }
  var map = new mars3d.Map('mars3dContainer', mapOptions)
  // 创建矢量数据图层
  graphicLayer = new mars3d.layer.GraphicLayer()
  map.addLayer(graphicLayer)
  addLeida(graphicLayer)
})

// 雷达放射波
const addLeida = (graphicLayer) => {
  const graphic = new mars3d.graphic.CylinderPrimitive({
    position: [116.328775, 30.954602, 0],
    style: {
      angle: 5, // 半场角度
      length: 10000.0,
      topRadius: 0.0,
      bottomRadius: 1500.0,
      // 自定义扩散波纹纹理
      materialType: mars3d.MaterialType.CylinderWave,
      materialOptions: {
        color: '#ffff00',
        repeat: 30.0
      },
      faceForward: false, // 当绘制的三角面片法向不能朝向视点时,自动翻转法向,从而避免法向计算后发黑等问题
      closed: true // 是否为封闭体,实际上执行的是 是否进行背面裁剪
    },
    attr: { remark: '示例5' }
  })
  graphicLayer.addGraphic(graphic)
}
</script>

<style scoped>
#mars3dContainer {
  width: 100vw;
  height: 100vh;
}
</style>

mars3d如何安装使用,见博客【mars3d】Vue3项目集成mard3d实现gis空间地理系统

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值