国产久_亚欧精品一区_久久亚洲美女_99精品在线观看_日韩成人三级_久久精品久久久久

顯示源代碼
移動的車輛
 開發文檔
            <!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>
    <script src='./templates/bmgl-header.js'></script>

</head>
<style>
    * {
        margin: 0;
        padding: 0;
    }

    #container {
        position: absolute;
        top: 0;
        bottom: 0;
        width: 100%;
    }

    #toolbar {
        position: absolute;
        background: rgba(212, 212, 212, 0.8);
        padding: 4px;
        border-radius: 4px;
    }

    #toolbar input {
        vertical-align: middle;
        padding-top: 2px;
        padding-bottom: 2px;
    }

    #toolbar .header {
        font-weight: bold;
    }
</style>

<body>
    <div id="container"></div>
    <div id="loadingOverlay">
        <h1>Loading...</h1>
    </div>
    <div id="toolbar">
        <table>
            <tbody>
                <tr>
                    <td>煙霧速率</td>
                    <td>
                        <input type="range" min="0.0" max="100.0" step="1"
                            data-bind="value: emissionRate, valueUpdate: 'input'">
                        <input type="text" size="5" data-bind="value: emissionRate">
                    </td>
                </tr>

                <tr>
                    <td>煙霧尺寸大小</td>
                    <td>
                        <input type="range" min="2" max="60.0" step="1"
                            data-bind="value: particleSize, valueUpdate: 'input'">
                        <input type="text" size="5" data-bind="value: particleSize">
                    </td>
                </tr>

                <tr>
                    <td>最小存在時間</td>
                    <td>
                        <input type="range" min="0.1" max="30.0" step="1"
                            data-bind="value: minimumParticleLife, valueUpdate: 'input'">
                        <input type="text" size="5" data-bind="value: minimumParticleLife">
                    </td>
                </tr>

                <tr>
                    <td>最大存在時間</td>
                    <td>
                        <input type="range" min="0.1" max="30.0" step="1"
                            data-bind="value: maximumParticleLife, valueUpdate: 'input'">
                        <input type="text" size="5" data-bind="value: maximumParticleLife">
                    </td>
                </tr>

                <tr>
                    <td>最小速率</td>
                    <td>
                        <input type="range" min="0.0" max="30.0" step="1"
                            data-bind="value: minimumSpeed, valueUpdate: 'input'">
                        <input type="text" size="5" data-bind="value: minimumSpeed">
                    </td>
                </tr>

                <tr>
                    <td>最大速率</td>
                    <td>
                        <input type="range" min="0.0" max="30.0" step="1"
                            data-bind="value: maximumSpeed, valueUpdate: 'input'">
                        <input type="text" size="5" data-bind="value: maximumSpeed">
                    </td>
                </tr>

                <tr>
                    <td>開始的大小</td>
                    <td>
                        <input type="range" min="0.0" max="10.0" step="1"
                            data-bind="value: startScale, valueUpdate: 'input'">
                        <input type="text" size="5" data-bind="value: startScale">
                    </td>
                </tr>

                <tr>
                    <td>結束時的大小</td>
                    <td>
                        <input type="range" min="0.0" max="10.0" step="1"
                            data-bind="value: endScale, valueUpdate: 'input'">
                        <input type="text" size="5" data-bind="value: endScale">
                    </td>
                </tr>

                <tr>
                    <td>重力</td>
                    <td>
                        <input type="range" min="-20.0" max="20.0" step="1"
                            data-bind="value: gravity, valueUpdate: 'input'">
                        <input type="text" size="5" data-bind="value: gravity">
                    </td>
                </tr>
            </tbody>
        </table>
    </div>

</body>
<script>

    bmgl.Config.HTTP_URL = 'http://ua.bigemap.com:30081/bmsdk/';
    var viewer = new bmgl.Viewer('container', {
        timeline: true,
        fullscreenButton: true,
        mapId: 'bigemap.dc-tian-w-satellite',
    });
    bmgl.Math.setRandomNumberSeed(3);
    //添加時間控件
    //Set bounds of our simulation time
    var start = bmgl.JulianDate.fromDate(new Date(2015, 2, 25, 16));
    var stop = bmgl.JulianDate.addSeconds(
        start,
        120,
        new bmgl.JulianDate()
    );
    //Make sure viewer is at the desired time.
    viewer.clock.startTime = start.clone();
    viewer.clock.stopTime = stop.clone();
    viewer.clock.currentTime = start.clone();
    viewer.clock.clockRange = bmgl.ClockRange.LOOP_STOP; //Loop at the end
    viewer.clock.multiplier = 1;
    viewer.clock.shouldAnimate = true;

    //Set timeline to simulation bounds
    viewer.timeline.zoomTo(start, stop);

    //綁定數據  
    var viewModel = {
        emissionRate: 5.0,
        gravity: 0.0,
        minimumParticleLife: 1.2,
        maximumParticleLife: 1.2,
        minimumSpeed: 1.0,
        maximumSpeed: 4.0,
        startScale: 1.0,
        endScale: 5.0,
        particleSize: 25.0,
    };

    bmgl.knockout.track(viewModel);
    var toolbar = document.getElementById("toolbar");
    bmgl.knockout.applyBindings(viewModel, toolbar);

    var entityPosition = new bmgl.Cartesian3();
    var entityOrientation = new bmgl.Quaternion();
    var rotationMatrix = new bmgl.Matrix3();
    var modelMatrix = new bmgl.Matrix4();

    function computeModelMatrix(entity, time) {
        return entity.computeModelMatrix(time, new bmgl.Matrix4());
    }

    var emitterModelMatrix = new bmgl.Matrix4();
    var translation = new bmgl.Cartesian3();
    var rotation = new bmgl.Quaternion();
    var hpr = new bmgl.HeadingPitchRoll();
    var trs = new bmgl.TranslationRotationScale();

    function computeEmitterModelMatrix() {
        hpr = bmgl.HeadingPitchRoll.fromDegrees(0.0, 0.0, 0.0, hpr);
        trs.translation = bmgl.Cartesian3.fromElements(
            -4.0,
            0.0,
            1.4,
            translation
        );
        trs.rotation = bmgl.Quaternion.fromHeadingPitchRoll(hpr, rotation);

        return bmgl.Matrix4.fromTranslationRotationScale(
            trs,
            emitterModelMatrix
        );
    }

    var pos1 = bmgl.Cartesian3.fromDegrees(
        -75.15787310614596,
        39.97862668312678
    );
    var pos2 = bmgl.Cartesian3.fromDegrees(
        -75.1633691390455,
        39.95355089912078
    );
    var position = new bmgl.SampledPositionProperty();

    position.addSample(start, pos1);
    position.addSample(stop, pos2);

    var entity = viewer.entities.add({
        availability: new bmgl.TimeIntervalCollection([
            new bmgl.TimeInterval({
                start: start,
                stop: stop,
            }),
        ]),
        model: {
            uri: "/templates/glb/bmglMilkTruck.glb",
            minimumPixelSize: 64,
        },
        viewFrom: new bmgl.Cartesian3(-100.0, 0.0, 100.0),
        position: position,
        orientation: new bmgl.VelocityOrientationProperty(position),
    });
    viewer.trackedEntity = entity;

    var scene = viewer.scene;
    var particleSystem = scene.primitives.add(
        new bmgl.ParticleSystem({
            image: "/templates/img/smoke.png",

            startColor: bmgl.Color.LIGHTSEAGREEN.withAlpha(0.7),
            endColor: bmgl.Color.WHITE.withAlpha(0.0),

            startScale: viewModel.startScale,
            endScale: viewModel.endScale,

            minimumParticleLife: viewModel.minimumParticleLife,
            maximumParticleLife: viewModel.maximumParticleLife,

            minimumSpeed: viewModel.minimumSpeed,
            maximumSpeed: viewModel.maximumSpeed,

            imageSize: new bmgl.Cartesian2(
                viewModel.particleSize,
                viewModel.particleSize
            ),

            emissionRate: viewModel.emissionRate,

            bursts: [
                // these burst will occasionally sync to create a multicolored effect
                new bmgl.ParticleBurst({
                    time: 5.0,
                    minimum: 10,
                    maximum: 100,
                }),
                new bmgl.ParticleBurst({
                    time: 10.0,
                    minimum: 50,
                    maximum: 100,
                }),
                new bmgl.ParticleBurst({
                    time: 15.0,
                    minimum: 200,
                    maximum: 300,
                }),
            ],

            lifetime: 16.0,

            emitter: new bmgl.CircleEmitter(2.0),

            emitterModelMatrix: computeEmitterModelMatrix(),

            updateCallback: applyGravity,
        })
    );

    var gravityScratch = new bmgl.Cartesian3();

    function applyGravity(p, dt) {
        // We need to compute a local up vector for each particle in geocentric space.
        var position = p.position;

        bmgl.Cartesian3.normalize(position, gravityScratch);
        bmgl.Cartesian3.multiplyByScalar(
            gravityScratch,
            viewModel.gravity * dt,
            gravityScratch
        );

        p.velocity = bmgl.Cartesian3.add(
            p.velocity,
            gravityScratch,
            p.velocity
        );
    }

    viewer.scene.preUpdate.addEventListener(function (scene, time) {
        particleSystem.modelMatrix = computeModelMatrix(entity, time);

        // Account for any changes to the emitter model matrix.
        particleSystem.emitterModelMatrix = computeEmitterModelMatrix();

        // Spin the emitter if enabled.
        if (viewModel.spin) {
            viewModel.heading += 1.0;
            viewModel.pitch += 1.0;
            viewModel.roll += 1.0;
        }
    });

    bmgl.knockout
        .getObservable(viewModel, "emissionRate")
        .subscribe(function (newValue) {
            particleSystem.emissionRate = parseFloat(newValue);
        });

    bmgl.knockout
        .getObservable(viewModel, "particleSize")
        .subscribe(function (newValue) {
            var particleSize = parseFloat(newValue);
            particleSystem.minimumImageSize.x = particleSize;
            particleSystem.minimumImageSize.y = particleSize;
            particleSystem.maximumImageSize.x = particleSize;
            particleSystem.maximumImageSize.y = particleSize;
        });

    bmgl.knockout
        .getObservable(viewModel, "minimumParticleLife")
        .subscribe(function (newValue) {
            particleSystem.minimumParticleLife = parseFloat(newValue);
        });

    bmgl.knockout
        .getObservable(viewModel, "maximumParticleLife")
        .subscribe(function (newValue) {
            particleSystem.maximumParticleLife = parseFloat(newValue);
        });

    bmgl.knockout
        .getObservable(viewModel, "minimumSpeed")
        .subscribe(function (newValue) {
            particleSystem.minimumSpeed = parseFloat(newValue);
        });

    bmgl.knockout
        .getObservable(viewModel, "maximumSpeed")
        .subscribe(function (newValue) {
            particleSystem.maximumSpeed = parseFloat(newValue);
        });

    bmgl.knockout
        .getObservable(viewModel, "startScale")
        .subscribe(function (newValue) {
            particleSystem.startScale = parseFloat(newValue);
        });

    bmgl.knockout
        .getObservable(viewModel, "endScale")
        .subscribe(function (newValue) {
            particleSystem.endScale = parseFloat(newValue);
        });

    var options = [
        {
            text: "Circle Emitter",
            onselect: function () {
                particleSystem.emitter = new bmgl.CircleEmitter(2.0);
            },
        },
        {
            text: "Sphere Emitter",
            onselect: function () {
                particleSystem.emitter = new bmgl.SphereEmitter(2.5);
            },
        },
        {
            text: "Cone Emitter",
            onselect: function () {
                particleSystem.emitter = new bmgl.ConeEmitter(
                    bmgl.Math.toRadians(45.0)
                );
            },
        },
        {
            text: "Box Emitter",
            onselect: function () {
                particleSystem.emitter = new bmgl.BoxEmitter(
                    new bmgl.Cartesian3(10.0, 10.0, 10.0)
                );
            },
        },
    ];

    Sandcastle.addToolbarMenu(options);

</script>

</html>                                                                                                                                                                                                                                
国产久_亚欧精品一区_久久亚洲美女_99精品在线观看_日韩成人三级_久久精品久久久久
<code id="kseui"><acronym id="kseui"></acronym></code>
  • <abbr id="kseui"><tbody id="kseui"></tbody></abbr>
  • <button id="kseui"></button>
  • 国产日韩精品久久| 亚洲精品无人区| 最新国产拍偷乱拍精品| 亚洲日本欧美| 成人午夜电影在线播放| 日本高清不卡三区| 欧美日韩国产精品一卡| 亚洲欧美日韩国产综合精品二区 | 欧美日本不卡| 国产精品永久入口久久久| 久久青青草原一区二区| 免费久久99精品国产自| 激情婷婷久久| 九9re精品视频在线观看re6 | 97超碰人人模人人爽人人看| 国产九色91| 欧美精品一区在线| av日韩免费电影| 欧美成人蜜桃| 国产91色在线|亚洲| 亚洲精品影院| 亚洲影视在线| 五月天亚洲综合小说网| 午夜在线观看免费一区| 水蜜桃一区二区三区| 蜜桃久久av| 午夜日本精品| 精品国产日本| 亚洲一区尤物| 亚洲一区二区在线看| 久久性天堂网| 国产一区二区无遮挡| 好吊色欧美一区二区三区| 亚洲激情自拍| 亚洲自拍三区| 国严精品久久久久久亚洲影视 | 国产成人av一区二区三区| 欧美 日韩 国产在线| 国产精品久久久久av福利动漫| 亚洲特级毛片| 亚洲欧美久久久久一区二区三区| 99久久精品免费看国产一区二区三区| 欧美午夜不卡影院在线观看完整版免费| 国产一区二区自拍| 美女精品国产| 亚洲一区日本| 99在线观看免费视频精品观看| 午夜精品一区二区在线观看的| 国产乱码精品一区二区三区日韩精品 | 亚洲va韩国va欧美va精四季| 91入口在线观看| 亚洲少妇在线| 1000部精品久久久久久久久| 亚洲人成网站在线观看播放| 狼狼综合久久久久综合网| 99re在线国产| 久久精品五月婷婷| 久久aⅴ国产紧身牛仔裤| 亚洲精华国产欧美| 一区在线免费| 狠狠爱综合网| 国产综合第一页| 欧美午夜在线视频| 国产综合第一页| 亚洲区第一页| 亚洲国产综合在线看不卡| 韩日成人av| 精品动漫3d一区二区三区免费版| 国内精品一区二区| 一区在线免费| 亚洲免费精品| 亚洲一区综合| 国产精品成人一区二区三区| av一区二区三区四区电影| 成人区精品一区二区| 国产一区免费在线观看| 久久精品国产精品国产精品污 | 国产精品一区毛片| 欧美在线综合| 老司机久久99久久精品播放免费| 国产精品久久久一区二区| 国产精品一级| 91免费在线观看网站| 国产伦精品一区二区三区四区免费 | 99久久免费国| 精品无码久久久久国产| 蜜桃导航-精品导航| 日本一区视频在线| 欧美啪啪一区| 99在线精品视频在线观看| 亚洲中字在线| 黑人巨大精品欧美一区二区小视频 | 久久资源亚洲| 一区二区三区四区免费视频| 国色天香一区二区| 久久三级视频| 欧美日韩最好看的视频| 一区二区三区四区国产| 亚洲理论在线| 精品视频一区在线| 欧美理论在线| 91超碰rencao97精品| 美日韩精品免费| 欧美日韩在线不卡一区| 久久精品卡一| 亚洲欧洲精品一区二区三区波多野1战4 | 久久久久久国产精品免费免费| 五月婷婷综合色| 99精品视频免费| 久久艹中文字幕| 国语精品一区| 精品伦精品一区二区三区视频| 婷婷四月色综合| 国产精品推荐精品| 日产中文字幕在线精品一区| 亚洲成人中文| 欧美精品久久| 国产伦精品一区二区三区视频黑人| 久久精品99| 国产一区二区三区成人欧美日韩在线观看| 91原创国产| 国产精品v亚洲精品v日韩精品 | 亚洲看片网站| 91手机在线播放| 亚洲图片欧洲图片日韩av| 久久精品一二三区| 亚洲黄色毛片| 亚洲高清在线观看一区| av一区观看| 在线视频日韩| 在线视频一区观看| 国产在线精品日韩| 在线亚洲自拍| 欧美ab在线视频| 麻豆成人av| 国产激情美女久久久久久吹潮| 黄色亚洲大片免费在线观看| 日韩精品久久久| 国产免费一区二区| 香蕉久久久久久久av网站| 欧美日韩影院| 一区二区三区四区五区精品| 蜜桃av色综合| 国内精品国语自产拍在线观看| 亚洲欧美日本视频在线观看| 欧美日本中文| 亚洲在线观看一区| 日本一区免费在线观看| 国产偷久久久精品专区| 久久精品123| 亚洲综合日韩| 亚洲欧美国产精品桃花| 亚洲片区在线| 在线精品一区二区| 国产精品高清一区二区三区| 制服丝袜综合日韩欧美| 日本成人黄色免费看| 国外成人免费视频| 国产精品免费在线播放| http;//www.99re视频| 免费在线亚洲欧美| 久久精品网址| 亚洲欧美网站| 97视频资源在线观看| 久久精品99| 国产欧美激情| 久久九九电影| 91久久精品国产91久久性色tv| 久久xxxx精品视频| www日韩av| 精品一区二区国产| 日韩不卡av| 一本一道久久久a久久久精品91 | 狠狠色噜噜狠狠狠狠色吗综合| 一区二区三区av| 午夜精品亚洲| 亚洲国产精品日韩| 午夜亚洲影视| 国产美女精品在线观看| 久久综合伊人77777麻豆| 欧美国产综合视频| 一级二级三级欧美| 欧美色一级片| 在线亚洲美日韩| 鬼打鬼之黄金道士1992林正英| 国产精品99久久久久久久| a级国产乱理论片在线观看99| 国产日韩精品推荐| 日韩av电影免费在线观看| 伊人久久大香线蕉精品| 精久久久久久| 久久亚洲视频| 欧美激情导航| 欧美特黄a级高清免费大片a级| 亚洲日本欧美在线| 国产高清一区二区三区| 日韩视频在线播放| 亚洲第一黄色| 国精产品99永久一区一区| 欧美一区二区三区久久精品|