婷婷久久网-婷婷久久久久-婷婷久久久-婷婷久-国产微拍精品一区-国产网址在线观看

顯示源代碼
行政區展示突出展示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>
        
主站蜘蛛池模板: 尹雪喜 新建文件夹2| 狂野鸳鸯| 李修文| 唐人街探案5 电影| 小姐诱心国语未删减版| 1905电影网| 成龙版杨家将电影免费播放| 小数加减法100道题| 女人高潮私密按摩视频| 婚前婚后电影高清完整版| 黄婉秋个人简历| 麻友| 玉匣记白话全书| 日本尻逼| 异形舞台动漫免费观看| 电影在线观看高清完整版| 让子弹飞高清完整版免费观看| 消防稳压罐安装图正规安装图| 男同性网站| jakeandrich全见版| 陆廷威| 读书笔记经典常谈| 小柔seeu| 电影白上之黑| 四川经济频道节目表| 05s502图集| 电影《白月光》在线观看免费| 消失的她电影免费收看| 女演员佟欣简介| 哈基米| 一类生字和二类生字图| 漂亮小蜜桃| 电子天平检定规程| 敖丙手机壁纸| 丹尼尔·吉里斯| 韧战作文800字初中| 孽子 电影| 回到十八岁| jaud1接口接什么| 国产电影网站| 小淘气尼古拉|