顯示源代碼
                行政區展示突出展示2
                 開發文檔
                            <!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>
                        <!-- 材質 -->
                        <script src="http://bigemap.com/offline_data/newjunbiao/material.js"></script>
                        <title>行政區域展示</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: "鎮江市",
                                },
                                {
                                    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"); //替換球體默認藍色
                                            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
                                            ); //替換球體默認藍色
                                            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();
                                        },
                                        //加載行政區域展示
                                        loadborder() {
                                            var _this = this;
                                            bmgl.GeoJsonDataSource.load(
                                                "/offline_data/newjunbiao/jiangsu.geojson"
                                            ).then(function (dataSource) {
                                                viewer.dataSources.add(dataSource);
                                                //獲取通過geoJSON相關的API加載的實體對象
                                                let enes = dataSource.entities.values;
                                                enes.forEach((v, i) => {
                                                    // 判斷每個實體對象,是否有多邊形
                                                    if (v.polygon) {
                                                        //設置多邊形的材質,隨機顏色
                                                        v.polygon.material =
                                                            i % 2 == 0
                                                                ? bmgl.Color.fromCssColorString(
                                                                      "#568fd7"
                                                                  )
                                                                : bmgl.Color.fromCssColorString(
                                                                      "#3357af"
                                                                  );
                                                        // 設置多邊形展示外輪廓
                                                        v.polygon.outline = true;
                                                        //  設置多邊形外輪廓顏色
                                                        v.polygon.outlineColor = bmgl.Color.WHITE;
                                                        v.polygon.outlineWidth = 10.0;
                                                        v.polygon.extrudedHeight = 2000.0;
                                                    }
                                                });
                                                viewer.flyTo(dataSource); // 自動飛到數據范圍
                                                _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為基準
                                                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為基準
                                                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>
                        
                主站蜘蛛池模板: 无码专区aaaaaa免费视频| 狠狠色丁香久久综合五月| 国产精品自产拍在线网站| 国产成人一区二区三区电影网站| 久久久久久亚洲精品不卡| 欧美精选欧美极品| 午夜私人影院在线观看| 国产成人精品一区二区秒拍| 在线播放国产一区二区三区| 中文字幕人妻中文AV不卡专区| 最近的中文字幕国语电影直播| 人人色在线视频播放| 老板轻点好痛好涨嗯啊视频| 国产特黄一级片| 99久久久精品免费观看国产| 成人小视频免费在线观看| 五月婷婷六月合| 欧美黑人又粗又大久久久| 午夜人妻久久久久久久久| 麻豆AV一区二区三区久久| 国产精品永久免费视频| sss视频在线精品| 日日夜夜天天干干| 亚洲va久久久噜噜噜久久男同| 没有被爱过的女人在线| 动漫美女和男人羞羞漫画| 钻胯羞辱的视频vk| 国产精品乱子乱xxxx| 99re热视频这里只精品| 少妇大胆瓣开下部自慰| 国产999精品久久久久久| 相泽亚洲一区中文字幕| 插插插综合视频| 久久精品国产99久久久古代| 欧美日韩免费播放一区二区| 免费人成无码大片在线观看| 色吊丝最新在线播放网站 | 女教师合集乱500篇小说| 中文无码久久精品| 日韩欧美中文字幕在线播放| 亚洲国产精品第一区二区|