顯示源代碼
                探測效果
                 開發(fā)文檔
                            <!DOCTYPE html>
                <html lang="en">
                
                <head>
                    <meta charset="UTF-8">
                    <meta name="viewport" content="width=device-width, initial-scale=1.0">
                    <title>探測效果</title>
                    <link  rel='stylesheet' />
                    <script src='http://ua.bigemap.com:30081/bmsdk/bigemap-gl.js/v1.1.0/bigemap-gl.js'></script>
                </head>
                <style>
                    body {
                        margin: 0;
                        padding: 0;
                    }
                
                    #container {
                        position: absolute;
                        top: 0;
                        bottom: 0;
                        width: 100%;
                    }
                </style>
                
                <body>
                    <div id="container"></div>
                    <canvas id="canvas-a" width="400px" height="400px"></canvas>
                    <canvas id="canvas-b" width="400px" height="400px"></canvas>
                    <canvas id="canvas-c" width="400px" height="400px"></canvas>
                
                </body>
                <script>
                    bmgl.Config.HTTP_URL = 'http://ua.bigemap.com:30081/bmsdk/';
                    var viewer = new bmgl.Viewer('container', { mapId: 'bigemap.dc-satellite' });
                    viewer.scene.debugShowFramesPerSecond = true;
                    //必須開啟 不然模型會移位
                    viewer.scene.globe.depthTestAgainstTerrain = true;
                    //通過3個畫布交替切換實現(xiàn)探測紋理動態(tài)
                    var changenum = 0;
                    var curCanvas = 'a';
                
                    function readyCanvas(convasid, radius) {
                        var canvas = document.getElementById(convasid);
                        let cwidth = 400;
                        let cheight = 400;
                        var ctx = canvas.getContext("2d");
                        ctx.clearRect(0, 0, cwidth, cheight);
                        ctx.fillStyle = 'rgba(255, 255, 255, 0)';
                        ctx.fillRect(0, 0, cwidth, cheight);
                
                        for (let ii = 0; radius <= 200; ii++) {
                            ctx.lineWidth = 5;
                            //開始一個新的繪制路徑
                            ctx.beginPath();
                            //設(shè)置弧線的顏色
                            var trans = 1.0 - (radius / 255);
                            ctx.strokeStyle = "rgba(255, 0, 255, " + trans + ")";
                            var circle = {
                                x: 200, //圓心的x軸坐標(biāo)值
                                y: 200, //圓心的y軸坐標(biāo)值
                                r: radius //圓的半徑
                            };
                            //以canvas中的坐標(biāo)點(200,200)為圓心,繪制一個半徑為50px的圓形
                            ctx.arc(circle.x, circle.y, circle.r, 0, Math.PI * 2, true);
                            //按照指定的路徑繪制弧線
                            ctx.stroke();
                            radius += 20;
                
                        }
                
                    }
                    readyCanvas("canvas-a", 5);
                    readyCanvas("canvas-b", 10);
                    readyCanvas("canvas-c", 15);
                
                    //繪制canvas圖片
                    function drawCanvasImage(time, result) {
                        changenum++;
                        var canvas = document.getElementById("canvas-" + curCanvas);
                        if (changenum >= 20) {
                            changenum = 0;
                            if (curCanvas === 'a')
                                curCanvas = 'b';
                            else if (curCanvas === 'b')
                                curCanvas = 'c';
                            else
                                curCanvas = 'a';
                
                        }
                        return canvas;
                
                    }
                    //初始位置
                    var lon = -118.760842;
                    var lat = 38.132073;
                    let cyheight = 1200;
                    var planePosition = bmgl.Cartesian3.fromDegrees(lon, lat, cyheight)
                    //改變圓錐體位置,循環(huán)畫矩形
                    function changePosition() {
                        if (lon > -118.755842 && lat < 38.138073) {
                            lat += 0.00001;
                
                        } else if (lat > 38.138073 && lon > -118.760842) {
                            lon -= 0.00001;
                
                        } else if (lon <= -118.760842 && lat > 38.132074) {
                            lat -= 0.00001
                
                        } else {
                            lon += 0.00001;
                
                        }
                
                        planePosition = bmgl.Cartesian3.fromDegrees(lon, lat, cyheight)
                        return planePosition
                
                    }
                    //根據(jù)圓錐中心點位置動態(tài)計算朝向、圓錐體長度
                    var geoD = new bmgl.EllipsoidGeodesic();
                    //頂點經(jīng)緯度
                    var startPt = bmgl.Cartographic.fromDegrees(-118.760842, 38.132073, 0);
                
                    function changeOrientation() {
                        //計算經(jīng)度方向的夾角
                        var endX = bmgl.Cartographic.fromDegrees(lon, 38.132073, 0);
                        geoD.setEndPoints(startPt, endX);
                        var innerS = geoD.surfaceDistance;
                        var angleX = Math.atan(innerS / halfLen);
                
                        //計算圓錐體長度
                        var end = bmgl.Cartographic.fromDegrees(lon, lat, 0);
                        geoD.setEndPoints(startPt, end);
                        innerS = geoD.surfaceDistance;
                        length = Math.sqrt(innerS * innerS + halfLen * halfLen);
                
                        //計算緯度方向的夾角
                        var endY = bmgl.Cartographic.fromDegrees(-118.760842, lat, 0);
                        geoD.setEndPoints(startPt, endY);
                        innerS = geoD.surfaceDistance;
                        var angleY = Math.asin(innerS / length);
                
                        //計算朝向
                        var hpr = new bmgl.HeadingPitchRoll(0.0, angleX, angleY);
                        var orientation = bmgl.Transforms.headingPitchRollQuaternion(planePosition, hpr);
                
                        return orientation
                
                    }
                    var halfLen = 1000.0
                    var length = 1000.0;
                
                    function changeLength() {
                        return 2 * length;
                
                    }
                    //創(chuàng)建圓錐實體
                    var cylinder = viewer.entities.add({
                        name: 'Red cone',
                        position: new bmgl.CallbackProperty(changePosition, false),
                        orientation: new bmgl.CallbackProperty(changeOrientation, false),
                        cylinder: {
                            length: new bmgl.CallbackProperty(changeLength, false),
                            topRadius: 0.0,
                            bottomRadius: 300.0,
                            //topSurface: false,    //新增參數(shù),控制頂部是否渲染
                            bottomSurface: false,    //新增參數(shù),控制底部是否渲染
                            material: new bmgl.ImageMaterialProperty({
                                image: new bmgl.CallbackProperty(drawCanvasImage, false),
                                transparent: true
                
                            })
                        }
                    });
                
                    //定位到圓錐體
                    var initialPosition = bmgl.Cartesian3.fromDegrees(-118.760842, 38.089073, 8000); //相機視角三要素:朝向(左右偏移),傾斜(上下偏移),翻滾角度(相機視錐體中軸線旋轉(zhuǎn)角度)
                    var initialOrientation = new bmgl.HeadingPitchRoll.fromDegrees(1.27879878293835, -51.34390550872461, 0.0716951918898415);
                    viewer.scene.camera.setView({
                        destination: initialPosition,
                        orientation: initialOrientation,
                        endTransform: bmgl.Matrix4.IDENTITY
                    });
                </script>
                
                </html>                                            
                主站蜘蛛池模板: 美女被男人扒开腿猛视频| h无遮挡男女激烈动态图| 波多野结衣与上司出差| 国产一区二区影院| 乱码卡一卡二卡新区在线| 884hutv四虎永久7777| 成人动漫3d在线观看| 乱中年女人伦av一区二区| 深爱婷婷激情网| 和主人玩露出调教暴露羞耻| 国产久视频观看| 国产高清中文字幕| 一二三四区产品乱码芒果免费版| 日本视频www色| 亚洲午夜爱爱香蕉片| 狂野欧美激情性xxxx| 嘿嘿嘿视频免费网站在线观看| 国产亚洲sss在线播放| 在线中文字幕网站| 一级艳片加勒比女海盗1| 日韩av无码一区二区三区| 亚洲国产韩国一区二区| 男人女人做a视频| 国产123区在线视频观看| 黄色软件视频大全免费下载| 国产精自产拍久久久久久| www.成人在线| 成年人在线免费播放| 久久精品国产99精品国产2021 | 中文字幕国产剧情| 日韩精品一卡2卡3卡4卡三卡 | 亚洲一级理论片| 污污动漫在线看| 公车校花小柔h| 老师我好爽再深一点的视频| 国产大屁股喷水视频在线观看| 香蕉视频在线观看黄| 国自产拍亚洲免费视频| nanana最新在线视频免费观看网| 成人精品视频99在线观看免费| 久久精品99国产精品日本|