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

顯示源代碼
地形剖面
 開發文檔
            <!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"
        />
        <!-- 引入echarts -->
        <script src="/offline_data/echarts.min.js"></script>
        <title>地形剖面分析</title>
        <style>
            * {
                margin: 0;
                padding: 0;
            }
            html,
            body {
                width: 100%;
                height: 100%;
            }
            #app {
                width: 100%;
                height: 100%;
            }
            #baseMap {
                width: 100%;
                height: 65%;
            }
            #echartsMap {
                width: 100%;
                height: 35%;
                background-color: rgba(39, 44, 54, 0.9);
                overflow: hidden;
            }
            .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 id="echartsMap"></div>
        </div>
        <script>
            window.viewer = null;
            let linesArr = [
                [102.1261597, 30.76446533],
                [102.2689819, 30.78643799],
                [102.3019409, 30.84686279],
                [102.3912048, 30.96221924],
                [102.5354004, 30.98144531],
                [102.6425171, 31.13800049],
                [102.6287842, 31.26434326],
                [102.9542542, 31.28082275],
                [103.0133057, 31.04736328],
                [102.7867127, 30.8454895],
                [102.9212952, 30.6312561],
                [103.2220459, 30.66558838],
                [103.2110596, 30.94985962],
                [103.3909607, 30.98007202],
            ];
            let newArr = new Array(14).fill(0);
            let lb = newArr.map((v, i) => {
                return `${i + 1}號點位`;
            });
            window.posArr = [];
            window.onload = () => {
                new Vue({
                    el: "#app",
                    data() {
                        return {
                            showText: "暫無高程數據信息",
                            echartsData: [],
                            labelData: [],
                            tableShow: false,
                        };
                    },
                    mounted() {
                        this.initMap();
                    },
                    methods: {
                        //初始化地圖
                        initMap() {
                            var _this = this;
                            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指定離線服務器上發布的高程服務的id
                                terrainId: "bigemap.dc-terrain",
                            });
                            if (
                                bmgl.FeatureDetection.supportsImageRenderingPixelated()
                            ) {
                                viewer.resolutionScale =
                                    window.devicePixelRatio;
                            }
                            //開啟抗鋸齒,讓圖像更加順滑
                            viewer.scene.postProcessStages.fxaa.enabled = true;
                            viewer.terrainProvider.readyPromise
                                .then(function (terrainProvider) {
                                    console.log("地形加載完成");
                                    // 在這里執行地形加載完成后的操作
                                    _this.loadLines();
                                })
                                .otherwise(function (error) {
                                    console.error("地形加載失敗", error);
                                });
                            // this.loadLines();
                        },
                        loadLines() {
                            let bl = viewer.entities.add({
                                polyline: {
                                    positions: bmgl.Cartesian3.fromDegreesArray(
                                        linesArr.flat()
                                    ),
                                    width: 4.0,
                                    material:
                                        bmgl.Color.fromCssColorString(
                                            "#009efc"
                                        ),
                                    clampToGround: true,
                                },
                            });

                            viewer.camera.flyTo({
                                destination: bmgl.Cartesian3.fromDegrees(
                                    102.84814348201657,
                                    31.097350000050334,
                                    11074.133580966802
                                ),
                                orientation: {
                                    heading: 0.22449683617942018,
                                    pitch: -0.3883918330117684,
                                    roll: 6.2678425339793336,
                                },
                                complete: () => {
                                    setTimeout(()=>{
                                        this.computedHeight();
                                    },1000)
                                },
                            });
                        },

                        computedHeight() {
                            linesArr.forEach((v, i) => {
                                let cartesian = bmgl.Cartographic.fromDegrees(
                                    v[0],
                                    v[1]
                                );
                                window.posArr.push(cartesian);
                            });
                            // console.log(posArr, "linesArr");
                            this.getNowheight(window.posArr, 0);
                        },
                        //根據提供的位置計算高度
                        getNowheight(posArr, count) {
                            let item = posArr.shift();
                            // console.log("count", count);
                            var _this = this;
                            if (item) {
                                let height = viewer.scene.globe.getHeight(item);
                                // console.log(`height`, height);
                                if (height < 0 || !height) {
                                } else {
                                    _this.echartsData.push({
                                        name: `${lb[count]}`,
                                        value: parseFloat(height.toFixed(2)),
                                    });
                                }
                                count += 1;
                                _this.getNowheight(window.posArr, count);
                            } else {
                                _this.createEaherts(
                                    _this.labelData,
                                    _this.echartsData
                                );
                            }
                        },
                        createEaherts(labelData, optionData) {
                            if(optionData.length == 0) return
                            let chartDom =
                                document.getElementById("echartsMap");
                            let myChart = echarts.init(chartDom);
                            let option;
                            option = {
                                title: {
                                    text: "點位對應高程值",
                                    textStyle: {
                                        color: "#fff",
                                        fontFamily: "楷體",
                                        fontStyle: "normal",
                                        fontWeight: "bold",
                                    },
                                    left: "center",
                                    top: "2px",
                                },
                                grid: {
                                    left: 15,
                                    right: 15,
                                    top: 44,
                                    bottom: 10,
                                    containLabel: true,
                                },
                                tooltip: {
                                    trigger: "item",
                                    formatter: (res) => {
                                        let index = res.dataIndex;
                                        let pos = linesArr[index];
                                        let val = res.data.value;
                                        // console.log("結果",index,pos,val);
                                        let string = `${index + 1}點位信息如下:<br>` +
                                            `經度:${pos[0]}<br>` +
                                            `緯度:${pos[1]}<br>` +
                                            `高度:${val}米`
                                        // console.log("結果",index,pos,val,string);    
                                        return string;
                                        ;
                                    },
                                },
                                xAxis: {
                                    type: "category",
                                    data: lb,
                                    axisLabel: {
                                        interval: 0,
                                        rotate: 40,
                                        color: "#ffffff",
                                        fontSize: 12,
                                    },
                                },
                                yAxis: {
                                    type: "value",
                                    name: "高程值",
                                    axisLabel: {
                                        color: "#ffffff",
                                        fontSize: 12,
                                    },
                                    nameTextStyle: {
                                        color: "#fff",
                                        fontFamily: "楷體",
                                        fontStyle: "normal",
                                        fontWeight: "bold",
                                    },
                                },
                                series: [
                                    {
                                        data: optionData,
                                        type: "bar",
                                        showBackground: true,
                                        backgroundStyle: {
                                            color: "rgba(180, 180, 180, 0.2)",
                                        },
                                        label: {
                                            color: "white",
                                            fontSize: 12,
                                        },
                                        itemStyle: {
                                            color: new echarts.graphic.LinearGradient(
                                                0,
                                                0,
                                                0,
                                                1,
                                                [
                                                    {
                                                        offset: 0,
                                                        color: "#83bff6",
                                                    },
                                                    {
                                                        offset: 0.5,
                                                        color: "#188df0",
                                                    },
                                                    {
                                                        offset: 1,
                                                        color: "#188df0",
                                                    },
                                                ]
                                            ),
                                        },
                                        emphasis: {
                                            itemStyle: {
                                                color: new echarts.graphic.LinearGradient(
                                                    0,
                                                    0,
                                                    0,
                                                    1,
                                                    [
                                                        {
                                                            offset: 0,
                                                            color: "#2378f7",
                                                        },
                                                        {
                                                            offset: 0.7,
                                                            color: "#2378f7",
                                                        },
                                                        {
                                                            offset: 1,
                                                            color: "#83bff6",
                                                        },
                                                    ]
                                                ),
                                            },
                                        },
                                    },
                                    {
                                        data: optionData,
                                        type: "line",
                                        itemStyle: {
                                            color: new echarts.graphic.LinearGradient(
                                                0,
                                                0,
                                                0,
                                                1,
                                                [
                                                    {
                                                        offset: 0,
                                                        color: "#83bff6",
                                                    },
                                                    {
                                                        offset: 0.5,
                                                        color: "#188df0",
                                                    },
                                                    {
                                                        offset: 1,
                                                        color: "#188df0",
                                                    },
                                                ]
                                            ),
                                        },
                                    },
                                ],
                                legend: {},
                            };
                            option && myChart.setOption(option);
                        },
                    },
                    beforeDestroy() {
                        viewer.destroy();
                        viewer = null;
                    },
                });
            };
        </script>
    </body>
</html>
        
主站蜘蛛池模板: 深圳市福田区建筑装饰设计协会| 威学一百-专注国际学校择校备考-DSE-A-level-雅思-托福-OSSD-港澳台联考-AP-IGCSE-IB-AMC-多邻国-PTE-SAT-SSAT-小语种(如日语,韩语,德语,法语,西班牙语,意大利语,俄语,泰语)等考试培训,为出国留学学生提供个性化定制性学习方案,线下实体面授+线上网络课程, 提供一对一,小班课等多种班型 | 南京三维动画制作公司,企业视频制作,视频拍摄,FLASH动画设计,宣传片拍摄,广告片制作 | 碳化硅脱硫喷嘴,碳化硅烧嘴套,碳化硅耐磨衬套-潍坊致达特种陶瓷有限公司 | 真空清洗炉_真空煅烧炉_铸铝加热器-盐城市钰凯电器有限公司 | 秦皇岛天视影像有限公司,宣传片创意拍摄制作,商业广告拍摄公司,影视影像服务商 - 秦皇岛天视影像有限公司,宣传片创意拍摄制作,商业广告拍摄公司,影视影像服务商 秦皇岛市信恒电子科技有限公司 秦皇岛市华谊彩印有限公司 | 新能源洗扫车、新能源压缩垃圾车_新能源路面养护车_电动树叶收集车_电动扫地机_电动洗地机_高尔夫球车 | 柚墨yomoer官网_PPT模板_工作总结PPT模板下载_个人简历模板 | 长沙物流公司|湖南货物运输公司|长沙第三方物流公司-国联物流 湖南第三方物流专家 | 泰安铭德机械有限公司,有机肥设备,山东有机肥设备厂家,铭德机械 泰安华特玻璃钢有限公司|泰安玻璃钢|泰安华特玻璃钢 | 衡水一体化污水处理设备|循环水旁滤器|加药装置|钢厂浊环净化装置|河北欧意科技集团有限公司 | 自走式缠绕机_上海德目包装设备厂家_在线式缠绕机_缠绕膜打包机 自装卸(挂桶)车|钩臂垃圾车|压缩垃圾车|密封自卸车|环卫垃圾车|餐厨车泔水车湖北程力专用车厂家 | 深圳网站建设-量身定制原创设计-专业网站建设公司【企术】 | 抛丸机-通过式抛丸机-履带吊钩式抛丸机厂家-青岛泓霖智能设备公司 | 卧式镗铣床,道斯镗铣机床加工中心-江苏道斯数控科技有限公司 | 扬州市德友线缆有限公司-业从事高端特种线缆研发、制造、销售与服务。 | 湖南净声源环保科技有限公司是一家专业从事噪声治理和建筑声学设计生态环境综合治理服务的企业,专业从事株洲电梯隔音治理,湘潭中央空调降噪处理,衡阳邵阳冷却塔噪音治理,岳阳常德大型风机噪声隔音降噪,张家界空压机噪声治理,益阳配电房变压器噪声治理,专业郴州永州工厂企业车间噪声治理,怀化娄底专业机械设备减振降治理,武汉噪音治理隔音降噪公司,孝感噪音治理,立式球磨机的噪声控制,专业隔音降噪公司,、以及各类机械动力设备减振降噪噪声治理的公司,同时为客户提供咨询与解决方案 | 江寒必恋术在线阅读_江寒必恋术免费下载 - 江寒必恋术电子书 | 围墙护栏,护栏网,围栏,锌钢栅栏,护栏网厂家--安平县沃达金属丝网制造有限公司 | 陶瓷-超高速胶体磨-高剪切胶体磨厂家价格-上海思峻机械设备有限公司 | 深圳PCB电路板厂|PCB线路板厂|FPC柔性电路板厂|FPC软性线路板生产厂家|恒成和电路板:18681495413 | 西安鲁班装饰 - 家庭装修,别墅装修,西安十大装修公司排名 | 抛丸机-通过式抛丸机-履带吊钩式抛丸机厂家-青岛泓霖智能设备公司 | 活性炭吸附设备,UV光氧废气处理设备,破碎机专用除尘器,催化燃烧设备厂家-河北碧清环保设备有限公司 | 升降作业平台_自行-车载-液压升降机_登车桥-强峰升降台 | 吸音板_隔音板多少钱_降噪声学材料_环保阻燃防火_吸声装饰工程定制_厂家价格直供 - 佛山天阶声学材料厂 | 上海轮毂生产厂家-改装轮毂-锻造轮毂价格-上海毂信汽车零部件有限公司 | 智能档案柜,回转柜,密集架,密集柜厂家-北京及尚智能家具 | 呕吐毒素快速检测仪-黄曲霉毒素测定仪-玉米赤霉烯酮快速检测卡-南京微测生物科技有限公司 | 排水PVC管-PVC排污管-给水PVC管-电线PVC管-米阳建材pvc管厂 | 上饶市蚂蚁搬家有限公司,上饶搬家公司,上饶同城搬家,上饶同城搬家电话,上饶搬家哪家好,上饶搬家公司电话 | 武汉牛凸科技有限公司| 双螺杆挤压膨化设备_挤压熟化设备_烘干设备_油炸设备及喷涂调味设备-山东铭本机械科技公司 | 上海浩斌信息科技有限公司RFID读写器,IC卡读卡器,手持机,数据采集终端,电力仓库管理软件开发,固定资产软件,纱管标签,试剂管理,RFID试剂柜,档案管理,档案柜,智能货架 | 混凝土修补-清水混凝土保护剂-仿清水混凝土-混凝土装修-混凝土色差处理-混凝土色差修复剂-德州唐荣建筑装饰工程有限公司 | 橡皮艇_冲锋舟_充气钓鱼船_橡皮艇价格_海威龙橡皮艇生产厂家-首页 | 智能电地暖_电地暖安装_电地暖价格-西安秦星暖通工程有限公司 | 一氧化碳检测仪_氢气报警器_臭氧分析仪-深圳万安迪 | 松下PLC经销商-松下传感器-放大器-电磁阀-光电开关-金器[东莞均钛]品牌气动元件及工控产品一站式供应商 | 小程序开发,网站建设,APP开发,商城系统开发,社区团购系统开发,区块链溯源,互联网资质办理-软多信息技术有限公司_河南软多信息技术有限公司 | 精细筛-振动筛-滚筒筛-摇摆筛-平面回转筛-筛分机械设备-新乡德科筛分机械公司 |