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

顯示源代碼
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)相關的地圖圖層
                            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,
                                });
                                //設置多邊形材質(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>
        
主站蜘蛛池模板: 生活污水处理工程安装承包-江苏富瑞源环境工程有限公司 | 自动隔油提升设备,消防稳压一体设备,苏州不锈钢消防水箱,污水提升设备厂家,无负压变频供水设备厂家-苏州脉泉供水设备有限公司 | 污水处理控制系统设计_plc编程控制柜_电气成套设备生产厂家_合肥鸿昇自动化 | 山东货架厂家,重型货架,阁楼货架,钢平台,板材货架-山东智造仓储设备有限公司 | 商用厨具|商用厨房设备|商用电磁灶-鲁宝厨业官方网站 | 驾驶洗地机|手推洗地车|天津洗地机|扫地车|仓库工厂扫地机|工业吸尘器|扫雪机|耐洁思 | 压缩强度测定仪-纸管平压强度测定仪-电脑拉力仪-杭州纸邦自动化技术有限公司 | 模具配件加工厂|东莞模具配件加工|模具配件加工厂|精密塑胶模具配件|东莞市优迪精密模具制品有限公司 | 山东净化车间_净化工程_净化公司-山东海蓝净化装饰工程有限公司 山东金起起重机械有限公司[官网]-金桥银路悬臂吊,金起龙门吊,山东金起起重行吊,单梁起重机 | 义乌供需网-义乌外发加工来料加工,义乌采购信息供求对接平台(yiwugongxu.com) | 户外工程照明|洗墙灯厂家|聚翔(广东)照明科技有限公司 | 陕西筱润智能科技有限公司 干部人事智能档案柜 智能密集架 智能档案柜 部队选层文件智能柜 智能枪弹柜 财务智能档案柜 边防武警智能密集架 医院智能档案柜 部队选层文件智能柜智能枪弹柜 学校医院文件柜 企事业单位公检法智能文件柜 生产厂家-筱润智能科技有限公司 RFID射频智能密集架 全自动智能选层档案柜 智能密保柜 枪柜部队营房营具床桌椅办公家具 办公用品档案盒设备货架 全自动智能选层柜生产厂家-筱润智能科技有限公司 | 山东土工膜_复合土工膜_防水板生产厂家-山东德旭达土工材料有限公司 | 石墨热场|PECVD石墨舟|碳碳框|燃料电池双极板|半导体石墨|光纤用石墨模具|石墨电极加工|石墨制品|上海弘竣新能源材料有限公司 | 今日标准_走心机_数控走心机_车铣复合_厂家_深圳今日标准官方网站 | 上海源科生物技术有限公司| 吸音板_隔音板多少钱_降噪声学材料_环保阻燃防火_吸声装饰工程定制_厂家价格直供 - 佛山天阶声学材料厂 | 液压尾管悬挂器,机械式尾管悬挂器价格,石油套管扶正器厂家,连续油管悬挂器,高压双塞水泥头,免钻塞注水泥分级箍,单塞套管水泥头价格,弹性套管扶正器,铸铝钢性扶正器,钢性套管扶正器厂家 | 泊头市天一泵业有限公司_齿轮泵,高粘度齿轮泵,螺杆泵,三螺杆泵 | 四川川亚电子科技有限公司 | 江苏吉宏特专用汽车制造有限公司_联合吸污车-下水道管道清洗疏通车-综合养护吸排车 | 陕西硅酸钙板厂家_西安水泥压力板-陕西凯盛达建材科技有限公司 | 湖州网站建设_湖州网络公司_湖州后普网络科技有限公司 | 真空干燥箱厂家-热风循环烘箱生产厂家-鼓风烘干箱价格-南京火燥机械科技有限公司 | 塑木地板,塑木栏杆,塑木地板价格,塑木地板厂家—浙江尚元塑木制品有限公司 | 陶瓷颗粒厂家_彩色路面_彩色陶瓷颗粒-山东顺驰道路材料有限公司 陶瓷复合钢管-专业提供江苏陶瓷钢管和陶瓷内衬复合钢管的生产厂家 | 木材粉碎机-树枝秸秆粉碎机价格-双轴金属撕碎机生产线-金禾机械厂家 | 一氧化碳检测仪_氢气报警器_臭氧分析仪-深圳万安迪 | 太原万通汽车学校[官网]-太原好的汽修培训学校,学新能源汽车技术,学汽修,学汽车检测与维修技术 | 秦皇岛天视影像有限公司,宣传片创意拍摄制作,商业广告拍摄公司,影视影像服务商 - 秦皇岛天视影像有限公司,宣传片创意拍摄制作,商业广告拍摄公司,影视影像服务商 秦皇岛市信恒电子科技有限公司 秦皇岛市华谊彩印有限公司 | 郑州办公家具厂_河南办公家具厂_河南办公家具-河南华诺家具 | 太阳能路灯生产厂家-郑州太阳能高杆灯价格-道路照明智能路灯-河南坤德照明 | 山东临沂春鑫新能源科技有限公司|官网|生物质颗粒锅炉|燃气锅炉|水源热泵 | 中山电子控制板|中山工业控制板|中山市云禾电子科技有限公司 | 河北撒旺肥业有限公司 | 质检报告_COC_CE认证_LFGB测试_REACH_FCC_FDA-冠通检测 | 四氟瓶塞-塑料离心机-双联恒温水浴锅-常州天瑞仪器有限公司 | 深圳办公室装修_办公室设计_写字楼装修设计_深圳市加洲建设集团有限公司 | 维启科技-创造科技的无限可能 | 上海维启信息技术有限公司 建筑仿真 BIM 虚拟现实 VR AR 顶岗实习 建筑智能模型 | 暖气片厂家_散热器厂家_力春散热器 | 深圳蓝枫印刷_画册印刷_彩页印刷_宣传册印刷_包装盒印刷_彩盒印刷厂_不干胶印刷厂 |