顯示源代碼
                飛行的熱氣球
                 開發文檔
                            <!DOCTYPE html>
                <html lang="en">
                
                <head>
                    <meta charset="UTF-8">
                    <meta name="viewport" content="width=device-width, initial-scale=1.0">
                    <title>Document</title>
                    <link  rel='stylesheet' />
                    <script src='http://ua.bigemap.com:30081/bmsdk/bigemap-gl.js/v1.1.0/bigemap-gl.js'></script>
                </head>
                <style>
                    * {
                        margin: 0;
                        padding: 0;
                    }
                
                    #container {
                        position: absolute;
                        top: 0;
                        bottom: 0;
                        width: 100%;
                    }
                </style>
                
                <body>
                    <div id="container"></div>
                    <div id="loadingOverlay">
                        <h1>Loading...</h1>
                    </div>
                </body>
                <script>
                
                    bmgl.Config.HTTP_URL = 'http://ua.bigemap.com:30081/bmsdk/';
                    var viewer = new bmgl.Viewer('container', {
                        terrainId: 'bigemap.dc-terrain',
                        mapId: 'bigemap.dc-satellite',
                        vrButton: true,
                    });
                
                    // Click the VR button in the bottom right of the screen to switch to VR mode.
                
                    viewer.scene.globe.enableLighting = true;
                    viewer.scene.globe.depthTestAgainstTerrain = true;
                
                    // Follow the path of a plane. See the interpolation Sandcastle example.
                    bmgl.Math.setRandomNumberSeed(3);
                
                    var start = bmgl.JulianDate.fromDate(new Date(2015, 2, 25, 16));
                    var stop = bmgl.JulianDate.addSeconds(
                        start,
                        360,
                        new bmgl.JulianDate()
                    );
                
                    viewer.clock.startTime = start.clone();
                    viewer.clock.stopTime = stop.clone();
                    viewer.clock.currentTime = start.clone();
                    viewer.clock.clockRange = bmgl.ClockRange.LOOP_STOP;
                    viewer.clock.multiplier = 1.0;
                    viewer.clock.shouldAnimate = true;
                
                    function computeCirclularFlight(lon, lat, radius) {
                        var property = new bmgl.SampledPositionProperty();
                        var startAngle = bmgl.Math.nextRandomNumber() * 360.0;
                        var endAngle = startAngle + 360.0;
                
                        var increment =
                            (bmgl.Math.nextRandomNumber() * 2.0 - 1.0) * 10.0 + 45.0;
                        for (var i = startAngle; i < endAngle; i += increment) {
                            var radians = bmgl.Math.toRadians(i);
                            var timeIncrement = i - startAngle;
                            var time = bmgl.JulianDate.addSeconds(
                                start,
                                timeIncrement,
                                new bmgl.JulianDate()
                            );
                            var position = bmgl.Cartesian3.fromDegrees(
                                lon + radius * 1.5 * Math.cos(radians),
                                lat + radius * Math.sin(radians),
                                bmgl.Math.nextRandomNumber() * 500 + 1800
                            );
                            property.addSample(time, position);
                        }
                        return property;
                    }
                
                    var longitude = 104.111;
                    var latitude = 31.1110;
                    var radius = 0.03;
                
                    var modelURI =
                        "/templates/glb/bmglBalloon.glb";
                    var entity = viewer.entities.add({
                        availability: new bmgl.TimeIntervalCollection([
                            new bmgl.TimeInterval({
                                start: start,
                                stop: stop,
                            }),
                        ]),
                        position: computeCirclularFlight(longitude, latitude, radius),
                        model: {
                            uri: modelURI,
                            minimumPixelSize: 64,
                        },
                    });
                
                    entity.position.setInterpolationOptions({
                        interpolationDegree: 2,
                        interpolationAlgorithm: bmgl.HermitePolynomialApproximation,
                    });
                
                    // Set initial camera position and orientation to be when in the model's reference frame.
                    var camera = viewer.camera;
                    camera.position = new bmgl.Cartesian3(0.25, 0.0, 0.0);
                    camera.direction = new bmgl.Cartesian3(1.0, 0.0, 0.0);
                    camera.up = new bmgl.Cartesian3(0.0, 0.0, 1.0);
                    camera.right = new bmgl.Cartesian3(0.0, -1.0, 0.0);
                
                    viewer.scene.postUpdate.addEventListener(function (scene, time) {
                        var position = entity.position.getValue(time);
                        if (!bmgl.defined(position)) {
                            return;
                        }
                
                        var transform;
                        if (!bmgl.defined(entity.orientation)) {
                            transform = bmgl.Transforms.eastNorthUpToFixedFrame(position);
                        } else {
                            var orientation = entity.orientation.getValue(time);
                            if (!bmgl.defined(orientation)) {
                                return;
                            }
                
                            transform = bmgl.Matrix4.fromRotationTranslation(
                                bmgl.Matrix3.fromQuaternion(orientation),
                                position
                            );
                        }
                
                        // Save camera state
                        var offset = bmgl.Cartesian3.clone(camera.position);
                        var direction = bmgl.Cartesian3.clone(camera.direction);
                        var up = bmgl.Cartesian3.clone(camera.up);
                
                        // Reset the camera state to the saved state so it appears fixed in the model's frame.
                        bmgl.Cartesian3.clone(offset, camera.position);
                        bmgl.Cartesian3.clone(direction, camera.direction);
                        bmgl.Cartesian3.clone(up, camera.up);
                        bmgl.Cartesian3.cross(direction, up, camera.right);
                    });
                    //設置相機位置 
                    viewer.camera.setView( {
                        destination  : bmgl.Cartesian3.fromDegrees( 104.153, 31.089, 30000 )
                    } );
                
                    // Add a few more balloons flying with the one the viewer is in.
                    var numBalloons = 12;
                    for (var i = 0; i < numBalloons; ++i) {
                        var balloonRadius =
                            (bmgl.Math.nextRandomNumber() * 2.0 - 1.0) * 0.01 + radius;
                        var balloon = viewer.entities.add({
                            availability: new bmgl.TimeIntervalCollection([
                                new bmgl.TimeInterval({
                                    start: start,
                                    stop: stop,
                                }),
                            ]),
                            position: computeCirclularFlight(
                                longitude,
                                latitude,
                                balloonRadius
                            ),
                            model: {
                                uri: modelURI,
                                minimumPixelSize: 64,
                            },
                        });
                
                        balloon.position.setInterpolationOptions({
                            interpolationDegree: 2,
                            interpolationAlgorithm: bmgl.HermitePolynomialApproximation,
                        });
                    }
                
                
                </script>
                
                </html>                                                                                                                                                                                                                                
                主站蜘蛛池模板: 欧美精品久久久久久久自慰| 中文天堂最新版www| 精品1州区2区3区4区产品乱码| 天天摸天天摸天天躁| 久久精品国产亚洲AV香蕉| 综合图区亚洲欧美另类小说| 夜夜夜夜猛噜噜噜噜噜试看| 亚洲午夜一区二区电影院| 精品亚洲麻豆1区2区3区| 国产精品高清一区二区三区| 中文字幕av高清片| 最近2019mv中文字幕免费看| 人与动人物欧美网站| 老师粗又长好猛好爽视频 | 另类视频区第一页| 欧美亚洲国产激情一区二区| 成人国产精品视频| 亚州av综合色区无码一区| 精品精品国产高清a级毛片| 国产手机在线视频| 一本大道香蕉高清视频视频| 欧美性受xxxx| 免费a级毛片在线观看| 国产鲁鲁视频在线播放| 岳双腿间已经湿成一片视频| 亚洲国产精品网| 老头一天弄了校花4次| 国产无遮挡又黄又爽在线视频| 99re在线精品视频| 日本亚洲国产一区二区三区| 人人添人人澡人人澡人人人人 | 亚洲日韩小电影在线观看| 蜜桃丶麻豆91制片厂| 在公交车上弄到高c了漫画| 久久影院秋霞理论| 欧美人和黑人牲交网站上线 | 欧美人与动牲交a欧美精品| 四虎成人精品一区二区免费网站| 99久久99这里只有免费费精品 | 日本精品视频在线播放| 亚洲综合欧美日韩|