BIGEMAP卫星地图_高清卫星地图_北斗高清地图_地图软件_矢量地图数据_专题地图

顯示源代碼
相機平移
 開發文檔
                                                <!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>                                                                                
主站蜘蛛池模板: 中国江苏国际经济技术合作集团有限公司-致力于做大做强国际工程、国内工程、国际贸易和城镇投资 中国建材信息总网-中国建材行业权威的信息资讯平台 | 济宁市泓世新型建材有限公司,山东ALC墙板,GRC轻质隔墙板,预制化粪池,复合墙板加工厂家 | 全网营销_网络推广外包_全网营销代运营公司-湖南微望互动 | 曙海培训-仿真培训Linux培训html5培单片机培训PCB培训python培训PLC培训C语言培训android培训物联网培训无线电培训欧姆龙培训工业机器人培训5G培训Hadoop培训CFD培训项目外包开发咨询 | 山东中煤建设工程有限公司| 太阳能路灯-高杆灯-景观灯-玉兰灯-中华灯-LED市电-庭院灯厂家-扬州汉威光电科技有限公司 | 太原仪诚实验室设备有限公司 | 无锡双海金属科技有限公司[官网] | 无锡防火门-防火窗-防火卷帘门-福臣门业科技有限公司 | 托辊|滚筒|聚氨酯托辊|缓冲托辊|尼龙托琨|衡水良龙输送机械有限公司 | 清河县隆鑫密封件有限公司,汽车用密封条,配电箱柜、集装箱密封胶条,建筑门窗、家具用密封条,无毒环保医用密封条,船舶、农机用密封条,异型产品 | 数控机床市场网-专业的数控机床网站 | 全玻璃视镜人孔-卡箍组件-常压单臂梁人孔-温州华强流体设备有限公司 | 精密机械加工_零件加工_机械零部件加工厂_高精密零件加工定制—深圳精密机械加工厂 | 免费会员管理系统,会员管理软件,会员卡积分系统—智络软件 | 温州合发模架科技有限公司 | 上海云屹国际快递-承接化工品_液体_粉末_化妆品_食品_锂电池等国际快递业务 | 山东啤酒箱塑料提手_注塑产品加工_手提绳厂家-淄博浩晨包装制品有限公司 | 牡丹江网络公司,牡丹江网站建设专家|网络推广|网络营销|黑龙江艺通网络技术开发有限公司 | 微机保护装置_发电机保护_变压器保护_逆功率保护_防孤岛保护装置_光伏发电_杭州继保电气集团有限公司 | 智齿科技-智齿客服 | 在线客服_呼叫中心_客户联络中心方案 | 铸造厂_铸造厂家_硅溶胶熔模铸造-盐城市春秋精密机械有限公司 | 郑州润滑油展-第16届中国润滑油、脂及汽车养护展览会-2025年5月27-28日-郑州国际会展中心 | 扭力扳手_扭力扳手检定仪_数显扭力扳手_扭力测试仪_测力计_推拉力计_拉力测试仪_测试台架-上海实干实业有限公司 | 欣宇航化工-湖北片碱-冰醋酸厂家联系方式-工业氨水价格-工业片碱厂家-武汉宇航化工 | 思沃普智能会议预约管理系统-视频会议管理-信息发布-访客管理-会议运维-会议支持-工位管理系统 | 威海华东数控股份有限公司 | 校园防欺凌|视频一键式报警器|防霸凌报警柱|停车场语音对讲|商铺联网报警|应急广播音柱|居家养老一键通|盾王可视联网运营中心 | 上海钧尚电器有限公司 - Faulhaber电机 AMETEK pittman电机 AMETEK ROTRON军用航空风机 Exlar电动缸 MAE电机 MCG电机 CP电动工具 马头工具 AMCI驱动器 直流电机 减速箱 直流伺服电机,无刷电机,直线电机 直流防爆电机 防爆电机 汽车助力转向电机 EPS电机 faulhaber motor faulhaber gearbox NANOTEC电机 ELWOOD电机 PHYTRON电机 EXLAR伺服电动缸 高力矩、高性能直流电机,音圈电机,风机,直流风机,航空风机 | 山东淄博海杰化工有限公司-淄博海杰化工_NP-10、OP-10、吐温80、司盘80、磺酸、油酸等乳化剂 | 金蝶软件_金蝶湖南公司_长沙金蝶软件_精斗云软件_财务软件_进销存软件_云ERP软件_金蝶软件销售电话 | 陕西|青海|兰州|新疆|西宁|净化工程|西安甘肃|PCR实验室|无尘车间|净化车间-西安环亚净化工程 | 湖南净声源环保科技有限公司是一家专业从事噪声治理和建筑声学设计生态环境综合治理服务的企业,专业从事株洲电梯隔音治理,湘潭中央空调降噪处理,衡阳邵阳冷却塔噪音治理,岳阳常德大型风机噪声隔音降噪,张家界空压机噪声治理,益阳配电房变压器噪声治理,专业郴州永州工厂企业车间噪声治理,怀化娄底专业机械设备减振降治理,武汉噪音治理隔音降噪公司,孝感噪音治理,立式球磨机的噪声控制,专业隔音降噪公司,、以及各类机械动力设备减振降噪噪声治理的公司,同时为客户提供咨询与解决方案 | 无锡大型数控龙门铣,喷涂加工,回火抛丸加工,精密不锈钢焊接机床身机床底座制造加工-无锡美高帝机械有限公司 | 漳州市鼎新拍卖有限公司 | 宁波科迈尔工程机械有限公司-履带,底盘 | 真空机器人维修_晶圆机械手保养_半导体机械臂维修_面板机器人保养_AMHS改造-广州市广科智能技术有限公司 | 消防栓保温罩,玻璃钢灭火器箱,玻璃钢消防沙箱-潍坊辰阳玻璃钢有限公司 | 慢直播摄像头厂家,监控直播摄像机厂家,景区慢直播设备,rtmp推流直播摄像头,实时摄像头监控直播-监控慢直播厂家:专注监控慢直播系统解决方案 | 轻型防化服|重型防化服|全封闭防化服|济南三安安全防护设备有限公司 | 直流电源|Chroma直流电源|可程控直流电源-卓定电子Chroma代理 |