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

顯示源代碼
行政區(qū)展示突出展示2
 開發(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>
        <script src="http://bigemap.com/offline_data/newjunbiao/bmgl-plot.min.js"></script>
        <!-- 材質(zhì) -->
        <script src="http://bigemap.com/offline_data/newjunbiao/material.js"></script>
        <title>行政區(qū)域展示</title>
        <style>
            * {
                margin: 0;
                padding: 0;
            }
            html,
            body {
                width: 100%;
                height: 100%;
            }
            #app {
                width: 100%;
                height: 100%;
            }
            #baseMap {
                width: 100%;
                height: 100%;
                background: url("/offline_data/newjunbiao/bg.png") no-repeat;
                background-size: cover;
            }
        </style>
    </head>
    <body>
        <div id="app">
            <div id="baseMap"></div>
        </div>
        <script>
            let baseArr = [
                {
                    center: [118.76219124501672, 32.04358051185503],
                    name: "南京市",
                },
                {
                    center: [120.29706603467706, 31.576633938997617],
                    name: "無錫市",
                },
                {
                    center: [117.521565, 34.355594],
                    name: "徐州市",
                },
                {
                    center: [119.94228337389308, 31.774860754395682],
                    name: "常州市",
                },
                {
                    center: [120.61541112637781, 31.301559319032933],
                    name: "蘇州市",
                },
                {
                    center: [120.86035434402226, 32.018358395348926],
                    name: "南通市",
                },
                {
                    center: [119.17319545985931, 34.60097336022726],
                    name: "連云港市",
                },
                {
                    center: [118.61251831, 33.09269208],
                    name: "淮安市",
                },
                {
                    center: [120.13497070317564, 33.37900392216486],
                    name: "鹽城市",
                },
                {
                    center: [119.41552514821987, 32.395039950996384],
                    name: "揚州市",
                },
                {
                    center: [119.458183, 32.014028],
                    name: "鎮(zhèn)江市",
                },
                {
                    center: [120.060841, 32.571433],
                    name: "泰州市",
                },
                {
                    center: [118.68392944, 33.99575016],
                    name: "宿遷市",
                },
            ];
            window.onload = () => {
                new Vue({
                    el: "#app",
                    data() {
                        return {};
                    },
                    mounted() {
                        this.initMap();
                    },
                    methods: {
                        //初始化地圖
                        initMap() {
                            bmgl.Config.HTTP_URL = 'http://ua.bigemap.com:30081/bmsdk/';
                            window.viewer = new bmgl.Viewer("baseMap", {
                                mapId: "bigemap.dc-satellite",
                                infoBox: false,
                                selectionIndicator: false,
                                requestRenderMode:false,
                                orderIndependentTranslucency: false,
                                contextOptions: {
                                    webgl: {
                                        alpha: true,
                                    },
                                },
                            });
                            if (
                                bmgl.FeatureDetection.supportsImageRenderingPixelated()
                            ) {
                                window.viewer.resolutionScale =
                                    window.devicePixelRatio;
                            }
                            //開啟抗鋸齒,讓圖像更加順滑
                            viewer.scene.postProcessStages.fxaa.enabled = true;
                            viewer.imageryLayers.removeAll();
                            viewer.scene.globe.baseColor =
                                new bmgl.Color.fromCssColorString("#363635"); //替換球體默認(rèn)藍(lán)色
                            viewer.scene.skyBox.show = false; //隱藏天空盒子
                            viewer.scene.backgroundColor = new bmgl.Color(
                                0.0,
                                0.0,
                                0.0,
                                0.0
                            ); //隱藏黑色背景
                            viewer.scene.globe.baseColor = new bmgl.Color(
                                0,
                                0,
                                0,
                                0
                            ); //替換球體默認(rèn)藍(lán)色
                            viewer.scene.globe.enableLighting = false; //隱藏太陽
                            viewer.shadows = false;
                            viewer.scene.sun.show = false; //或者viewer.scene.sun.destroy();
                            viewer.scene.moon.show = false; //隱藏月亮
                            viewer.scene.skyAtmosphere.show = false; //大氣圈
                            viewer.scene.fog.enable = false; //霧
                            viewer.scene.globe.show = false;
                            // 禁用星光
                            viewer.scene.skyAtmosphere.show = false;
                            this.loadborder();
                        },
                        //加載行政區(qū)域展示
                        loadborder() {
                            var _this = this;
                            bmgl.GeoJsonDataSource.load(
                                "/offline_data/newjunbiao/jiangsu.geojson"
                            ).then(function (dataSource) {
                                viewer.dataSources.add(dataSource);
                                //獲取通過geoJSON相關(guān)的API加載的實體對象
                                let enes = dataSource.entities.values;
                                enes.forEach((v, i) => {
                                    // 判斷每個實體對象,是否有多邊形
                                    if (v.polygon) {
                                        //設(shè)置多邊形的材質(zhì),隨機顏色
                                        v.polygon.material =
                                            i % 2 == 0
                                                ? bmgl.Color.fromCssColorString(
                                                      "#568fd7"
                                                  )
                                                : bmgl.Color.fromCssColorString(
                                                      "#3357af"
                                                  );
                                        // 設(shè)置多邊形展示外輪廓
                                        v.polygon.outline = true;
                                        //  設(shè)置多邊形外輪廓顏色
                                        v.polygon.outlineColor = bmgl.Color.WHITE;
                                        v.polygon.outlineWidth = 10.0;
                                        v.polygon.extrudedHeight = 2000.0;
                                    }
                                });
                                viewer.flyTo(dataSource); // 自動飛到數(shù)據(jù)范圍
                                _this.loadCenterpoint();
                                // viewer.zoomTo(viewer.entities);
                            });
                        },
                        loadCenterpoint() {
                            baseArr.forEach((v, i) => {
                                viewer.entities.add({
                                    position: bmgl.Cartesian3.fromDegrees(
                                        ...v.center,
                                        1200
                                    ),
                                    label: {
                                        text: v.name,
                                        font: "20px 楷體",
                                        style: bmgl.LabelStyle.FILL_AND_OUTLINE,
                                        fillColor:
                                            bmgl.Color.fromCssColorString(
                                                "#ffffff"
                                            ),
                                        pixelOffset: new bmgl.Cartesian2(
                                            0,
                                            -20
                                        ),
                                        showBackground: true,
                                        backgroundColor: new bmgl.Color(
                                            0.165,
                                            0.165,
                                            0.165
                                        ),
                                        scale: 0.8,
                                        distanceDisplayCondition:
                                            new bmgl.DistanceDisplayCondition(
                                                0,
                                                1400000
                                            ),
                                    },
                                });
                            });
                            this.loadFlyLine();
                            let circleRotate = viewer.entities.add({
                                    position: bmgl.Cartesian3.fromDegrees(
                                        119.569702,
                                        33.25247,
                                    ),
                                    id: "circleRotateTest",
                                    ellipse: {
                                        semiMinorAxis: 460000.0,
                                        semiMajorAxis: 460000.0,
                                        height:1220,
                                        material:
                                            new bmgl.ImageMaterialProperty({
                                                image: "/offline_data/newjunbiao/kjg.png",
                                            }),
                                    },
                                });
                                this.rotateMaterial(
                                    circleRotate.ellipse,
                                    0,
                                    1
                                );
                        },
                        rotateMaterial(instance, _stRotation, _amount) {
                            instance.stRotation = new bmgl.CallbackProperty(
                                function () {
                                    _stRotation += _amount;
                                    if (
                                        _stRotation >= 360 ||
                                        _stRotation <= -360
                                    ) {
                                        _stRotation = 0;
                                    }
                                    return bmgl.Math.toRadians(_stRotation);
                                },
                                false
                            );
                        },
                        //加載飛線效果
                        loadFlyLine() {
                            let center = { lon: 119.569702, lat: 33.25247 };
                            let material =
                                new bmgl.PolylineTrailLinkMaterialProperty(
                                    bmgl.Color.fromCssColorString("#06d4ff"),
                                    // bmgl.Color.GRAY,
                                    3000
                                );
                            for (var j = 0; j < baseArr.length; j++) {
                                // console.log(baseArr[j]);
                                let pos = baseArr[j].center;
                                let points = this.parabolaEquation({
                                    pt1: center,
                                    pt2: { lon: pos[0], lat: pos[1] },
                                    height: 5800,
                                    num: 100,
                                });

                                // console.log("points",points);

                                var pointArr = [];
                                for (var i = 0; i < points.length; i++) {
                                    pointArr.push(
                                        points[i][0],
                                        points[i][1],
                                        points[i][2]
                                    );
                                }
                                viewer.entities.add({
                                    name: "PolylineTrailLink" + j,
                                    polyline: {
                                        positions:
                                            bmgl.Cartesian3.fromDegreesArrayHeights(
                                                pointArr
                                            ),
                                        width: 10.0,
                                        material: material,
                                    },
                                });
                            }
                        },
                        //計算拋物線
                        parabolaEquation(options, resultOut) {
                            let h = options.height ? options.height : 5000;
                            let L =
                                Math.abs(options.pt1.lon - options.pt2.lon) >
                                Math.abs(options.pt1.lat - options.pt2.lat)
                                    ? Math.abs(
                                          options.pt1.lon - options.pt2.lon
                                      )
                                    : Math.abs(
                                          options.pt1.lat - options.pt2.lat
                                      );
                            let num =
                                options.num && options.num > 50
                                    ? options.num
                                    : 50;
                            let result = [];
                            let dlt = L / num;
                            if (
                                Math.abs(options.pt1.lon - options.pt2.lon) >
                                Math.abs(options.pt1.lat - options.pt2.lat)
                            ) {
                                //以lon為基準(zhǔn)
                                let delLat =
                                    (options.pt2.lat - options.pt1.lat) / num;
                                if (options.pt1.lon - options.pt2.lon > 0) {
                                    dlt = -dlt;
                                }
                                for (let i = 0; i < num; i++) {
                                    let tempH =
                                        h -
                                        (Math.pow(
                                            -0.5 * L + Math.abs(dlt) * i,
                                            2
                                        ) *
                                            4 *
                                            h) /
                                            Math.pow(L, 2);
                                    let lon = options.pt1.lon + dlt * i;
                                    let lat = options.pt1.lat + delLat * i;
                                    result.push([lon, lat, tempH]);
                                }
                            } else {
                                //以lat為基準(zhǔn)
                                let delLon =
                                    (options.pt2.lon - options.pt1.lon) / num;
                                if (options.pt1.lat - options.pt2.lat > 0) {
                                    dlt = -dlt;
                                }
                                for (let i = 0; i < num; i++) {
                                    let tempH =
                                        h -
                                        (Math.pow(
                                            -0.5 * L + Math.abs(dlt) * i,
                                            2
                                        ) *
                                            4 *
                                            h) /
                                            Math.pow(L, 2);
                                    let lon = options.pt1.lon + delLon * i;
                                    let lat = options.pt1.lat + dlt * i;
                                    result.push([lon, lat, tempH]);
                                }
                            }
                            if (resultOut != undefined) {
                                resultOut = result;
                            }
                            return result;
                        },
                    },
                    beforeDestroy() {
                        viewer.destroy();
                        viewer = null;
                    },
                });
            };
        </script>
    </body>
</html>
        
主站蜘蛛池模板: 气体报警器,有毒气体报警器,可燃气体探测器,乙炔气体报警器,可燃气体检漏仪,便携式气体检测仪,气体报警控制器-山东如特安防设备有限公司 | 挖掘机|小型挖掘机|挖掘机抓木机|轮式挖掘机|宝鼎挖掘机-宝鼎液压机械公司厂家直销 | 全自动烫金机-全自动移印机-全自动丝印机-全自动平面机-东莞联昌实业供应各种丝印机和移印机 | 上海喷涂厂|上海喷漆厂|粉末喷涂|平湖喷涂厂|平湖喷漆厂-平湖华梦金属科技有限公司 | 威海电子电镀,山东五金电镀,威海镀镍,山东镀铜镍铬-威海鑫镱金属制品厂 | 线宽测试仪丨光调制分析仪丨调制器 卓越光子-专注于光电解决方案 | 疲劳试验机|电子万能试验机|摩擦磨损试验机|冲击试验机|济南全力测试技术有限公司 | 生活污水处理设备-地埋式污水处理设备厂家-山东梦之洁水处理设备有限公司 | 润滑油展会 沈阳 南京 润滑油 展会 西安 润滑脂 中国国际润滑油 全国润滑油 汽配_中国国际润滑油、脂、养护用品及技术设备展览会 | 山东长青石油液压机械有限公司-致力于石油机械设备的研发制造,提供定制服务 | 汽油发电机,柴油发电机,小型汽油发电机,小型柴油发电机,家用发电机生产厂家——上海东明动力设备有限公司 | 威学一百-专注国际学校择校备考-DSE-A-level-雅思-托福-OSSD-港澳台联考-AP-IGCSE-IB-AMC-多邻国-PTE-SAT-SSAT-小语种(如日语,韩语,德语,法语,西班牙语,意大利语,俄语,泰语)等考试培训,为出国留学学生提供个性化定制性学习方案,线下实体面授+线上网络课程, 提供一对一,小班课等多种班型 | 气动隔膜调节阀,气动比例调节隔膜阀|川熙流体设备百科 | 专业提供医疗器械,医疗设备,进口国产医疗设备,医疗耗材采购,医疗设备厂家等医疗器械信息-上海聚慕医疗器械有限公司 | 模具|晒纹-咬花-拉丝纹-立体纹-东莞市佳毅激光科技有限公司 | 输送带_山东输送带厂家_橡胶传送带-山东中输输送机械有限公司 | 铸造厂-铸铝-铸铜-铝合金铸造-重力铸造-翻砂铸造-[剑锋机械配件]专业东莞|深圳铸造厂 | 铝合金百叶窗_西安百叶窗厂家-西安市未央区通达建材物资部 | 卧式球磨机_干法球磨机_尼龙球磨机-无锡市少宏粉体科技有限公司 卧螺离心机-固液分离机-台州春鼎机械制造有限公司 | 山东优科机械设备有限公司,养鸡设备,湿帘设备,通风降温加湿设备,山东养鸡设备,山东湿帘设备 | 扭矩测试仪_拉力测试仪_扭力扳手测试仪_测试台-上海铸衡电子科技有限公司 | 陕西筱润智能科技有限公司 干部人事智能档案柜 智能密集架 智能档案柜 部队选层文件智能柜 智能枪弹柜 财务智能档案柜 边防武警智能密集架 医院智能档案柜 部队选层文件智能柜智能枪弹柜 学校医院文件柜 企事业单位公检法智能文件柜 生产厂家-筱润智能科技有限公司 RFID射频智能密集架 全自动智能选层档案柜 智能密保柜 枪柜部队营房营具床桌椅办公家具 办公用品档案盒设备货架 全自动智能选层柜生产厂家-筱润智能科技有限公司 | 环保白电油_甲醇_二价酸酯DBE_防白水-【名亿新材料】 | 塑料模具公司,塑料包装桶厂家,PET打包带厂家,缠绕膜厂家-新疆福吉亚工贸有限公司 | 智能化会议系统|多媒体会议系统|无纸化会议系统|会议音箱|高清视频会议终端|智能化会议室|会议系统|视频会议系统-深圳市航视达科技有限公司 | 佳龙食品集团|高端辣条领导品牌| 新高度,萍乡市场调查研究公司,萍乡市场调研公司,萍乡第三方评估机构,萍乡神秘顾客暗访公司 | 暖家乐散热器_天津市暖家乐金属制品有限公司 | 西安宣传片拍摄,陕西艺景网络科技有限公司资料备份,西安影视公司,视频拍摄制作,抖音视频制作,纪录片拍摄西安短视频摄影团队,西安抖音视频拍摄 | 上海海外置业展_2024海外置业移民留学展_4月5-7日_企业参展处/免费领门票 | 湖北大洋塑胶有限公司|AGR|PPR|RTP|HDPE|e-PSP钢塑复合压力管道生产厂家 | 清河县隆鑫密封件有限公司,汽车用密封条,配电箱柜、集装箱密封胶条,建筑门窗、家具用密封条,无毒环保医用密封条,船舶、农机用密封条,异型产品 | 品牌T恤零售/批发厂商/供应商_男女式T恤生产/设计-圣达信T恤 | 湖南长沙癫痫病医院_湖南癫痫病专科医院_湖南治疗癫痫病专业医院_长沙和谐医院有限公司 | 水分测定仪_微量水分测定仪_高低温试验箱_昆山鹭工精密仪器有限公司 | 激光切割加工,佛山激光切割加工,钣金加工,机加工-佛山市华锐达金属制品有限公司 | 潜水搅拌机|潜水推流机|曝气机|刮吸泥机|格栅除污机-南京远蓝环境设备 | 荧光显微镜,倒置显微镜,显微镜相机,荧光光源——广州市明美光电技术有限公司 | 直流屏|青岛直流屏|直流屏电池-世界500强艾默生直流屏标准生产厂家赛里斯能源科技有限公司 | 郑州空气能热水器,郑州空气能热水器经销商,郑州空气能热水器维修,郑州空气能热水器安装 | 宜宾三江人才网_三江人才网_宜宾三江人才网_三江人才直聘网是本地颇具规模的网上人才市场 |