顯示源代碼
                billboard聚合
                 開發(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>
                        <style>
                            body {
                                margin: 0;
                                padding: 0;
                            }
                            #container {
                                position: absolute;
                                top: 0;
                                bottom: 0;
                                width: 100%;
                            }
                            .bmgl-widget-credits {
                                display: none;
                            }
                        </style>
                        <title>Google Map Streets</title>
                    </head>
                    <body>
                        <div id="container"></div>
                
                        <script>
                            bmgl.Config.HTTP_URL = 'http://ua.bigemap.com:30081/bmsdk/';
                            var viewer = new bmgl.Viewer("container", {
                                mapId: "bigemap.dc-satellite",
                            });
                        
                            const  initClusterCollection = (viewer) => {
                                // console.log(bmgl,'bbbb');
                                new bmgl.GeoJsonDataSource()
                                    .load("/bmgl/cluster/poi.json")
                                    .then((dataSource) => {
                                        viewer.dataSources.add(dataSource);
                                        // 設(shè)置聚合參數(shù)
                                        dataSource.clustering.enabled = true;
                                        dataSource.clustering.pixelRange = 60;
                                        dataSource.clustering.minimumClusterSize = 4;
                                        // foreach用于調(diào)用數(shù)組的每個元素,并將元素傳遞給回調(diào)函數(shù)。
                                        dataSource.entities.values.forEach((entity) => {
                                            // console.log(entity);
                                            // 將點拉伸一定高度,防止被地形壓蓋
                                            entity.position._value.z += 50.0;
                                            // 使用大小為64*64的icon,縮小展示poi
                                            entity.billboard = {
                                                image: "/bmgl/cluster/point.png",
                                                width: 32,
                                                height: 32,
                                            };
                                            entity.label = {
                                                // text: "POI",
                                                text:entity._name,
                                                font: "bold 15px Microsoft YaHei",
                                                // 豎直對齊方式
                                                verticalOrigin: bmgl.VerticalOrigin.CENTER,
                                                // 水平對齊方式
                                                horizontalOrigin: bmgl.HorizontalOrigin.LEFT,
                                                // 偏移量
                                                pixelOffset: new bmgl.Cartesian2(-14.0,-28.0),
                                            };
                                        });
                                        // 添加監(jiān)聽函數(shù)
                                        dataSource.clustering.clusterEvent.addEventListener(
                                            function (clusteredEntities, cluster) {
                                                // 關(guān)閉自帶的顯示聚合數(shù)量的標簽
                                                cluster.label.show = false;
                                                cluster.billboard.show = true;
                                                cluster.billboard.verticalOrigin =
                                                    bmgl.VerticalOrigin.BOTTOM;
                
                                                // 根據(jù)聚合數(shù)量的多少設(shè)置不同層級的圖片以及大小
                                                if (clusteredEntities.length >= 20) {
                                                    cluster.billboard.image =
                                                        combineIconAndLabel(
                                                            "/bmgl/cluster/jhGray.png",
                                                            clusteredEntities.length,
                                                            64
                                                        );
                                                    cluster.billboard.width = 72;
                                                    cluster.billboard.height = 72;
                                                    // cluster.billboard.scale = 0.6;
                                                } else if (clusteredEntities.length >= 12) {
                                                    cluster.billboard.image =
                                                        combineIconAndLabel(
                                                            "/bmgl/cluster/jhBlue.png",
                                                            clusteredEntities.length,
                                                            64
                                                        );
                                                    cluster.billboard.width = 64;
                                                    cluster.billboard.height = 64;
                                                    // cluster.billboard.scale = 0.6;
                                                } else if (clusteredEntities.length >= 8) {
                                                    cluster.billboard.image =
                                                        combineIconAndLabel(
                                                            "/bmgl/cluster/jhGreen.png",
                                                            clusteredEntities.length,
                                                            64
                                                        );
                                                    cluster.billboard.width = 56;
                                                    cluster.billboard.height = 56;
                                                    // cluster.billboard.scale = 0.6;
                                                } else {
                                                    cluster.billboard.image =
                                                        combineIconAndLabel(
                                                            "/bmgl/cluster/jhRed.png",
                                                            clusteredEntities.length,
                                                            64
                                                        );
                                                    cluster.billboard.width = 40;
                                                    cluster.billboard.height = 40;
                                                    // cluster.billboard.scale = 0.6;
                                                }
                                            }
                                        );
                                    });
                            };
                
                            // 將使用的圖片和文字聯(lián)合轉(zhuǎn)換為canvas
                            const combineIconAndLabel = (url, label, size) => {
                                // 創(chuàng)建畫布對象
                                let canvas = document.createElement("canvas");
                                canvas.width = size;
                                canvas.height = size;
                                let ctx = canvas.getContext("2d");
                                let promise = new bmgl.Resource.fetchImage(url).then(
                                    (image) => {
                                        try {
                                            ctx.drawImage(image, 0, 0);
                                        } catch (e) {
                                            console.log(e);
                                        }
                                        ctx.fillStyle = bmgl.Color.WHITE.toCssColorString();
                                        ctx.font = "bold 12px Microsoft YaHei";
                                        ctx.textAlign = "center";
                                        ctx.textBaseline = "middle";
                                        ctx.fillText(label, size / 4, size / 4);
                                        // console.log(`ctx`,ctx);  
                                        return canvas;
                                    }
                                );
                                return promise;
                            };
                            
                            // 初始化點位聚合
                            initClusterCollection(viewer)
                        </script>
                    </body>
                </html>
                        
                主站蜘蛛池模板: 日本口工全彩无遮拦漫画大| 精品国产亚洲第一区二区三区| 在线观看www日本免费网站| 久久精品国产屋| 漂亮华裔美眉跪着吃大洋全集| 国产亚洲欧美在线播放网站| 69tang在线观看| 少妇中文字幕乱码亚洲影视| 久久精品无码一区二区www| 正能量网站不用下载免费观看视频软件| 四虎影视在线影院www| 黄色片在线播放| 国内揄拍高清国内精品对白| 丁香婷婷亚洲六月综合色| 日韩成全视频观看免费观看高清| 亚洲精品日韩专区silk| 美国式禁忌3在线观看| 国产成人无码一二三区视频| 91精品国产综合久| 少妇厨房愉情理9仑片视频| 久久国产精品-国产精品| 欧美人体一区二区三区| 伊人久久大香线蕉综合5g| 色噜噜狠狠色综合日日| 国产浮力第一影院| 91精品国产91久久久久久最新| 小信的干洗店1~4| 丰满人体bbw| 日韩免费中文字幕| 亚洲人成电影青青在线播放| 波多野结衣视频在线免费观看| 十分钟在线观看免费视频www| 亚洲综合AV在线在线播放| 黄色一级视频免费观看| 国产精品网址在线观看你懂的| www性久久久com| 成人狠狠色综合| 久久久久亚洲精品男人的天堂| 最新无码a∨在线观看| 亚洲成人免费看| 波多野结衣丝袜诱惑|