顯示源代碼
                Primitive添加貼地多邊形
                 開發(fā)文檔
                            <!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>Primitive貼地多邊形</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: 200px;
                                height: 40px;
                                display: flex;
                                align-items: center;
                            }
                        </style>
                    </head>
                    <body>
                        <div id="app">
                            <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-satellite",
                                                infoBox: false,
                                                selectionIndicator: false,
                                                requestRenderMode: false,
                                                terrainId:"bigemap.dc-terrain",
                                            });
                                            //創(chuàng)建路網(wǎng)相關(guān)的地圖圖層
                                            let roadNet = new bmgl.ImageryLayer(
                                                new bmgl.BMImageryProvider({
                                                    mapId: "bigemap.dc-street",
                                                })
                                            );
                                            // 將圖層疊加到地球上
                                            viewer.imageryLayers.add(roadNet);
                                            this.loadPolygons();
                                        },
                                        //從kml數(shù)據(jù)中獲取到經(jīng)緯度
                                        loadPolygons() {
                                            //kml數(shù)據(jù)加載
                                            let promise = bmgl.KmlDataSource.load("/offline_data/fh.kml");
                                            promise.then((dataSource) => {
                                                let eneArr = dataSource.entities.values;
                                                let allPolygon = [];
                                                eneArr.forEach((v, i) => {
                                                    // console.log(`aaaa`,v,i);
                                                    if (v.polygon) {
                                                        // console.log("good",v,i);
                                                        let pos =
                                                            v.polygon.hierarchy.getValue()
                                                                .positions;
                                                        // console.log(pos,i);
                                                        let arr = [];
                                                        pos.forEach((v, i) => {
                                                            let pos =
                                                                bmgl.Cartographic.fromCartesian(
                                                                    v
                                                                );
                                                            let lng = bmgl.Math.toDegrees(
                                                                pos.longitude
                                                            );
                                                            let lat = bmgl.Math.toDegrees(
                                                                pos.latitude
                                                            );
                                                            arr.push([lng, lat]);
                                                        });
                                                        allPolygon.push(arr);
                                                    }
                                                });
                                                this.creatRiver(allPolygon);
                                            });
                                        },
                                        //創(chuàng)建貼地的多邊形
                                        creatRiver(arr) {
                                            let instances = [];
                                            arr.forEach((v, i) => {
                                                let polygon1 = new bmgl.PolygonGeometry({
                                                    polygonHierarchy: new bmgl.PolygonHierarchy(
                                                        bmgl.Cartesian3.fromDegreesArray(
                                                            v.flat()
                                                        )
                                                    ),
                                                    extrudedHeight: 0,
                                                    height: 0,
                                                    vertexFormat:
                                                        bmgl.EllipsoidSurfaceAppearance
                                                            .VERTEX_FORMAT,
                                                });
                
                                                let River1 = new bmgl.GroundPrimitive({
                                                    geometryInstances:
                                                        new bmgl.GeometryInstance({
                                                            geometry: polygon1,
                                                        }),
                                                    appearance:
                                                        new bmgl.EllipsoidSurfaceAppearance({
                                                            aboveGround: true,
                                                        }),
                                                    show: true,
                                                });
                                                //設(shè)置多邊形材質(zhì)
                                                let River1_Material = new bmgl.Material({
                                                    fabric: {
                                                        type: "Water",
                                                        uniforms: {
                                                            normalMap: "/offline_data/water.jpg",
                                                            frequency: 100.0,
                                                            animationSpeed: 0.01,
                                                            amplitude: 10.0,
                                                        },
                                                    },
                                                });
                                                let scene = viewer.scene;
                                                River1.appearance.material = River1_Material;
                                                scene.primitives.add(River1); //添加到場景
                                            });
                                            viewer.camera.setView({
                                                destination: bmgl.Cartesian3.fromDegrees(
                                                    112.39700317,
                                                    37.6209621,
                                                    10000
                                                ),
                                            });
                                        },
                                    },
                                    beforeDestroy() {
                                        viewer.destroy();
                                        viewer = null;
                                    },
                                });
                            };
                        </script>
                    </body>
                </html>
                        
                主站蜘蛛池模板: 800av在线播放| 久久亚洲AV无码精品色午夜麻| 美女张开双腿让男生捅| 国产精品哟哟视频| 一级毛片**免费看试看20分钟| 本道久久综合无码中文字幕| 伊大人香蕉久久网| 色片在线免费观看| 国产精品久久久精品三级| 一本岛一区在线观看不卡| 日韩电影免费在线| 亚洲男人的天堂网站| 老司机免费在线| 国产成人精品无码片区在线观看| 9久久这里只有精品国产| 把女人弄爽大黄a大片片| 亚洲AV无码一区二区一二区| 波多野结衣系列电影在线观看| 国产69精品久久久久999三级| 人人澡人人澡人人看添欧美| 在线观看网站污| 中国明星16xxxxhd| 日韩制服丝袜电影| 亚洲日本一区二区三区在线不卡| 经典三级完整版电影在线观看| 国产成人免费高清在线观看| 67194在线午夜亚洲| 女人张腿给男人桶视频免费版| 中文字幕视频网站| 最新黄色网址在线观看| 亚洲激情综合网| 精品哟哟哟国产在线不卡| 国产做无码视频在线观看浪潮| 色多多成视频人在线观看| 大肉大捧一进一出好爽视频动漫| 中文字幕精品无码一区二区三区 | 久久久噜噜噜久久中文字幕色伊伊| 99在线小视频| 无人视频免费观看免费视频| 亚洲AV无码成人黄网站在线观看| 波多野结衣在线观看中文字幕 |