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

顯示源代碼
模擬飛行-外部視角
 開發文檔
            <!DOCTYPE html>
<html>
<head>
    <meta charset='UTF-8'/>
    <meta name='viewport' content='initial-scale=1,maximum-scale=1,user-scalable=no'/>
    <link href='http://www.bjxdny.cn:9000/bigemap-gl.js/v1.1.0/Widgets/widgets.css' rel='stylesheet'/>
    <script src='http://www.bjxdny.cn:9000/bigemap-gl.js/v1.1.0/bigemap-gl.js'></script>
    <style>
        body {
            margin: 0;
            padding: 0;
        }
        #container {
            position: absolute;
            top: 0;
            bottom: 0;
            width: 100%;
        }
        .info{
            position: fixed;
            top:0;
            color: #8a6d3b;
            z-index: 99;
            padding:14px;
            margin: 0;
            background-color: #fcf8e3;
            border-color: #faebcc;
            left: 0;
            right: 0;
            text-align: center;
        }
    </style>
    <title>模擬飛行</title>
</head>
<body>
<div class="info">
    使用方向鍵控制飛行 “←” 向左飛行,“→”:向右飛行,“↑” 升高,“↓” 下降,若控制失效,請單擊本處獲得焦點
</div>
<div id='container'></div>
<script>
    bmgl.Config.HTTP_URL = 'http://www.bjxdny.cn:9000';
    var viewer = new bmgl.Viewer('container', {
        terrainId: 'bigemap.9af15d8e',
        requestRenderMode:false,
        mapId: 'bigemap.dc-satellite',
        shouldAnimate:true,
    });
    viewer.scene.globe.depthTestAgainstTerrain=true;
      viewer.screenSpaceEventHandler.removeInputAction(bmgl.ScreenSpaceEventType.LEFT_CLICK);
      
    var canvas = viewer.canvas;
    canvas.setAttribute("tabindex", "0"); 
    canvas.addEventListener("click", function () {
        canvas.focus();
    });
    canvas.focus();
    var config = {
        init: {
            lat: 30.950543,
            lng: 103.0004609201,
            height: 4000,
        },
        requireHeight:true,
        angle:{
            delta: 0.5,
            left:0,
            down:0,
            r:0,
            p:0,
        },
        position: {},
        delta: 0.00003,
    };
    config.position = Object.assign({}, config.init);
    viewer.scene.camera.setView({
        destination: bmgl.Cartesian3.fromDegrees(config.init.lng, config.init.lat, config.init.height),
        endTransform: bmgl.Matrix4.IDENTITY,
    });
    var plane = viewer.entities.add({
        position: bmgl.Cartesian3.fromDegrees(config.init.lng, config.init.lat, config.init.height),
        orientation: bmgl.Transforms.headingPitchRollQuaternion(bmgl.Cartesian3.fromDegrees(config.position.lng, config.position.lat, config.position.height), new bmgl.HeadingPitchRoll(config.angle.left-90, 0, 0)),
        model: {
            maximumScale: 2000,
            minimumPixelSize: 300,
            uri: '/templates/glb/bmgl_Air.glb',
        }
    });

    function getHeight(){
        config.requireHeight=false;
        var promise=bmgl.sampleTerrainMostDetailed(viewer.terrainProvider,[bmgl.Cartographic.fromDegrees(config.position.lng,config.position.lat)]);
        bmgl.when(promise,(data)=>{
            if (data&&data[0]&&data[0]['height']&&data[0]['height']>0&&config.position.height<data['0']['height']+100){
                if (!config.position.oldHeight) config.position.oldHeight=config.position.height;
                config.position.height=data['0']['height']+100;
            }
            config.requireHeight=true;
        }).otherwise(()=>{
            config.requireHeight=true;
        });
    }
  

    viewer.trackedEntity = plane;
    viewer.clock.onTick.addEventListener(function (e) {
        getHeight();
        config.position.lat += Math.cos(bmgl.Math.toRadians(config.angle.left))*config.delta;
        config.position.lng += Math.sin(bmgl.Math.toRadians(config.angle.left))*config.delta;
        if (config.angle.p&&!config.keydown){
            config.angle.p>0?config.angle.p-=config.angle.delta:config.angle.p+=config.angle.delta;
        }
        if (config.angle.r&&!config.keydown){
            config.angle.r>0?config.angle.r-=config.angle.delta:config.angle.r+=config.angle.delta;
        }
        plane.position = bmgl.Cartesian3.fromDegrees(config.position.lng, config.position.lat, config.position.height);
        plane.orientation=bmgl.Transforms.headingPitchRollQuaternion(bmgl.Cartesian3.fromDegrees(config.position.lng, config.position.lat, config.position.height), new bmgl.HeadingPitchRoll.fromDegrees(config.angle.left-90, config.angle.p,config.angle.r));
    });

    document.addEventListener('keydown', function (e) {
        config.keydown=true;
        switch (e.keyCode) {
            case 37://左
                config.angle.left-=1;
                if (config.angle.r>-30)  config.angle.r-=config.angle.delta;
                break;
            case 38://向上
                config.position.height+=10;
                if (config.angle.p<30)  config.angle.p+=config.angle.delta;
                break;
            case 39://向右
                if (config.angle.r<30)  config.angle.r+=config.angle.delta;
                config.angle.left+=1;
                break;
            case 40://向下
                config.position.height-=10;
                if (config.angle.p>-30)  config.angle.p-=config.angle.delta;
                if (config.position.height<10) config.position.height=10;
                break;
        }
    });
    document.addEventListener('keyup',()=>{
        config.keydown=false;
    });
</script>
</body>
</html>
                                                                                                                                                                                                                                                                                                                                                                                                                    
主站蜘蛛池模板: 四虎影视地址 | 99精品国产自在现线观看 | 亚洲久草在线 | 日本伦理动漫在线观看 | 韩国漂亮美女三级在线观看 | 国产真实一区二区三区 | 欧美牛逼aa | 欧美一区a | 五月婷婷在线播放 | 欧美高清videosdesex0 | 亚洲欧美成人综合在线 | 欧美精品一区二区三区久久 | 天海翼最新作品 | 欧美日韩一级视频 | 日日摸日日碰夜夜爽97纠 | 精品国产一区二区三区国产馆 | 亚洲阿v天堂在线2017 | 美女脱一净二净不带胸罩 | 91porn在线观看国产 | 亚洲天堂网2018 | 91精品婷婷国产综合久久8 | 亚洲高清中文字幕一区二区三区 | tk白嫩玉足脚心vk | 嫩草在线视频www免费观看 | 亚洲精品一二三四区 | 亚洲国产成人资源在线桃色 | 国产午夜精品久久理论片 | 毛片亚洲毛片亚洲毛片 | 欧美高清国产 | 男人的天堂视频在线 | 成人1234 | 亚洲午夜大片 | 精品视频一区在线观看 | 日韩欧一级毛片在线播无遮挡 | 国产成人啪精品午夜在线播放 | 亚洲国产精品久久丫 | 国产成人综合网亚洲欧美在线 | 香蕉久久久久 | 波多野结衣xxxx性精品 | 万域之王动漫在线观看全集免费播放 | 午夜精品久久久久久久2023 |