当前位置: 首页 > article >正文

Vue.js2+Cesium1.103.0 十四、绘制视锥,并可实时调整视锥姿态

Vue.js2+Cesium1.103.0 十四、绘制视锥,并可实时调整视锥姿态

Demo

<template>
  <div
    id="cesium-container"
    style="width: 100%; height: 100%;"
  >
    <div
      class="control"
      style="position: absolute;right: 50px;top: 50px;z-index: 999;width: 200px;color: #fff;"
    >
      <div>
        <span>width</span>
        <el-slider
          v-model="width"
          :min="0"
          :max="1000"
          @input="handleChange"
        />
      </div>
      <div>
        <span>height</span>
        <el-slider
          v-model="height"
          :min="0"
          :max="1000"
          @input="handleChange"
        />
      </div>
      <div>
        <span>fov</span>
        <el-slider
          v-model="fov"
          :min="0"
          :max="179"
          @input="handleChange"
        />
      </div>
      <div>
        <span>near</span>
        <el-slider
          v-model="near"
          :min="0"
          :max="10000"
          @input="handleChange"
        />
      </div>
      <div>
        <span>far</span>
        <el-slider
          v-model="far"
          :min="0"
          :max="near"
          @input="handleChange"
        />
      </div>
      <div>
        <span>heading</span>
        <el-slider
          v-model="heading"
          :min="0"
          :max="360"
          @input="handleChange"
        />
      </div>
      <div>
        <span>pitch</span>
        <el-slider
          v-model="pitch"
          :min="0"
          :max="360"
          @input="handleChange"
        />
      </div>
      <div>
        <span>roll</span>
        <el-slider
          v-model="roll"
          :min="0"
          :max="360"
          @input="handleChange"
        />
      </div>
    </div>
  </div>
</template>

<script>
/* eslint-disable no-undef */
/* eslint-disable new-cap */
import CreateFrustum from './CreateFrustum'
export default {
  name: 'ConeOfVision',
  data() {
    return {
      longitude: 117,
      latitude: 39,
      altitude: 100,
      width: 150,
      height: 100,
      fov: 90.0,
      near: 200.0,
      far: 10.0,
      roll: 0,
      pitch: 0,
      heading: 0,
      frustum: null
    }
  },
  computed: {},
  watch: {},
  mounted() {
    window.$InitMap()

    viewer.camera.flyTo({
      destination: Cesium.Cartesian3.fromDegrees(117, 38.992, 1000.0),
      orientation: {
        heading: Cesium.Math.toRadians(0.0),
        pitch: Cesium.Math.toRadians(-45.0),
        roll: 0.0
      }
    })

    // * 创建视锥体(primitive,根据坐标和 heading,pitch,roll 实时更新椎体姿态)
    this.frustum = new CreateFrustum({
      position: {
        longitude: this.longitude,
        latitude: this.latitude,
        altitude: this.altitude
      },
      fov: this.fov, // 视场的角度(FOV),以弧度表示
      near: this.near, // 近平面的距离
      far: this.far, // 远平面的距离
      heading: this.heading,
      pitch: this.pitch,
      roll: this.roll,
      width: this.width,
      height: this.height
    })

  },
  methods: {
    handleChange() {
      this.frustum.UpdateWidth(this.width)
      this.frustum.UpdateHeight(this.height)
      this.frustum.UpdateHeading(this.heading)
      this.frustum.UpdatePitch(this.pitch)
      this.frustum.UpdateRoll(this.roll)
      this.frustum.UpdateFov(this.fov)
      this.frustum.UpdateNear(this.near)
      this.frustum.UpdateFar(this.far)
    }
  }
}
</script>

<style></style>


http://www.kler.cn/a/133149.html

相关文章:

  • stm32——通用定时器时钟知识点
  • MySQL【七】
  • vue内置指令和自定义指令
  • Day44 | 动态规划 :状态机DP 买卖股票的最佳时机IV买卖股票的最佳时机III
  • 【大数据测试 Hive数据库--保姆级教程】
  • 哈佛商业评论 | 未来商业的技术趋势:百度李彦宏谈技术如何变革商业
  • WPF自定义控件介绍
  • 【作业】操作系统实验一:进程和线程
  • 释放机器人潜力,INDEMIND深耕底层技术
  • JMeter-BeanShell预处理程序和BeanShell后置处理程序的应用
  • 目标检测YOLO系列从入门到精通技术详解100篇-【目标检测】计算机视觉(补充篇)
  • 项目踩坑之面试遇到的问题及解决
  • 自动化网络图软件
  • 企业邮箱认证指南:安全与高效的邮箱认证方法
  • 达梦数据库常用参数查询
  • 抗击.Elbie勒索病毒:如何应对.Elbie病毒威胁,保卫您的数据
  • “可信区块链运行监测服务平台TBM发展研讨会”将于11月23日在北京召开
  • 【Linux网络】ssh服务与配置,实现安全的密钥对免密登录
  • python趣味编程-5分钟实现一个益智数独游戏(含源码、步骤讲解)
  • 策略模式在数据接收和发送场景的应用(升级版)
  • rollout
  • 指针——C语言初阶
  • Spring底层原理学习笔记--第十一讲--(aop之proxy增强-jdk及aop之proxy增强-cglib)
  • 使用 Hugging Face Transformer 微调 BERT
  • ElasticStack日志分析平台-ES 集群、Kibana与Kafka
  • 获取虎牙直播源