1. 程式人生 > 其它 >Cesium 遙感衛星影像推送效果繪製

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),
                    width: 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),
                    width: 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,如有侵權,請聯絡刪除。