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

顯示源代碼
添加管線
 開發文檔
            <!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://bigemap.com:9000/bigemap-gl.js/v1.1.0/bigemap-gl.js'></script>

</head>
<style>
    * {
        margin: 0;
        padding: 0;
    }

    #container {
        position: absolute;
        top: 0;
        bottom: 0;
        width: 100%;
    }

    button {
        position: absolute;
        top: 20px;
        left: 20px;
    }
</style>

<body>
<div id="container"></div>
<div id="loadingOverlay">
    <h1>Loading...</h1>
</div>
<button onclick="drawstart()"><span class="btnval">開始繪制</span></button>
</body>
<script>
    bmgl.Config.HTTP_URL = 'http://bigemap.com:9000';
    var viewer = new bmgl.Viewer('container', {
        requestRenderMode: false,
        mapId: 'bigemap.zhongkexingtu',
        infoBox:false,
        selectionIndicator:false,
    });
    viewer.scene.globe.depthTestAgainstTerrain = false;

    function computeCircle(radius) {
        var positions = [];
        for (var i = 0; i < 360; i+=30) {
            var radians = bmgl.Math.toRadians(i);
            positions.push(
                new bmgl.Cartesian2(
                    radius * Math.cos(radians),
                    radius * Math.sin(radians)
                )
            );
        }
        return positions;
    }

    function computeStar(arms, rOuter, rInner) {
        var angle = Math.PI / arms;
        var length = 2 * arms;
        var positions = new Array(length);
        for (var i = 0; i < length; i++) {
            var r = i % 2 === 0 ? rOuter : rInner;
            positions[i] = new bmgl.Cartesian2(
                Math.cos(i * angle) * r,
                Math.sin(i * angle) * r
            );
        }
        return positions;
    }
    var redTube = viewer.entities.add({
        polylineVolume: {
            positions: bmgl.Cartesian3.fromDegreesArray([
                -85.0,
                32.0,
                -85.0,
                36.0,
                -89.0,
                36.0,
            ]),
            shape: computeCircle(60000.0),
            material: bmgl.Color.RED,
        },
    });

    var greenBox = viewer.entities.add({
        polylineVolume: {
            positions: bmgl.Cartesian3.fromDegreesArrayHeights([
                -90.0,
                32.0,
                0.0,
                -90.0,
                36.0,
                100000.0,
                -94.0,
                36.0,
                0.0,
            ]),
            shape: [
                new bmgl.Cartesian2(-50000, -50000),
                new bmgl.Cartesian2(50000, -50000),
                new bmgl.Cartesian2(50000, 50000),
                new bmgl.Cartesian2(-50000, 50000),
            ],
            cornerType: bmgl.CornerType.BEVELED,
            material: bmgl.Color.GREEN.withAlpha(0.5),
            outline: true,
            outlineColor: bmgl.Color.BLACK,
        },
    });

    var blueStar = viewer.entities.add({
        polylineVolume: {
            positions: bmgl.Cartesian3.fromDegreesArrayHeights([
                -95.0,
                32.0,
                0.0,
                -95.0,
                36.0,
                100000.0,
                -99.0,
                36.0,
                200000.0,
            ]),
            shape: computeStar(7, 70000, 50000),
            cornerType: bmgl.CornerType.MITERED,
            material: bmgl.Color.BLUE,
        },
    });
    viewer.zoomTo(viewer.entities);
    var scene = viewer.scene;
    var handler = new bmgl.ScreenSpaceEventHandler(scene.canvas);
    var ellipsoid = scene.globe.ellipsoid; //得到當前三維場景的橢球體
    let firstclick = 1;
    let nowtube
    let tmpNowtube;
    let path = [];
    let tmpP=[];
    let drawstate = false
    handler.setInputAction(function (movement) {
        cartesian = viewer.camera.pickEllipsoid(movement.position, ellipsoid);//movement.endPosition
        if (cartesian&&drawstate) {
            //將笛卡爾坐標轉換為地理坐標
            var cartographic = bmgl.Cartographic.fromCartesian(cartesian);
            longitudeString = bmgl.Math.toDegrees(cartographic.longitude);
            latitudeString = bmgl.Math.toDegrees(cartographic.latitude);
            if (!nowtube){
                nowtube = viewer.entities.add({
                    polylineVolume: {
                        positions:new bmgl.CallbackProperty(function (){
                            return bmgl.Cartesian3.fromDegreesArray(path);
                        },false),
                        shape: computeCircle(10000),
                        material: bmgl.Color.RED,
                    },
                });
            }
            if (!tmpNowtube){
                viewer.entities.add({
                    polylineVolume: {
                        positions:new bmgl.CallbackProperty(function (){
                            return tmpP[0]? bmgl.Cartesian3.fromDegreesArray(tmpP):[];
                        },false),
                        shape: computeCircle(10000),
                        material: bmgl.Color.BLUE.withAlpha(0.7),
                    },
                });
            }
            path.push(longitudeString);
            path.push(latitudeString);
            tmpP[0]=longitudeString;
            tmpP[1]=latitudeString;
        }
    }, bmgl.ScreenSpaceEventType.LEFT_UP);

    handler.setInputAction(function (movement) {
        //通過指定的橢球或者地圖對應的坐標系,將鼠標的二維坐標轉換為對應橢球體三維坐標
        cartesian = viewer.camera.pickEllipsoid(movement.endPosition, ellipsoid);
        if (cartesian&&drawstate) {
            //將笛卡爾坐標轉換為地理坐標
            var cartographic = ellipsoid.cartesianToCartographic(cartesian);
            //將弧度轉為度的十進制度表示
            tmpP[2] = bmgl.Math.toDegrees(cartographic.longitude);
            tmpP[3] = bmgl.Math.toDegrees(cartographic.latitude);
        }
    }, bmgl.ScreenSpaceEventType.MOUSE_MOVE);

    function drawstart() {
        if (drawstate) {
            let btn = document.querySelector('.btnval')
            btn.innerHTML = "開始繪制";
            path.length>=4&&(nowtube.polylineVolume.positions=nowtube.polylineVolume.positions.getValue());
            path.length=0;
            tmpP.length=0;
        } else {
            let btn = document.querySelector('.btnval')
            btn.innerHTML = "結束繪制";
            if (nowtube){
                nowtube.polylineVolume.positions=new bmgl.CallbackProperty(function (){
                    return bmgl.Cartesian3.fromDegreesArray(path);
                },false);
            }
        }
        drawstate = !drawstate;
    }
</script>
</html>                                                                                                                    
主站蜘蛛池模板: 天堂影院电影在线看 | 成年人免费大片 | 日韩三级在线免费观看 | 欧美日韩网 | 日b小视频 | 国产一区二区成人 | 欧美日韩综合一区二区三区 | 色综合天天综合网国产成人网 | 又爽又黄axxx片免费观看 | 色秀av | 99国产免费 | 久久精品aaaaaa羞羞羞 | 亚洲色图第一页 | 毛片s | 99久久综合国产精品二区国产 | 国产a视频 | 中国一级片免费看 | 国产精品影院在线观看 | 成人精品在线观看 | 国产精品亚洲第一 | 日韩精品视频中文字幕 | 成人免费视频在线观看 | 久久99国产精品久久99 | 亚洲天堂网址 | 日韩欧美一中文字暮专区 | 欧美日韩三片 | 手机国产乱子伦精品视频 | 四虎中文 | 欧美国产在线一区 | 一区二区网| 婷婷五月色综合 | 全部孕妇丰满孕妇孕交 | 久草久草久草久草 | aaaa免费视频| 先锋影音资源2中文字幕 | 亚洲天堂久久 | 国产精品推荐 | 国产中文字幕一区二区三区 | 婷婷激情六月 | 欧美一区二区三区四区视频 | 91精品国产综合久久久密臀九色 |