添加动态云层


 

<template>

  <div class="topbox">

    xx卫星管理

  </div>

  <div class="selectbox">

    <div class="title">

      卫星列表

    </div>

    <el-table :data="tableData" style="width: 100%;height:230px;" @row-click="row">

      <el-table-column prop="date" label="日期"/>

      <el-table-column prop="name" label="卫星名"/>

      <el-table-column prop="address" label="类型" />

    </el-table>

</div>

<div style="color:#ffffff;position:absolute;top:90px;right:10px;z-index:100;">

  速度:<el-input-number v-model="currents" :min="1" :max="100" @change="handleChange" />

</div>

  <div id="container" class="mainMap2"></div>

  </template>

  <script setup lang="ts">

import { ref, onMounted} from 'vue';

import {hyczData} from "../../../assets/fj";

let esc,viewer,scene;

let addurl ;

onMounted(async () => {

   esc = new easyCesium.init();

  //  默认加载本地静态图片

    viewer = esc.init({url:"./baseImage.jpg",Cesium:Cesium,id:"container"});

    esc.utils().tools({val:"高程"})

    scene = esc.scenes()

    scene.hideTime()

    addurl = esc.addUrl();

});

let currents = ref(1)

let arrsp=ref([])

hyczData.forEach((item,index)=>{

  arrsp.value.push({name:"站点"+(index+1),lt:item})

})

let tles =    {

          "code": "xyz",

          "index": 0,

         

          "name": "xyz-000000",

          "startTime": "2018-09-15 08:00:00",

          "endTime": "2018-09-15 20:00:00"

        };

         let gltf = "./beidou.gltf";

         let imgurl = './satellite.png';

        let time = new Date(tles.startTime);

                          let pathColor=Cesium.Color.fromCssColorString("#00ff0f")

                          let labelColor = Cesium.Color.fromCssColorString("#00ffff")

                          let endTime = 24

                          const option = {

                            text: tles.name,

                            startTime: time,

                            BoardUri: imgurl,

                            BoardShow: false,

                            font: "5px sans-serif", // 卫星名称字体和字号大小

                            pathColor: [pathColor.red * 255, pathColor.green * 255, pathColor.blue * 255, 255],

                            pathWidth:  1,

                            model: gltf,

                            modelScale: 500,

                            labelColor: [labelColor.red * 255, labelColor.green * 255, labelColor.blue * 255, 255],

                            stepNum: 360,

                            time: endTime

                        };

                        const tle = {

                            tle1: "1 50000U 18001B   21349.00000000  .00000000  00000-0  30000-3 0   111",

                            tle2:  "2 50000  97.4085  63.8633 0004624 104.1156 214.7760 15.25669381  2222",

                        };

   


 

const row=(data)=>{

  if(!entity.value){

    let czml = addurl.getCzml(tle,option);

    let add = addurl.addEntity(czml);

    add.then(res=>{

    })

  }

  if(data.name=="添加云层"){

    esc.utils().tools({viewer:viewer,val:"动态云",url:"./earth_cloud.png",step:0.1})

  }

}

const tableData = [

  {

    date: '2016-05-03',

    name: '星一',

    address: '民一',

  },

  {

    date: '2016-05-02',

    name: '星三',

    address: '民二',

  },

  {

    date: '2016-05-04',

    name: '星二',

    address: '民三',

  },

  {

    date: '2016-05-05',

    name: '星二',

    address: '民三',

  },

  {

    date: '2016-05-02',

    name: '星三',

    address: '民二',

  },

  {

    date: '2016添加云层-05-04',

    name: '添加云层',

    address: '添加云层',

  },

  {

    date: '添加云层-05-05',

    name: '添加云层1',

    address: '添加云层1',

  }

]

let isleft = ref(false)

let textnum = ref(1)

let value1 = ref(true)

let value2 = ref(true)

let entity = ref(null)

let currentnum = ref(1)

let callback=(res)=>{

  if(res.entity){

    entity.value = res.entity

  }

  if(res.num){

    currentnum.value = res.num+1

  }

    }

    let   handleChange=(val)=>{

        scene.status({options:{multip:currents.value}})

        esc.utils().tools({viewer:viewer,val:"动态云",url:"./earth_cloud.png",step:currents.value})

    }

  let   handleChange1=(val)=>{

    if(isleft.value){

      scene.status({options:{status:value1.value,multip:textnum.value,entity:entity.value,track:value2.value}})

    }

    }

const change = (val)=>{

}

const value = ref('')


 

// const num = 0

const options = [

]

  </script>

  <style scoped>

  @import url("../../../assets/css/scene.css");

  </style>

  <style>

  @import url("../../../assets/css/scenet.css");

  </style>

下面是在osgEarth 3.2中添加一个云层layer的示例代码: ```cpp #include <osgEarth/Map> #include <osgEarth/MapNode> #include <osgEarthUtil/Sky> #include <osgEarthUtil/Controls> #include <osgEarthUtil/LayerManipulator> using namespace osgEarth; using namespace osgEarth::Util; int main(int argc, char** argv) { // 创建一个地图 osg::ref_ptr<Map> map = new Map(); // 创建一个图层 osg::ref_ptr<Layer> layer = new ImageLayer( new ImageLayerOptions("Clouds", "http://tile.openweathermap.org/map/clouds_new/0/0/0.png", ProfileOptions(), ImageLayerOptions::IMAGE, osgEarth::optional<int>(7))); // 将图层添加到地图中 map->addLayer(layer.get()); // 创建一个地图节点 osg::ref_ptr<MapNode> mapNode = new MapNode(map.get()); // 创建一个控制器 osg::ref_ptr<osgEarth::Util::EarthManipulator> manipulator = new osgEarth::Util::EarthManipulator(); // 创建一个天空节点 osg::ref_ptr<osgEarth::Util::SkyNode> skyNode = new osgEarth::Util::SkyNode(); skyNode->attach(mapNode.get()); skyNode->setDateTime(DateTime(2019, 7, 1, 12, 0, 0)); // 设置相机 osg::ref_ptr<osg::Camera> camera = new osg::Camera(); camera->setViewport(0, 0, 800, 600); camera->setClearColor(osg::Vec4(0.2, 0.2, 0.6, 1.0)); camera->setProjectionMatrixAsPerspective(30.0, 800.0 / 600.0, 1.0, 100000.0); camera->setViewMatrixAsLookAt(osg::Vec3d(0.0, 0.0, 1000000.0), osg::Vec3d(), osg::Vec3d(0.0, 1.0, 0.0)); // 创建一个场景图节点 osg::ref_ptr<osg::Group> root = new osg::Group(); root->addChild(mapNode.get()); root->addChild(skyNode.get()); root->addChild(manipulator.get()); root->addChild(camera.get()); // 添加图层控制器 osg::ref_ptr<osgEarth::Util::LayerManipulator> layerManipulator = new osgEarth::Util::LayerManipulator(mapNode.get()); layerManipulator->setTerrainEnabled(false); layerManipulator->setDynamic(true); root->addChild(layerManipulator.get()); // 运行场景 osgViewer::Viewer viewer; viewer.setSceneData(root.get()); viewer.run(); return 0; } ``` 这个示例代码中,我们使用 `ImageLayer` 类创建一个云层图层,并将其添加到地图中。然后创建一个地图节点、一个控制器、一个天空节点和一个相机,并将它们都添加到一个场景图节点中。最后添加一个图层控制器,用于控制图层的显示。运行程序后,你应该能够看到一个带有云层的地球。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值