亚洲动漫在线观看-亚洲动漫第一页-亚洲丁香婷婷-亚洲丶国产丶欧美一区二区三区-亚洲第一综合网站-亚洲第一永久色

顯示源代碼
粒子 汽車運行
 開發文檔
            <!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-color: white;
        opacity: .8;
    }
</style>

<body>
    <div id="container" class="fullSize">
        <div id="slider"></div>
    </div>
    <div id="loadingOverlay">
        <h1>Loading...</h1>
    </div>
    <div id="toolbar"></div>

</body>
<script>

    bmgl.Config.HTTP_URL = 'http://ua.bigemap.com:30081/bmsdk/';
    var viewer = new bmgl.Viewer("container", {
        shouldAnimate: true,
        mapId: 'bigemap.dc-satellite',
    });

    var statusDisplay = document.createElement("div");
    var fuelDisplay = document.createElement("div");
    var czmlPath = "/offline_data/";
    var vehicleEntity;

    // Add a blank CzmlDataSource to hold our multi-part entity/entities.
    var dataSource = new bmgl.CzmlDataSource();
    viewer.dataSources.add(dataSource);

    // This demo shows how a single path can be broken up into several CZML streams.
    var partsToLoad = [
        {
            url: "MultipartVehicle_part1.czml",
            range: [0, 4000],
            requested: false,
            loaded: false,
        }
    ];

    function updateStatusDisplay() {
        var msg = "";
        partsToLoad.forEach(function (part) {
            msg += part.url + " - ";
            if (part.loaded) {
                msg += "Loaded.<br/>";
            } else if (part.requested) {
                msg += "Loading now...<br/>";
            } else {
                msg += "Not needed yet.<br/>";
            }
        });
        statusDisplay.innerHTML = msg;
    }

    // Helper function to mark a part as requested, and process it into the dataSource.
    function processPart(part) {
        part.requested = true;
        updateStatusDisplay();
        dataSource.process(czmlPath + part.url).then(function () {
            part.loaded = true;
            updateStatusDisplay();

            // Follow the vehicle with the camera.
            if (!viewer.trackedEntity) {
                viewer.trackedEntity = vehicleEntity = dataSource.entities.getById(
                    "Vehicle"
                );
            }
        });
    }

    // Load the first part up front.
    processPart(partsToLoad[0]);

    // Load a new section before the clock naturally gets there.
    // Note this can't predict when a user may fast-forward to it.
    var preloadTimeInSeconds = 100;

    viewer.clock.onTick.addEventListener(function (clock) {
        // This example uses time offsets from the start to identify which parts need loading.
        var timeOffset = bmgl.JulianDate.secondsDifference(
            clock.currentTime,
            clock.startTime
        );

        // Filter the list of parts to just the ones that need loading right now.
        // Then, process each part that needs loading.
        partsToLoad
            .filter(function (part) {
                return (
                    !part.requested &&
                    timeOffset >= part.range[0] - preloadTimeInSeconds &&
                    timeOffset <= part.range[1]
                );
            })
            .forEach(function (part) {
                processPart(part);
            });

        if (vehicleEntity) {
            var fuel = vehicleEntity.properties.fuel_remaining.getValue(
                clock.currentTime
            );
            if (bmgl.defined(fuel)) {
                fuelDisplay.textContent = "Fuel: " + fuel.toFixed(2) + " gal";
            }
        }
    });

    // Add a reset button, for convenience.
    Sandcastle.addToolbarButton("Reset demo", function () {
        // Put things back to the starting position.
        viewer.clock.currentTime = viewer.clock.startTime;
        viewer.clock.shouldAnimate = true;

        partsToLoad.forEach(function (part) {
            part.requested = false;
            part.loaded = false;
        });

        dataSource.entities.removeAll();
        processPart(partsToLoad[0]);
    });

    // Show the status display below the reset button.
    statusDisplay.style.background = "rgba(42, 42, 42, 0.7)";
    statusDisplay.style.padding = "5px 10px";
    document.getElementById("toolbar").appendChild(statusDisplay);

    // Show a multi-part custom property being read from CZML.
    fuelDisplay.style.background = "rgba(42, 42, 42, 0.7)";
    fuelDisplay.style.padding = "5px 10px";
    fuelDisplay.style.marginTop = "5px";
    document.getElementById("toolbar").appendChild(fuelDisplay); 
</script>

</html>                                                                                                                                                                                            
主站蜘蛛池模板: 肉肉小说在线阅读 | 青青青青在线视频 | 亚洲2023无矿砖码砖区 | 无限在线看免费视频大全 | 日韩欧美国产一区二区三区 | 欧美va免费精品高清在线 | 四虎在线视频免费观看视频 | 歪歪漫画a漫入口 | 久久这里只精品国产99re66 | 白丝出水 | 精品一区二区三区波多野结衣 | 国产日本欧美亚洲精品视 | 91精品国产品国语在线不卡 | 婷婷伊人综合亚洲综合网 | 色啊色 | 日本一片免费观看高清完整 | 狠狠干快播 | 网友自拍偷拍 | 欧美性bbbbbxxxxxddd | 猥琐对着美女飞机喷到脸上 | 午夜理论电影在线观看亚洲 | 牛人国产偷窥女洗浴在线观看 | 天天乐影院 | 免费一级欧美片在线观看 | 99在线视频免费 | 美女跪式抽搐gif动态图 | 日本精品久久久久中文字幕 1 | 日韩欧美亚洲一区精选 | 国产精品久久国产精品99 | 亚洲羞羞视频 | 欧美做受| 成人在线观看视频免费 | 美女靠逼免费视频 | 午夜亚洲精品久久久久久 | 香蕉免费一区二区三区 | 俄罗斯美女毛茸茸bbwbbw | 紧身裙女教师miad711在线 | 楚乔传第二部免费观看全集完整版 | 视频精品一区二区三区 | 色亚 | 韩国三级在线观看 完整版 韩国三级视频网站 |