顯示源代碼
                billboard聚合2
                 開發(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="https://cdn.bootcdn.net/ajax/libs/jquery/3.7.1/jquery.min.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>
                            var dataSource = new bmgl.CustomDataSource("marker");
                            var viewer = null;
                            var billboard = null;
                
                            bmgl.Config.HTTP_URL = 'http://ua.bigemap.com:30081/bmsdk/';
                            var viewer = new bmgl.Viewer("container", {
                                mapId: "bigemap.dc-satellite",
                                 infoBox:false,
                                selectionIndicator:false,
                            });
                            //取消默認(rèn)的點(diǎn)擊事件
                            viewer.screenSpaceEventHandler.removeInputAction(bmgl.ScreenSpaceEventType.LEFT_DOUBLE_CLICK);
                            createPin();
                            combineListener();
                            function createPin() {
                                viewer.dataSources.add(dataSource);
                                for (let index = 0; index < 100; index++) {
                                    var demoData = {
                                        name: "demo" + index,
                                        position: bmgl.Cartesian3.fromDegrees(
                                            Math.random() * (117 - 116) + 116,
                                            Math.random() * (40 - 39) + 39
                                        ),
                                        billboard: {
                                            show: true, // default
                                            eyeOffset: new bmgl.Cartesian3(0.0, 0.0, 0.0), // default
                                            horizontalOrigin: bmgl.HorizontalOrigin.CENTER, // default
                                            verticalOrigin: bmgl.VerticalOrigin.BOTTOM, // default: CENTER
                                            scale: 1.0, // default: 1.0
                
                                            alignedAxis: bmgl.Cartesian3.ZERO, // default
                                            width: 40, // default: undefined
                                            height: 40, // default: undefined
                                            pixelOffset: new bmgl.Cartesian2(0, 0),
                                        },
                                    };
                                    dataSource.entities.add(demoData);
                                    dataSource.entities.values.forEach((entity) => {
                                        entity.billboard.image = "/offline_data/mark-icon.png"; //圖片配置在public的static目錄下
                                    });
                                    billboard = viewer.entities.add(demoData);
                                }
                            }
                
                            //點(diǎn)聚合功能實(shí)現(xiàn)
                            function combineListener() {
                                dataSource.clustering.enabled = true;
                                dataSource.clustering.pixelRange = 30;
                                dataSource.clustering.minimumClusterSize = 2;
                                dataSource.clustering.clusterEvent.addEventListener(function (
                                    clusteredEntities,
                                    cluster
                                ) {
                                    // 關(guān)閉自帶的顯示聚合數(shù)量的標(biāo)簽
                                    cluster.label.show = false;
                                    cluster.billboard.show = true;
                                    cluster.billboard.id = cluster.label.id;
                                    cluster.billboard.verticalOrigin =
                                        bmgl.VerticalOrigin.BOTTOM;
                                    // 根據(jù)聚合數(shù)量的多少設(shè)置不同層級(jí)的圖片以及大小
                                    if (clusteredEntities.length >= 10) {
                                        cluster.billboard.image = combineIconAndLabel(
                                            "/bmgl/cluster/jhGray.png",
                                            clusteredEntities.length,
                                            64
                                        );
                                        cluster.billboard.width = 60;
                                        cluster.billboard.height = 60;
                                    } else if (clusteredEntities.length >= 6) {
                                        cluster.billboard.image = combineIconAndLabel(
                                            "/bmgl/cluster/jhBlue.png",
                                            clusteredEntities.length,
                                            64
                                        );
                                        cluster.billboard.width = 55;
                                        cluster.billboard.height = 55;
                                    } else if (clusteredEntities.length >= 3) {
                                        cluster.billboard.image = combineIconAndLabel(
                                            "/bmgl/cluster/jhGreen.png",
                                            clusteredEntities.length,
                                            64
                                        );
                                        cluster.billboard.width = 50;
                                        cluster.billboard.height = 50;
                                    } else {
                                        cluster.billboard.image = combineIconAndLabel(
                                            "/bmgl/cluster/jhRed.png",
                                            clusteredEntities.length,
                                            64
                                        );
                                        cluster.billboard.width = 45;
                                        cluster.billboard.height = 45;
                                    }
                                });
                
                                // 創(chuàng)建畫布對(duì)象
                                function combineIconAndLabel(url, label, size) {
                                    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;
                                }
                            }
                        </script>
                    </body>
                </html>
                        
                主站蜘蛛池模板: xxxx日本黄色| 亚洲不卡中文字幕| 青青青手机视频在线观看| 在线中文字幕视频| 中文字幕网在线| 欧美一区二区三区四区视频| 免费少妇荡乳情欲视频| 青草午夜精品视频在线观看| 国产精品成人无码久久久| 一二三四在线观看免费高清视频| 日韩人妻系列无码专区| 亚洲欧美人成综合导航| 精品无码黑人又粗又大又长| 国产小视频91| 18禁高潮出水呻吟娇喘蜜芽| 好男人好资源在线影视官网 | 黑白禁区高清免费观看全集电视剧| 大象视频在线免费观看| 中文字幕在线看片| 日韩精品无码中文字幕一区二区| 亚洲欧美黄色片| 精品人人妻人人澡人人爽人人| 国产免费一区二区三区VR| 131的美女午夜爱爱爽爽视频| 好紧好大好爽14p| 丰满少妇又爽又紧又丰满在线观看| 月夜直播手机免费视频高清 | 亚洲国产成人久久综合区| 男男车车的车车网站免费| 国产99久久久久久免费看| 成年黄网站色大免费全看| 国产超碰人人模人人爽人人喊| а√天堂中文资源| 无码一区二区波多野结衣播放搜索 | 未满十八18禁止免费无码网站| 亚洲熟妇色自偷自拍另类| 真实国产乱子伦对白视频| 四虎1515hm免费国产| 被夫上司强迫的女人在线| 国产成人无码aa精品一区| 福利视频757|