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

顯示源代碼
billboard聚合
 開發文檔
            <!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);
                        // 設置聚合參數
                        dataSource.clustering.enabled = true;
                        dataSource.clustering.pixelRange = 60;
                        dataSource.clustering.minimumClusterSize = 4;
                        // foreach用于調用數組的每個元素,并將元素傳遞給回調函數。
                        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),
                            };
                        });
                        // 添加監聽函數
                        dataSource.clustering.clusterEvent.addEventListener(
                            function (clusteredEntities, cluster) {
                                // 關閉自帶的顯示聚合數量的標簽
                                cluster.label.show = false;
                                cluster.billboard.show = true;
                                cluster.billboard.verticalOrigin =
                                    bmgl.VerticalOrigin.BOTTOM;

                                // 根據聚合數量的多少設置不同層級的圖片以及大小
                                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;
                                }
                            }
                        );
                    });
            };

            // 將使用的圖片和文字聯合轉換為canvas
            const 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;
            };
            
            // 初始化點位聚合
            initClusterCollection(viewer)
        </script>
    </body>
</html>
        
主站蜘蛛池模板: 青砖厂家,青瓦价格-河北祥庆烧结瓦有限公司 | 联智通达_工控一体机_工业触摸一体机_工业一体机_工业触控一体机_POS机主板_工控主板_国产化主板_RK3588主板厂商-联智通达 | 混凝土修补-清水混凝土保护剂-仿清水混凝土-混凝土装修-混凝土色差处理-混凝土色差修复剂-德州唐荣建筑装饰工程有限公司 | 汽车智能防撞系统_智能刹车_77G毫米波雷达_麒云科技疲劳驾驶预警 | 企业头条—优府网企业自媒体| 长春互联网运营值选星广传媒,长春短视频运营,长春新媒体运营,长春互联网运营,长春抖音运营,吉林视频号代运营,吉林快手代运营,短视频推广公司,公众号运营,微博运营,新媒体运营 | 江苏广分检测技术有限公司、电力安全工具检测、苏州绝缘工具检测、昆山电力安全工具检测-广分检测技术(苏州)有限公司 | 食品油炸机_葱酥油炸机_蒜酥油炸机-山东世联机械厂家 | 水表_智能电表_抄表软件_ic卡水控机_电磁水表厂家-深圳市华熙仪数码科技有限公司 | 天津实验室纯水机-GMP认证制药纯化水设备-天津开发区瑞尔环保科技有限公司 | 制砂机-合金-耐磨锤头-耐磨衬板-铸造件厂家-巩义市豫园宏宇铸造有限公司 | 文化艺术网-专注文化,服务艺术 温州网络公司_网站建设_网络营销策划_阿里淘宝店铺服务-温州聚欣网络科技有限公司 | 泰州阳光会计服务有限公司官网-泰州公司注册|泰州代理记账 | 思沃普智能会议预约管理系统-视频会议管理-信息发布-访客管理-会议运维-会议支持-工位管理系统 | 南通出国劳务公司-如东海外经济技术合作有限公司-启东,海门,如皋,海安出国劳务 | 家用座椅电梯 斜挂升降平台 无障碍升降机 残疾人升降机的生产厂家超易达机械 | 喷雾式干燥机-真空桨叶干燥机-桨叶干燥器-常州力马干燥科技有限公司 | 日本国际高中学校招生【立学仕日本留学服务】日语中学学校|美术生|艺术生|高中生|本科|研究生|语言学校留学择校申请 | 潍坊晨硕机械设备有限公司| 视频制作_产品宣传片拍摄_二维动画制作公司-深圳火牛传媒 | 氢能展,氢能展会,燃料电池展,加氢设备_氢气储运_制氢设备_氢燃料汽车_加氢站成套设备 | 监控工程,安防监控公司,北京监控安装,北京安装监控,安装摄像头,北京监控维保,监控施工,北京监控维修,监控弱电工程,监控器安装,监控维护保养,监控工程设计,北京监控设备维修,监控报警安装,北京北方合力科技有限公司 | 中科先农农业(河北)智能设备有限责任公司 | 美国渗透压仪-PSI渗透压仪|华泰和合| 湖州网站建设_湖州网络公司_湖州后普网络科技有限公司 | 云南打砂机_昆明制砂机_云南砂石生产线_昆明洗砂机_昆明除尘设备_云南昆明滇重矿山机械设备有限公司 | 自恢复保险丝_贴片保险丝_插件保险丝_力特保险丝_力特经销商_SMD贴片保险丝_一次性保险丝厂家—深圳市集电通实业有限公司 | 推台锯_多片锯_圆木推台锯_方木多片锯_圆木多片锯-河北茂业机械有限公司 | 疝灯试验箱-有风源淋雨-汽车盐雾室-无锡苏南试验设备有限公司 | 履带吊租赁-履带吊出租-出租履带吊车-出租履带吊-吊车出租-履带吊出租公司 | 龙淼环保-旋流-喷淋塔,高温布袋,脉冲布袋-单机-滤筒除尘器,活性炭吸附箱,催化燃烧设备,除尘器配件-沧州龙淼环保设备制造有限公司 | 实验室冷水机-冷却循环水系统-深圳市达沃西制冷设备厂 | 行域人才网-垂直行业领域招聘首选的专业人才网,分行业招聘就上行域人才网 | 济宁市天众机械有限公司_机械加工,电力产品,冶金产品,造纸机械 | 中超直播_中超直播在线直播_中超直播免费直播视频直播-24直播网 中标通国际认证(深圳)有限公司-知识产权管理体系认证-湖北知识产权贯标 | 山东中橡新材料有限公司-专业色素炭黑厂家-生产销售各种色素炭黑-用途广泛-价格优势-供应稳定 | 旋转补偿器-专注套筒三维球形补偿器定制生产厂家-伸缩接头价格_巩义市新华丰管道设备有限公司 | 览众房车,房车, 房车厂家, 房车价格, 房车图片,, 四驱房车, 皮卡房车, 越野房车, 依维柯房车, 国产房车, 自动挡房车, | 上海机械加工-机械加工-精密机械加工-上海欧野精工机械有限公司 上海慧泰仪器制造有限公司_一体型马弗炉-可控真空干燥箱-强光稳定性试验箱 | 夏令营报名中心-军事夏令营哪家好-青少年夏令营推荐-中小学夏令营活动-夏令营报名中心 | 网带输送机_皮带_滚筒_链板输送机_不锈钢输送链条生产厂家-宁津县鸿昶机械设备有限公司 |