顯示源代碼
                相機平移
                 開發文檔
                                                                <!DOCTYPE html>
                <html>
                
                <head>
                    <meta charset='UTF-8' />
                    <meta name='viewport' content='initial-scale=1,maximum-scale=1,user-scalable=no' />
                    <link  rel='stylesheet' />
                    <script src='http://ua.bigemap.com:30081/bmsdk/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%;
                        }
                
                        .bmgl-widget-credits {
                            display: none
                        }
                    </style>
                    <title>Google Map Streets</title>
                </head>
                
                <body>
                    <div id='container'></div>
                
                    <script>
                        bmgl.Config.HTTP_URL = 'http://ua.bigemap.com:30081/bmsdk/';
                        var viewer = new bmgl.Viewer('container', { mapId: 'bigemap.dc-satellite' });
                
                
                        var scene = viewer.scene;
                        var canvas = viewer.canvas;
                        canvas.setAttribute("tabindex", "0"); // needed to put focus on the canvas
                        canvas.onclick = function () {
                            canvas.focus();
                        };
                        var ellipsoid = scene.globe.ellipsoid;
                
                        //關閉地球默認選擇 平移 事件    
                        scene.screenSpaceCameraController.enableRotate = false;
                        scene.screenSpaceCameraController.enableTranslate = false;
                        scene.screenSpaceCameraController.enableZoom = false;
                        scene.screenSpaceCameraController.enableTilt = false;
                        scene.screenSpaceCameraController.enableLook = false;
                        // 創建變量記錄當前鼠標位置,然后標記并跟隨Camera移動軌跡:
                        var startMousePosition;
                        var mousePosition;
                        var flags = {
                            looking: false,
                            moveForward: false,
                            moveBackward: false,
                            moveUp: false,
                            moveDown: false,
                            moveLeft: false,
                            moveRight: false,
                        };
                
                        // 添加一個事件控制用戶設置標記,當鼠標左鍵被點擊的時候,用于記錄當前鼠標的位置:
                        var handler = new bmgl.ScreenSpaceEventHandler(canvas);
                
                        //設置點擊事件
                        handler.setInputAction(function (movement) {
                            flags.looking = true;
                            mousePosition = startMousePosition = bmgl.Cartesian3.clone(
                                movement.position
                            );
                        }, bmgl.ScreenSpaceEventType.LEFT_DOWN);
                
                        handler.setInputAction(function (movement) {
                            mousePosition = movement.endPosition;
                        }, bmgl.ScreenSpaceEventType.MOUSE_MOVE);
                
                        handler.setInputAction(function (position) {
                            flags.looking = false;
                        }, bmgl.ScreenSpaceEventType.LEFT_UP);
                
                        // 創建鍵盤事件控制用戶切換Camera移動標記。我們為下列按鍵和行為設置了標記:
                
                        //     w Camera向前。
                        //     s Camera向后。
                        //     a Camera向左。
                        //     d Camera向右。
                        //     q Camera向上。
                        // e Camera向下。
                        function getFlagForKeyCode(keyCode) {
                            switch (keyCode) {
                                case "W".charCodeAt(0):
                                    return "moveForward";
                                case "S".charCodeAt(0):
                                    return "moveBackward";
                                case "Q".charCodeAt(0):
                                    return "moveUp";
                                case "E".charCodeAt(0):
                                    return "moveDown";
                                case "D".charCodeAt(0):
                                    return "moveRight";
                                case "A".charCodeAt(0):
                                    return "moveLeft";
                                default:
                                    return undefined;
                            }
                        }
                
                        document.addEventListener(
                            "keydown",
                            function (e) {
                                var flagName = getFlagForKeyCode(e.keyCode);
                                if (typeof flagName !== "undefined") {
                                    flags[flagName] = true;
                                }
                            },
                            false
                        );
                
                        document.addEventListener(
                            "keyup",
                            function (e) {
                                var flagName = getFlagForKeyCode(e.keyCode);
                                if (typeof flagName !== "undefined") {
                                    flags[flagName] = false;
                                }
                            },
                            false
                        );
                        // 現在當標記表明事件發生為true是,我們更新(update)camera。我們新增 ** onTick的監聽事件在clock中:
                
                        viewer.clock.onTick.addEventListener(function (clock) {
                            var camera = viewer.camera;
                
                            // 接下來,我們讓Camera指向鼠標指向的方向。在變量聲明之后添加下列代碼到事件監聽函數
                            if (flags.looking) {
                                var width = canvas.clientWidth;
                                var height = canvas.clientHeight;
                
                                // Coordinate (0.0, 0.0) will be where the mouse was clicked.
                                var x = (mousePosition.x - startMousePosition.x) / width;
                                var y = -(mousePosition.y - startMousePosition.y) / height;
                
                                var lookFactor = 0.05;
                                camera.lookRight(x * lookFactor);
                                camera.lookUp(y * lookFactor);
                            }
                
                            //moveForward、moveBackward、moveUp、moveDown、moveLeft和moveRight方法只需要一個距離參數(米)
                            // 用于移動Camera的距離。當每一個按鍵被按下時,
                            // Camera就會在球體表面移動固定的距離。Camera離地面越近,移動的速度就越慢。
                            var cameraHeight = ellipsoid.cartesianToCartographic(camera.position)
                                .height;
                            var moveRate = cameraHeight / 100.0;
                
                            if (flags.moveForward) {
                                camera.moveForward(moveRate);
                            }
                            if (flags.moveBackward) {
                                camera.moveBackward(moveRate);
                            }
                            if (flags.moveUp) {
                                camera.moveUp(moveRate);
                            }
                            if (flags.moveDown) {
                                camera.moveDown(moveRate);
                            }
                            if (flags.moveLeft) {
                                camera.moveLeft(moveRate);
                            }
                            if (flags.moveRight) {
                                camera.moveRight(moveRate);
                            }
                        });
                
                    </script>
                </body>
                
                </html>                                                                                
                主站蜘蛛池模板: 老司机69精品成免费视频| www.夜夜操| 欧美精品束缚一区二区三区| 国产一级在线播放| 香蕉久久成人网| 女人扒下裤让男人桶到爽| 久久伊人精品一区二区三区| 欧美日韩电影网| 免费精品一区二区三区在线观看 | 娇妻第一次被多p| 久热这里只精品99国产6_99| 泳衣男漫画臀篇佳门サエコcc| 四虎影视永久免费观看| 成人羞羞视频网站| 国产美女视频一区| 一区二区三区四区在线观看视频| 日韩中文字幕视频在线| 亚洲日韩在线中文字幕综合 | 绿巨人app黄| 国产性生交xxxxx免费| 99精品国产高清一区二区| 成年女人毛片免费视频| 久久综合久久鬼色| 欧美成人免费网站| 人人狠狠综合久久亚洲| 综合亚洲欧美日韩一区二区| 国产在线无码制服丝袜无码| 1000部拍拍拍18勿入免费视频下载| 夫妇交换性3中文字幕| 中文字幕不卡在线高清| 日本道v高清免费| 亚洲av永久无码精品古装片| 污网站在线观看视频| 公和我在厨房好爽中文字幕| 色噜噜狠狠色综合成人网| 国产成人无码免费看片软件| 337p啪啪人体大胆| 在线观看国产91| 一个色综合导航| 成年视频在线播放| 久久国产乱子伦免费精品|