zoukankan      html  css  js  c++  java
  • Cesium 遥感卫星影像推送效果绘制

    //添加卫星
            function addSatellite() {
                satellite.curRouteLine \= viewer.entities.add({
                    name: "satelliteline",
                    polyline: {
                        positions: new Cesium.CallbackProperty(function (time, result) {
                            return satellite.curRoutePositions;
                        }, false),
                        material: new Cesium.ColorMaterialProperty(Cesium.Color.YELLOW),
                         3,
                    },
                });
    
                satellite.entity \= viewer.entities.add({
                    position: Cesium.Cartesian3.fromDegrees(\-75.59777, 40.03883),
                    billboard: {
                        image: "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAADJSURBVDhPnZHRDcMgEEMZjVEYpaNklIzSEfLfD4qNnXAJSFWfhO7w2Zc0Tf9QG2rXrEzSUeZLOGm47WoH95x3Hl3jEgilvDgsOQUTqsNl68ezEwn1vae6lceSEEYvvWNT/Rxc4CXQNGadho1NXoJ+9iaqc2xi2xbt23PJCDIB6TQjOC6Bho/sDy3fBQT8PrVhibU7yBFcEPaRxOoseTwbwByCOYf9VGp1BYI1BA+EeHhmfzKbBoJEQwn1yzUZtyspIQUha85MpkNIXB7GizqDEECsAAAAASUVORK5CYII=",
                    },
                    label: {
                        text: 'Landsat8'
                    },
                    polyline: {
                        positions: new Cesium.CallbackProperty(function (time, result) {
                            //return satellite.entity.position.concat(satellite.curNadir);
                            return (satellite.curNadir && satellite.entity) ? \[satellite.entity.position.\_value, satellite.curNadir\] : \[\]
                        }, false),
                        material: new Cesium.ColorMaterialProperty(Cesium.Color.BLUE),
                         1
                    }
                });
                var redCone = viewer.entities.add({//红色圆锥体
                    name: 'Red cone',
                    position: new Cesium.CallbackProperty(function (time, result) {
                        if (satellite.entity) {
                            let p \= cesiumCoordUtil.cartesian3ToDegree2(satellite.entity.position.\_value);
                            return Cesium.Cartesian3.fromDegrees(p.lon, p.lat, p.height / 6 \* 5);
                        } else {
                            return Cesium.Cartesian3.fromDegrees(0, 0, 0);
                        }
    
                    }, false),
                    cylinder: {
                        length: new Cesium.CallbackProperty(function (time, result) {
                            return (satellite.entity ? cesiumCoordUtil.cartesian3ToDegree2(satellite.entity.position.\_value).height : 0) / 3;
                        }, false),
                        topRadius: 0.0,
                        bottomRadius: new Cesium.CallbackProperty(function (time, result) {
                            return (satellite.entity ? cesiumCoordUtil.cartesian3ToDegree2(satellite.entity.position.\_value).height : 0) / 6;
                        }, false),
                        material: Cesium.Color.RED
                    }
                });
            }
    
    //动态推送图像
            function addByTime() {
                clear1();
                Cesium.Resource.fetchJson({
                    url: './datas/testfilenew.json'
                }).then(function (jsonData) {
                    if (!jsonData) {
                        return;
                    }
                    let level0 \= jsonData.level3;
                    for (let index = 0; index < level0.length; index++) {
                        const tileData \= level0\[index\];
                        let bbox \= tileData.bbox;
    
                        let imagePath \= tileData.imagePath;
                        let id \= tileData.id;
                        console.log(id);
                        console.log(imagePath);
                        let xnum \= id.split('\_')\[0\];
                        let ynum \= id.split('\_')\[1\];
                        imagePath \= './datas' + imagePath.replace('./', '/');
                        // start(bbox, imagePath);
                        (function (index) {
                            setTimeout(function () {
                                console.log(index, "interval");
                                //addImage(bbox, './datas/aaa.jpg');
                                addImage(bbox, imagePath);
                                let curSillitePos \= Cesium.Cartesian3.fromArray(satellite.routeLine\[index\]);
                                satellite.curRoutePositions.push(curSillitePos);
                                satellite.entity.position \= curSillitePos;
                                satellite.curNadir \= Cesium.Cartesian3.fromDegrees(satellite.nadirs\[index\]\[0\], satellite.nadirs\[index\]\[1\], 0.0);
    
                            }, index \* 300);
                        })(index);
                    }
                }).otherwise(function (error) {
    
                });
    
                addSatellite();
            }
    

    本文转自 https://www.cnblogs.com/dog2016/p/14044005.html,如有侵权,请联系删除。

  • 相关阅读:
    svn服务器
    TCopyDataStruct 各个参数意义
    Com+连不上解决办法
    流的压缩与解压缩
    Config 文件的增删改查
    Assembly 操作
    redhat7 安装oracle11.2.4页面显示不全解决方法
    IEnumerator和IEnumerable详解
    [我的阿里云服务器] —— 安装LAMP
    设计模式之二抽象工厂设计模式
  • 原文地址:https://www.cnblogs.com/hustshu/p/15614312.html
Copyright © 2011-2022 走看看