国产久_亚欧精品一区_久久亚洲美女_99精品在线观看_日韩成人三级_久久精品久久久久

顯示源代碼
克里金圖斑
 開發(fā)文檔
            <!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8" />
        <meta
            name="viewport"
            content="initial-scale=1,maximum-scale=1,user-scalable=no"
        />
        <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="/offline_data/newjunbiao/kriging.js"></script>
        <style>
             *{
                margin: 0;
                padding: 0;
            }
            html,body{
                width: 100%;
                height: 100%;
            }
            #container {
                width: 100%;
                height: 100%;
            }
            .bmgl-widget-credits {
                display: none;
            }
            .tools{
                position: absolute;
                width: 280px;
                height:350px;
                bottom: 60px;
                left: 60px;
                display: flex;
                flex-direction: column;
                z-index:9;
                background-color: aliceblue;
            }
            .exam{
                width: 100%;
                text-align: center;
            }
            .item{
                width: 300px;
                flex: 0 0 12%;
                display: flex;
                justify-content: space-around;
                align-items: center;
            }
            .color{
                flex: 0 0 30%;
                height: 40%;
            }
            .mount{
                flex: 0 0 40%;
                text-align: left;
                height: 40%;
            }
        </style>
        <title>Google Map Streets</title>
    </head>
    <body>
        <div id="container">
            
            <div class="tools">
                <h5 class="exam">四川省年平均降水量圖例(單位:mm)</h5>
                <div class="item">
                    <div class="color one" style="background-color:#7fffff;"></div>
                    <h5 class="mount">降雨量0-1000</h5>
                </div>
                <div class="item">
                    <div class="color one" style="background-color: #23b7ff;"></div>
                    <h5 class="mount">降雨量1000-1100</h5>
                </div>
                <div class="item">
                    <div class="color one" style="background-color: #0177b4;"></div>
                    <h5 class="mount">降雨量1100-1200</h5>
                </div>
                <div class="item">
                    <div class="color one" style="background-color: #0052ca;"></div>
                    <h5 class="mount">降雨量1200-1400</h5>
                </div>
                <div class="item">
                    <div class="color one" style="background-color: #0310d8;"></div>
                    <h5 class="mount">降雨量1400-1600</h5>
                </div>
                <div class="item">
                    <div class="color one" style="background-color: #9601f9;"></div>
                    <h5>降雨量1600-1800</h5>
                </div>
                <div class="item">
                    <div class="color one" style="background-color: #6f00b8;"></div>
                    <h5 class="mount">降雨量1800-2000</h5>
                </div>
                <div class="item">
                    <div class="color one" style="background-color: #4c0082;"></div>
                    <h5 class="mount">降雨量2000+</h5>
                </div>
            </div>
        </div>

        <script type="module">
            bmgl.Config.HTTP_URL = 'http://ua.bigemap.com:30081/bmsdk/';
            window.viewer = new bmgl.Viewer("container", {
                mapId: "bigemap.dc-tian-w-satellite",
                infoBox: false,
                requestRenderMode: false,
            });
            if (bmgl.FeatureDetection.supportsImageRenderingPixelated()) {
                viewer.resolutionScale = window.devicePixelRatio;
            }
            //開啟抗鋸齒,讓圖像更加順滑
            viewer.scene.postProcessStages.fxaa.enabled = true;

            var krigingColors = [
                { min: 0, max: 1000, color: "#7fffff" },
                { min: 1000, max: 1100, color: "#23b7ff" },
                { min: 1100, max: 1200, color: "#0177b4" },
                { min: 1200, max: 1400, color: "#0052ca" },
                { min: 1400, max: 1600, color: "#0310d8" },
                { min: 1600, max: 1800, color: "#9601f9" },
                { min: 1800, max: 2000, color: "#6f00b8" },
                { min: 2000, max: 10000, color: "#4c0082" },
            ];

            // 繪制圖斑的數(shù)據(jù)
            var lngs = []; //經(jīng)度數(shù)組
            var lats = []; //緯度數(shù)組
            var vals = []; //數(shù)值數(shù)組
            var mode = "exponential"; //變異函數(shù)模型
            var sigma2 = 0; // (σ2)高斯過程的方差參數(shù)
            var alpha = 100; // (α)變異函數(shù)模型的先驗(yàn)
            var gridDivideNum = 800; // 根據(jù)格網(wǎng)的寬度/該數(shù)量劃分格網(wǎng)單元大小
            var resArr = [];

            // 加載城市點(diǎn)位數(shù)據(jù)
            var cityPromise = await fetch("/offline_data/newjunbiao/cityData.json");
            var cityjson = await cityPromise.json();
            var cityArr = cityjson.forEach((v, i) => {
                lngs.push(v.pos[0]);
                lats.push(v.pos[1]);
                vals.push(v.val);
                createPoint(v);
            });
            
            //加載四川省的邊界數(shù)據(jù) 
            var scPromise = await fetch("/offline_data/newjunbiao/scs.json");
            var broderjson = await scPromise.json();
            var pos = broderjson.features[0].geometry.coordinates[0];
            let scCartesian3 = bmgl.Cartesian3.fromDegreesArray(pos.flat());
            createpolyline(scCartesian3);
            //根據(jù)邊界數(shù)據(jù)計(jì)算外接矩形
            var outerRect = getRec(pos);
            var minx = outerRect[0];
            var miny = outerRect[1];
            var maxx = outerRect[2];
            var maxy = outerRect[3];
            // 外接矩形范圍
            var polygonExtentCoords = [
                [
                    [minx, miny],
                    [maxx, miny],
                    [maxx, maxy],
                    [minx, maxy],
                ],
            ];
            // 訓(xùn)練并得到格網(wǎng)
            var variogram = kriging.train(
                vals,
                lngs,
                lats,
                mode,
                sigma2,
                alpha
            );
            //克里金生成格網(wǎng)
            var grid = kriging.grid(
                polygonExtentCoords,
                variogram,
                (maxx - minx) / gridDivideNum
            );

            // 繪制canvas圖片
            var canvas = document.createElement("canvas");
            canvas.width = 1000;
            canvas.height = 1000;
            canvas.style.display = "block";
            canvas.getContext("2d").globalAlpha = 1.0;
            drawImg(canvas, grid, grid.xlim, grid.ylim, krigingColors);

            var polygonGeom = new bmgl.PolygonGeometry({
                polygonHierarchy: new bmgl.PolygonHierarchy(scCartesian3),
            });

            //添加以插值圖片加載的多邊形
            var primitive = new bmgl.GroundPrimitive({
                geometryInstances: new bmgl.GeometryInstance({
                    geometry: polygonGeom,
                }),
                appearance: new bmgl.Appearance({
                    material: bmgl.Material.fromType("Image", {
                        image: canvas,
                    }),
                }),
            });
            viewer.scene.primitives.add(primitive);

            //計(jì)算外接矩形
            function getRec(array) {
                let xmin, ymin, xmax, ymax;
                for (let i in array) {
                    var coordinates = array[i];
                    var x = coordinates[0];
                    var y = coordinates[1];
                    if (!xmin) {
                        xmin = x;
                    } else {
                        if (x * 1000000 < xmin * 1000000) {
                            xmin = x;
                        }
                    }

                    if (!ymin) {
                        ymin = y;
                    } else {
                        if (y * 1000000 < ymin * 1000000) {
                            ymin = y;
                        }
                    }

                    if (!xmax) {
                        xmax = x;
                    } else {
                        if (x * 1000000 > xmax * 1000000) {
                            xmax = x;
                        }
                    }

                    if (!ymax) {
                        ymax = y;
                    } else {
                        if (y * 1000000 > ymax * 1000000) {
                            ymax = y;
                        }
                    }
                }
                // console.log(xmin, ymin, xmax, ymax);
                // return [
                //     [xmin, ymin],
                //     [xmax, ymax],
                // ];
                return [xmin, ymin, xmax, ymax];
            }


            //創(chuàng)建點(diǎn)位
            function createPoint(data) {
                viewer.entities.add({
                    position: bmgl.Cartesian3.fromDegrees(...data.pos),
                    point: {
                        pixelSize: 6,
                        color: bmgl.Color.RED,
                        outlineColor: bmgl.Color.WHITE,
                        outlineWidth: 2,
                    },
                    label: {
                        text: data.val + "",
                        fillColor: bmgl.Color.WHITE,
                        pixelOffset: new bmgl.Cartesian2(6, 14),
                        font: "16px 楷體",
                    },
                });
            }

            //創(chuàng)建四川省邊界的發(fā)光線
            function createpolyline(data) {
                viewer.entities.add({
                    polyline: {
                        positions: data,
                        material: new bmgl.PolylineGlowMaterialProperty({
                            glowPower: 0.2,
                            color: bmgl.Color.ORANGE,
                        }),
                        width: 1.0,
                    },
                });
            }

            //返回需要呈現(xiàn)的顏色
            function getColor(colors, z) {
                var len = colors.length;
                let minVal = colors[0].min;
                for (var i = 0; i < len; i++) {
                    minVal = Math.min(minVal, colors[i].min);
                    if (z >= colors[i].min && z < colors[i].max)
                        return colors[i].color;
                }
                if (z <= minVal) {
                    return colors[0].color;
                } else {
                    return colors[len - 1].color;
                }
            }
            
            //繪制圖片 
            function drawImg(canvas, grid, xlim, ylim, colors) {
                let ctx = canvas.getContext("2d");
                ctx.clearRect(0, 0, canvas.width, canvas.height);

                let range = [
                    xlim[1] - xlim[0],
                    ylim[1] - ylim[0],
                    grid.zlim[1] - grid.zlim[0],
                ];
                let i, j, x, y, z;
                let n = grid.length;
                let m = grid[0].length;
                let wx = Math.ceil(
                    (grid.width * canvas.width) / (xlim[1] - xlim[0])
                );
                let wy = Math.ceil(
                    (grid.width * canvas.height) / (ylim[1] - ylim[0])
                );
                for (i = 0; i < n; i++) {
                    for (j = 0; j < m; j++) {
                        if (grid[i][j] == undefined) continue;
                        x =
                            (canvas.width *
                                (i * grid.width + grid.xlim[0] - xlim[0])) /
                            range[0];
                        y =
                            canvas.height *
                            (1 -
                                (j * grid.width + grid.ylim[0] - ylim[0]) /
                                    range[1]);
                        z = (grid[i][j] - grid.zlim[0]) / range[2];
                        if (z < 0.0) z = 0.0;
                        if (z > 1.0) z = 1.0;
                        ctx.fillStyle = getColor(colors, grid[i][j]);
                        ctx.fillRect(
                            Math.round(x - wx / 2),
                            Math.round(y - wy / 2),
                            wx,
                            wy
                        );
                    }
                }
            }
        </script>
    </body>
</html>
        
国产久_亚欧精品一区_久久亚洲美女_99精品在线观看_日韩成人三级_久久精品久久久久
<code id="kseui"><acronym id="kseui"></acronym></code>
  • <abbr id="kseui"><tbody id="kseui"></tbody></abbr>
  • <button id="kseui"></button>
  • 你懂的网址一区二区三区| 精品视频在线观看| 在线观看欧美一区| 亚洲人成在线影院| 亚洲一区免费看| 久久国产一区| 国产精品大片| 国产99午夜精品一区二区三区| 欧美人与性禽动交精品| 伊人激情综合| 国产伦精品一区二区| 欧美日韩一区二区视频在线| 久久午夜电影| 一区在线电影| 91亚洲精品丁香在线观看| 色吧亚洲视频| 美女国产一区| 中文一区一区三区免费| 91久久伊人青青碰碰婷婷| 日韩中文一区| 欧美亚洲在线| 在线天堂一区av电影| 久久亚洲综合网| 欧美激情第10页| 国产精华一区| 在线成人h网| 精品婷婷色一区二区三区蜜桃| 欧美视频福利| 欧美一区二区在线视频观看| 亚洲欧美网站| 欧美成人有码| 精品一区二区三区日本| 亚洲一级在线| 国内综合精品午夜久久资源| 九色一区二区| 免费亚洲婷婷| 亚洲国产精品视频一区| 亚洲蜜桃av| 久久国产精品一区二区三区四区| 国产精品久久久亚洲一区| 欧美激情性爽国产精品17p| 精品视频导航| 97在线中文字幕| 中文在线一区| 韩日精品在线| 中文字幕一区二区三区乱码 | 久久久福利视频| 中日韩在线视频| 樱花www成人免费视频| 精品网站在线看| 老司机精品导航| 性久久久久久| 亚洲制服少妇| 国产精品久久久久久久久婷婷| 欧美午夜不卡| 国产精品v欧美精品v日本精品动漫| 欧美日韩精品不卡| 精品无人区一区二区三区| 国产精品初高中精品久久| 久久精品三级| 久久香蕉精品| 久久精品电影| 久久人人超碰| 99re国产| 狠狠色伊人亚洲综合网站色| 久久久av水蜜桃| 91精品久久久久久蜜桃| 91偷拍精品一区二区三区| 久久亚洲精品伦理| 成人在线视频电影| 国内一区在线| 女同一区二区| 日本欧美精品久久久| 特级西西444www大精品视频| 亚洲成人蜜桃| 欧美片第1页综合| 激情综合激情| 欧美一级播放| 国产精品福利视频| 国内精品二区| 亚洲精品国产精品国自产观看| 污视频在线免费观看一区二区三区 | 亚洲日韩视频| 国产精品一区视频| 米奇777在线欧美播放| 99在线影院| 蜜桃在线一区二区三区精品| 欧美日韩国产一二| 欧美 日韩 国产在线| 在线观看亚洲| 欧美一区=区| 狠狠色综合一区二区| 亚洲欧洲精品一区| 亚洲精品女人| 高清av免费一区中文字幕| 久久精品女人的天堂av| 中文字幕欧美日韩一区二区三区| 亚洲午夜精品国产| 玖玖在线精品| 亚洲精品久久区二区三区蜜桃臀| 韩国在线视频一区| 成人免费在线一区二区三区| 亚洲激情一区二区| 国产精品久久亚洲7777| 久久精品99久久| 亚洲一级二级| 国产福利久久精品| 欧美一区免费视频| 久久精品免费| 在线视频不卡国产| 波多野结衣成人在线| 亚洲啪啪av| 久久人人超碰| 欧美国产高潮xxxx1819| 99电影在线观看| 欧美日本亚洲| 久久婷婷人人澡人人喊人人爽| 一区久久精品| 久久综合伊人77777麻豆| 亚洲欧洲一二三| 视频在线精品一区| 久久久噜噜噜| 狠狠综合久久| 日本欧美精品久久久| 精品婷婷色一区二区三区蜜桃| 在线国产伦理一区| 夜夜爽av福利精品导航| 51精品国产人成在线观看 | 国偷自产av一区二区三区小尤奈| 欧美12av| 亚洲欧美日韩综合国产aⅴ| 日本精品二区| 久久久久久亚洲精品杨幂换脸| 久久精品aaaaaa毛片| 亚洲精品九九| 亚洲精品一区二区三| 狂野欧美性猛交xxxx巴西| 欧美国产91| 免费国产一区| 成人永久免费| 亚洲欧美日韩视频二区 | 亚洲日本激情| 亚洲bbw性色大片| 国产一区二区三区黄| 亚洲一区精品视频| 欧美午夜精品理论片a级大开眼界| 精品视频一区二区| 99精品国产高清在线观看| 最新国产拍偷乱拍精品| 午夜精品一区二区三区四区| 精品一区二区三区自拍图片区| 久久riav二区三区| 在线精品观看| 欧美精品99| 在线观看精品视频| 麻豆亚洲一区| 狠狠色综合欧美激情| 久久综合一区二区三区| 亚洲影院在线| 亚洲综合不卡| 亚洲女人av| 久久福利一区| 一区二区三区福利| 99在线精品免费视频九九视| 最新日韩在线| 亚洲久久一区| 亚洲激情不卡| 国产精品久久久久毛片大屁完整版| 亚洲茄子视频| 久久国产主播| 粉嫩精品一区二区三区在线观看 | 日本一区二区三区www| 久热这里只精品99re8久| 久久人人爽爽人人爽人人片av| 国产一区二区黄色| 鲁片一区二区三区| 亚洲免费视频一区| 中文字幕中文字幕在线中心一区| 欧美91视频| 最新亚洲视频| 69174成人网| 久久本道综合色狠狠五月| 日本公妇乱淫免费视频一区三区| 日韩精品资源| 激情欧美丁香| 久久一日本道色综合久久| 成人自拍网站| 免费成人看片网址| 欧美成人有码| 国产精品一区在线观看| 国产66精品久久久久999小说| 麻豆传媒一区二区| 欧美国产专区| 久久国产精品亚洲va麻豆| 久久综合九九| 亚洲午夜91| 国产精品三区www17con| 这里只有精品66| 亚洲一级在线| 日本精品一区二区|