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

顯示源代碼
地圖二三維切換
 開發文檔
            <!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="UTF-8" />
        <meta name="viewport" content="width=device-width, initial-scale=1.0" />
        <script src="http://bigemap.com/offline_data/newjunbiao/vue.js"></script>
        <link
            href="http://ua.bigemap.com:30081/bmsdk/bigemap-gl.js/v1.1.0/Widgets/widgets.css"
            rel="stylesheet"
        />
        <script src="http://ua.bigemap.com:30081/bmsdk/bigemap-gl.js/v1.1.0/bigemap-gl.js"></script>
        <!-- elementui -->
        <script src="http://bigemap.com/offline_data/newjunbiao/elementui.js"></script>
        <link
            rel="stylesheet"
            href="http://bigemap.com/offline_data/newjunbiao/elementui.css"
        />
        <title>地圖二三維切換</title>
        <style>
            * {
                margin: 0;
                padding: 0;
            }
            html,
            body {
                width: 100%;
                height: 100%;
            }
            #app {
                width: 100%;
                height: 100%;
            }
            #baseMap {
                width: 100%;
                height: 100%;
            }
            .tools {
                position: absolute;
                z-index: 9;
                top: 40px;
                right: 60px;
                width: 420px;
                height: 40px;
                display: flex;
                align-items: center;
            }
        </style>
    </head>
    <body>
        <div id="app">
            <div class="tools">
                <el-button type="danger" size="small" @click="switchTo2d"
                    >切換為二維視角效果</el-button
                >
                <el-button
                    type="warning"
                    size="small"
                    @click="switchToColumbusView"
                    >切換為哥倫布視角效果</el-button
                >
                <el-button type="primary" size="small" @click="switchTo3d"
                    >切換為三維視角效果</el-button
                >
            </div>
            <div id="baseMap"></div>
        </div>
        <script>
            window.viewer = null;
            window.onload = () => {
                new Vue({
                    el: "#app",
                    data() {
                        return {};
                    },
                    mounted() {
                        this.initMap();
                    },
                    methods: {
                        //初始化地圖
                        initMap() {
                            bmgl.Config.HTTP_URL =
                                "http://ua.bigemap.com:30081/bmsdk/";
                            viewer = new bmgl.Viewer("baseMap", {
                                mapId: "bigemap.dc-tian-w-satellite",
                                infoBox: false,
                                selectionIndicator: false,
                                requestRenderMode: false,
                            });
                        },
                        //切換為2d
                        switchTo2d() {
                            // console.log("2ddd");
                            if (viewer.scene.mode == 2) return;
                            let view = {};
                            //獲取轉換為2d模式前,當前鏡頭的經緯度位置
                            let p = bmgl.Cartographic.fromCartesian(
                                viewer.camera.position
                            );
                            view.destination = {
                                lng: bmgl.Math.toDegrees(p.longitude),
                                lat: bmgl.Math.toDegrees(p.latitude),
                                height: p.height,
                            };
                            view.orientation = {
                                heading: viewer.camera.heading,
                                roll: viewer.camera.roll,
                                pitch: viewer.camera.pitch,
                            };
                            //將3d模式切換為2d
                            // viewer.scene.morphTo2D(0);
                            viewer.scene.morphTo2D(0, (e) => {
                                console.log("Finish 2d");
                                viewer.camera.setView({
                                    destination: bmgl.Cartesian3.fromDegrees(
                                        view.destination.lng,
                                        view.destination.lat,
                                        view.destination.height
                                    ),
                                    orientation: {
                                        heading: 0,
                                        pitch: bmgl.Math.toRadians(-90),
                                        roll: 0,
                                    },
                                });
                            });
                        },
                        //切換為3d
                        switchTo3d() {
                            // console.log("3ddd");
                            if (viewer.scene.mode == 3) return;
                            let result = this.getPos();
                            viewer.scene.morphTo3D(0, (e) => {
                                viewer.camera.setView({
                                    destination: result.destination,
                                    orientation: result.orientation,
                                });
                            });
                        },
                        //切換為2.5d哥倫布視角
                        switchToColumbusView() {
                            if (viewer.scene.mode == 2.5) return;
                            let result = this.getPos();
                            viewer.scene.morphToColumbusView(0, (e) => {
                                viewer.camera.setView({
                                    destination: result.destination,
                                    orientation: result.orientation,
                                });
                            });
                        },

                        getPos() {
                            let params = {};
                            let ellipsoid = viewer.scene.globe.ellipsoid;
                            let camera = viewer.scene.camera;
                            let extend = viewer.camera.computeViewRectangle();
                            if (typeof extend === "undefined") {
                                //2D下會可能拾取不到坐標,extend返回undefined,所以做以下轉換
                                let canvas = viewer.scene.canvas;
                                let upperLeft = new bmgl.Cartesian2(0, 0); //canvas左上角坐標轉2d坐標
                                let lowerRight = new bmgl.Cartesian2(
                                    canvas.clientWidth,
                                    canvas.clientHeight
                                ); //canvas右下角坐標轉2d坐標

                                let ellipsoid = viewer.scene.globe.ellipsoid;
                                let upperLeft3 = viewer.camera.pickEllipsoid(
                                    upperLeft,
                                    ellipsoid
                                ); //2D轉3D世界坐標

                                let lowerRight3 = viewer.camera.pickEllipsoid(
                                    lowerRight,
                                    ellipsoid
                                ); //2D轉3D世界坐標

                                let upperLeftCartographic =
                                    viewer.scene.globe.ellipsoid.cartesianToCartographic(
                                        upperLeft3
                                    ); //3D世界坐標轉弧度
                                let lowerRightCartographic =
                                    viewer.scene.globe.ellipsoid.cartesianToCartographic(
                                        lowerRight3
                                    ); //3D世界坐標轉弧度

                                let minx = bmgl.Math.toDegrees(
                                    upperLeftCartographic.longitude
                                ); //弧度轉經緯度
                                let maxx = bmgl.Math.toDegrees(
                                    lowerRightCartographic.longitude
                                ); //弧度轉經緯度

                                let miny = bmgl.Math.toDegrees(
                                    lowerRightCartographic.latitude
                                ); //弧度轉經緯度
                                let maxy = bmgl.Math.toDegrees(
                                    upperLeftCartographic.latitude
                                ); //弧度轉經緯度

                                params.minx = minx; // 最小經度
                                params.maxx = maxx; // 最大經度
                                params.miny = miny; // 最小緯度
                                params.maxy = maxy; // 最大緯度
                            } else {
                                //3D獲取方式
                                // 最大經度
                                params.maxx = bmgl.Math.toDegrees(extend.east); //弧度轉經緯度
                                // 最大緯度
                                params.maxy = bmgl.Math.toDegrees(extend.north); //弧度轉經緯度
                                // 最小經度
                                params.minx = bmgl.Math.toDegrees(extend.west); //弧度轉經緯度
                                // 最小緯度
                                params.miny = bmgl.Math.toDegrees(extend.south); //弧度轉經緯度
                            }
                            let height =
                                camera.frustum.right - camera.frustum.left;

                            return {
                                destination: bmgl.Cartesian3.fromDegrees(
                                    (params.minx + params.maxx) / 2,
                                    (params.miny + params.maxy) / 2,
                                    height
                                ),

                                orientation: {
                                    heading: 0,
                                    pitch: bmgl.Math.toRadians(-90),
                                    roll: 0,
                                },
                            };
                        },
                    },
                    beforeDestroy() {
                        viewer.destroy();
                        viewer = null;
                    },
                });
            };
        </script>
    </body>
</html>
        
国产久_亚欧精品一区_久久亚洲美女_99精品在线观看_日韩成人三级_久久精品久久久久
<code id="kseui"><acronym id="kseui"></acronym></code>
  • <abbr id="kseui"><tbody id="kseui"></tbody></abbr>
  • <button id="kseui"></button>
  • 久久高清国产| 久久资源亚洲| 亚洲日韩视频| 国产精品一区二区在线观看 | 国产伦精品一区二区三区在线| 久久国产毛片| 免费看成人片| 欧美日韩在线精品一区二区三区| 在线精品在线| 成人精品水蜜桃| 神马欧美一区二区| 99精品国产99久久久久久福利| 91pron在线| 欧洲一区二区日韩在线视频观看免费 | 国产一在线精品一区在线观看| 亚洲第一在线| 国产精品一 二 三| 一区一区视频| 久久美女性网| 亚洲国产日韩欧美| 国产精品日韩二区| 日韩av电影在线观看| 欧美午夜一区| 好看的日韩精品视频在线| 欧美日韩在线精品一区二区三区| 久久人人超碰| 欧美成人一区二免费视频软件| 亚洲最新在线| 奇米精品在线| 久久男女视频| 女同性一区二区三区人了人一 | 欧美一区二区三区成人久久片| 国内不卡一区二区三区| 97netav| 欧美日韩国产在线一区| 国产精品乱子乱xxxx| 激情欧美日韩| 欧美一区二区三区在线免费观看| 日韩天堂av| 日本免费高清一区二区| 久久久久久久久一区二区| 午夜亚洲福利| 欧美凹凸一区二区三区视频| 国产欧美一区二区三区另类精品| 日本成人三级电影网站| 久久久国产精品一区二区中文 | 亚洲综合国产| 欧美日韩蜜桃| 欧洲精品久久| 国产视频一区二区不卡| 一区二区精品| 狠狠色综合网| 亚洲国产日韩综合一区| 精品免费视频123区| 老司机精品导航| 亚洲啪啪91| 欧美黄色一级视频| 日韩欧美一区二区在线观看| 国产精品视频在线免费观看| 久久亚洲风情| 亚洲一区二区伦理| 亚洲精品麻豆| 好看的av在线不卡观看| 先锋在线资源一区二区三区| 九色综合日本| 国产精选一区二区| 国产精品一区二区免费| 91精品国产一区二区三区动漫| 国产精品免费一区二区三区在线观看| 国产尤物精品| 国产综合亚洲精品一区二| 欧美777四色影| 欧美aⅴ99久久黑人专区| 亚洲乱码一区二区三区| 亚洲一区二区三区精品在线观看| 日本一区免费看| 欧洲成人一区二区| 亚洲精品一区二区三区樱花| 日韩精品资源| 亚洲一区二区四区| 一区二区三区欧美成人| 欧美日韩在线一二三| 精品二区视频| 亚洲尤物影院| 成人欧美一区二区三区视频| 国产高清不卡av| 欧美连裤袜在线视频| 亚洲高清乱码| 欧美日韩一区二区国产| 日韩一区二区久久| 99久热re在线精品996热视频| 成人精品水蜜桃| 青娱乐一区二区| 欧美激情综合| 国产精品一区二区欧美| 国产精品国产三级欧美二区| 免费成人深夜夜行视频| 亚洲精品乱码久久久久久蜜桃91| 欧美一区二区三区四区夜夜大片| 亚洲第一毛片| 国产成人精品一区二区三区福利| 欧美一区二区三区精美影视| 亚洲精品国产精品国自产| 国产主播一区二区三区四区| 亚洲综合三区| 欧美日韩一区综合| 亚洲午夜一区| 99在线观看| 亚洲一区免费看| 国产精品久久777777毛茸茸| 国产综合 伊人色| 午夜日韩激情| 国产精品我不卡| 国产一区视频在线观看免费| 欧美日韩精品免费观看| 99国产视频| 亚洲欧洲精品在线观看| 日韩午夜免费| 久久一区二区精品| 黄色一区三区| 久99久视频| 国产精品免费一区二区三区在线观看| 精品日韩美女| 一本色道久久综合亚洲精品高清| 精品国产一区二区三区久久久久久| 国产精品黄色| 亚洲色图自拍| 日本精品二区| 久久久国产精品一区二区三区| 色姑娘综合网| caoporen国产精品| 亚洲二区三区四区| 日本在线视频不卡| 玖玖精品视频| 国产一区在线免费观看| 欧美日韩一区综合| 97夜夜澡人人双人人人喊| 一本色道久久综合亚洲二区三区| 蜜桃精品久久久久久久免费影院| 欧美黄污视频| 日韩精品久久久毛片一区二区| 午夜在线a亚洲v天堂网2018| 欧美一区视频| 久久riav二区三区| 久久国产精品亚洲77777| 欧美+亚洲+精品+三区| 免费看成人av| 国产免费一区| 玖玖精品视频| 久久久久久国产精品mv| 精品99视频| 欧美一区91| 亚洲精品美女久久7777777| 久久人人九九| 国产精品视频免费观看| 91香蕉视频在线下载| 国产日韩亚洲欧美精品| 精品1区2区3区4区| 欧美日韩国产一区精品一区| 夜夜爽99久久国产综合精品女不卡| 久久99精品久久久久久青青日本| 99se婷婷在线视频观看| 美女尤物久久精品| 久久影院亚洲| 999精品在线观看| 久久免费一区| av一区二区三区免费| 成人av中文| 久久久久久久有限公司| 国产精品视频一区二区三区经| 3d动漫啪啪精品一区二区免费| 国产精品外国| 91超碰在线电影| 99re6在线| 国产99午夜精品一区二区三区| 蜜桃av综合| 国产99在线免费| 精品欧美一区二区精品久久| 国产一区二区高清不卡| 国产丝袜不卡| 免费在线观看一区二区| 日韩av一级大片| 午夜日本精品| 一区二区三区四区五区视频| 国产日韩欧美一区二区| 久久久福利视频| 久久综合九色综合久99| 日韩在线第一区| 欧美另类综合| 中文国产一区| 97神马电影| 日本不卡在线观看| 欧美日韩国产综合视频在线| 一本色道久久综合亚洲二区三区| 欧美资源在线| 欧美人与物videos另类| 一本一生久久a久久精品综合蜜| 好吊色欧美一区二区三区四区| 国产一区二区高清不卡| 动漫美女被爆操久久久|