BIGEMAP卫星地图_高清卫星地图_北斗高清地图_地图软件_矢量地图数据_专题地图

顯示源代碼
billboard聚合2
 開發文檔
            <!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,
            });
            //取消默認的點擊事件
            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);
                }
            }

            //點聚合功能實現
            function combineListener() {
                dataSource.clustering.enabled = true;
                dataSource.clustering.pixelRange = 30;
                dataSource.clustering.minimumClusterSize = 2;
                dataSource.clustering.clusterEvent.addEventListener(function (
                    clusteredEntities,
                    cluster
                ) {
                    // 關閉自帶的顯示聚合數量的標簽
                    cluster.label.show = false;
                    cluster.billboard.show = true;
                    cluster.billboard.id = cluster.label.id;
                    cluster.billboard.verticalOrigin =
                        bmgl.VerticalOrigin.BOTTOM;
                    // 根據聚合數量的多少設置不同層級的圖片以及大小
                    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;
                    }
                });

                // 創建畫布對象
                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>
        
主站蜘蛛池模板: 新能源洗扫车、新能源压缩垃圾车_新能源路面养护车_电动树叶收集车_电动扫地机_电动洗地机_高尔夫球车 | 湖南视频会议设备厂家|长沙视频会议设备安装型号齐全找湖南日恒智能工程有限公司 | 河北博隆环保科技有限公司-甲醛检测_甲醛治理_光触媒 | 物流系统?货代系统?国际快递/专线/小包系统首选?哲盟软件 | 银联POS机_银联微信支付宝刷卡POS机_外币POS机_移动POS机办理安装——谷骐科技 | 青田人才网_青田招聘网_求职找工作平台 | 文件管理系统-文件管理软件-文档管理系统-文档管理软件-档案管理系统-档案管理软件 - 致得软件 | 江苏工业双氧水_工业亚硝酸钠的作用与用途_工业双氧水厂家-江苏连云港嘉一化工厂 | 鲁氏罗茨风机-三叶罗茨鼓风机厂家-沉水式鼓风机-[瑞柘环保] | 桥梁支座更换_桥梁检测车租赁_高空作业车出租_支座更换_伸缩缝安装_隧道防水_养护加固_维修_出租_衡水庆兴桥梁养护工程有限公司 桥梁养护|桥梁维修加固|隧道裂缝修补|支座更换|管道堵水气囊|衡水众拓路桥养护有限公司 | 螺旋钢管厂家,临沂瑞源工贸有限公司 | 陶瓷复合钢管-专业提供江苏陶瓷钢管和陶瓷内衬复合钢管的生产厂家 | 企业头条—优府网企业自媒体| 悬挂式小鼠笼架,植物标本采集箱,昆虫标本盒厂家-北京合力科创科技发展有限公司 | 天津止回阀-止回阀报价/哪家好-天津蝶阀/进口阀门/通风蝶阀批发-闸阀阀门/球阀生产厂家-天津凯维斯阀门制造 | 湖南净声源环保科技有限公司是一家专业从事噪声治理和建筑声学设计生态环境综合治理服务的企业,专业从事株洲电梯隔音治理,湘潭中央空调降噪处理,衡阳邵阳冷却塔噪音治理,岳阳常德大型风机噪声隔音降噪,张家界空压机噪声治理,益阳配电房变压器噪声治理,专业郴州永州工厂企业车间噪声治理,怀化娄底专业机械设备减振降治理,武汉噪音治理隔音降噪公司,孝感噪音治理,立式球磨机的噪声控制,专业隔音降噪公司,、以及各类机械动力设备减振降噪噪声治理的公司,同时为客户提供咨询与解决方案 | 深圳展厅设计_产业园区展馆设计_展馆设计公司_健康产业展馆设计_展厅设计哪家好_华竣国际 | 上海宽带安装-上海宽带办理-400电话-包月电话-靓号 | 形创(CREAFORM)3D扫描仪|三维检测|三维数字化处理|3D设备租赁|3D打印|——北京中显恒业仪器仪表有限公司 | 湖南净声源环保科技有限公司是一家专业从事噪声治理和建筑声学设计生态环境综合治理服务的企业,专业从事株洲电梯隔音治理,湘潭中央空调降噪处理,衡阳邵阳冷却塔噪音治理,岳阳常德大型风机噪声隔音降噪,张家界空压机噪声治理,益阳配电房变压器噪声治理,专业郴州永州工厂企业车间噪声治理,怀化娄底专业机械设备减振降治理,武汉噪音治理隔音降噪公司,孝感噪音治理,立式球磨机的噪声控制,专业隔音降噪公司,、以及各类机械动力设备减振降噪噪声治理的公司,同时为客户提供咨询与解决方案 | 烟台废旧物资回收,烟台废品回收,烟台物资回收-烟台金泰再生资源有限公司 | 学校直饮水机-反渗透纯水设备-家用净水器厂家-广州颖圣能源设备 学校洗碗机-郑州洗碗机厂家-商用洗碗机-郑州旭申环保科技有限公司 | 宁波科迈尔工程机械有限公司-履带,底盘 | 三机一体除湿干燥机,色母机,称重式拌料机,工业冻水机,中央集中供料-东莞市瑞达机械科技有限公司(瑞达国际) | 银泰洁净--净化工程总承包,20年精耕细作,专为净化而来_银泰洁净--净化工程总承包,20年精耕细作,专为净化而来 | 专利申请|知识产权贯标|商标提异议|国外专利申请-润平知识产权 | 天津印刷_天津印刷厂_天津印刷公司_天津包装盒厂家_天津包装盒印刷厂_七层共挤膜厂家_彩色印刷_画册印刷_礼品盒定做 _七层共挤膜_食品真空袋-欢迎访问嘉联包装官网! | 注册公司计|代理记账|临港招商_上海临港商盟官网 | 免费照片视频制作软件_照片做成视频的软件_制作照片视频的软件 - 万彩影像大师官网 | 水表_智能电表_抄表软件_ic卡水控机_电磁水表厂家-深圳市华熙仪数码科技有限公司 | 耀美软瓷施工队-13638350103-专注于软瓷施工勾缝的贴软瓷施工队 - 软瓷,软瓷施工,软瓷勾缝,软瓷怎么施工,软瓷怎么勾缝,贴软瓷,软瓷施工队 | 液压万能试验机-液压式万能试验机-万能试验机厂家-济南鸿君试验机 | 江苏科星新材料有限公司 - 南通科星化工股份有限公司 - 南通星奇新材料有限公司 | 直流屏|青岛直流屏|直流屏电池-世界500强艾默生直流屏标准生产厂家赛里斯能源科技有限公司 | 纸袋胶-糊盒胶-礼盒胶-裱纸胶-水性喷胶-东莞市美好化工有限公司 纸袋机|多层纸袋机|高速纸袋机|无锡市天天友情机械有限公司 | 快速卷帘门-电动卷帘门-快速堆积门-快速门厂家-任丘市康速机电设备有限公司 | 免费的动态思维导图软件,脑图大师,思维导图制作软件 - 万彩脑图大师官网 | 水处理设备_纯净水设备_软化水设备_反渗透水处理设备「陕西甘肃青海宁夏新疆」认准海川环保 | 郑州空调维修_郑州中央空调维修_空调清洗维保-郑州大晟机电设备安装工程有限公司 | 远程供电系统-电源发生器-隔离电源转换器-深圳市安博特电源设备有限公司 | 移动破碎站-洗沙机-球磨制砂机-污泥处理-青州冠诚重工机械有限公司 |