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

顯示源代碼
3d行政區(qū)域
 開發(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/';
            window.viewer = new bmgl.Viewer("container", {
                mapId: "bigemap.dc-satellite",
            });
            viewer.BMWidget.screenSpaceEventHandler.removeInputAction(
                bmgl.ScreenSpaceEventType.LEFT_DOUBLE_CLICK
            );
            viewer.BMWidget.screenSpaceEventHandler.removeInputAction(
                bmgl.ScreenSpaceEventType.LEFT_CLICK
            );
            // 是否支持圖像渲染像素化處理
            if (bmgl.FeatureDetection.supportsImageRenderingPixelated()) {
                viewer.resolutionScale = window.devicePixelRatio;
            }
            viewer.scene.postProcessStages.fxaa.enabled = true;
            //   viewer.imageryLayers.removeAll()
            var promise = bmgl.KmlDataSource.load("/bmgl/kml/lsk.kml");
            promise
                .then(function (dataSource) {
                    // viewer.dataSources.add(dataSource);
                    //Get the array of entities
                    window.arrays = [];
                    window.all = [];
                    var entities = dataSource.entities.values;
                    for (var i = 0; i < entities.length; i++) {
                        var entity = entities[i];
                        if (entity.polygon) {
                            var name = entity.name;
                            let aa =
                                entity.polygon.hierarchy.getValue().positions;
                            window.arrays = [];
                            aa.forEach((item) => {
                                var cartographic =
                                    bmgl.Cartographic.fromCartesian(item);
                                window.arrays.push([
                                    bmgl.Math.toDegrees(cartographic.longitude),
                                    bmgl.Math.toDegrees(cartographic.latitude),
                                ]);
                            });
                            // console.log(`window`, window.arrays);
                            getRec(window.arrays);
                            window.all.push(getRec(window.arrays));
                        }
                    }
                    // console.log(`all`, window.all.flat());
                    let aa = getRec(window.all.flat()).flat();
                    // console.log(`zzz`, aa);
                    const rec = {
                        rectangle: new bmgl.RectangleGraphics({
                            coordinates: new bmgl.Rectangle(
                                bmgl.Math.toRadians(aa[0]),
                                bmgl.Math.toRadians(aa[1]),
                                bmgl.Math.toRadians(aa[2]),
                                bmgl.Math.toRadians(aa[3])
                            ),
                            material: new bmgl.ImageMaterialProperty({
                                image: "/bmgl/images/touming.png",
                                repeat: new bmgl.Cartesian2(1, 1),
                                transparent: true,
                                // color: bmgl.Color.WHITE.withAlpha(0.5)
                            }),
                            //   show:false,
                            extrudedHeight: 2100,
                            fill: true,
                            // shadows:ShadowMode.ENABLED
                            // height: 2000
                            // zIndex: 666
                            // outline: true,
                            // outlineColor: bmgl.Color.RED,
                            // heightReference: bmgl.HeightReference.CLAMP_TO_GROUND
                        }),
                    };

                    drawLine();
                    drawWall();
                    viewer.entities.add(rec);
                    viewer.flyTo(viewer.entities);
                })
                .otherwise(function (error) {
                    window.alert(error);
                });
            //繪制外接矩形
            function getRec(array) {
                let xmin, ymin, xmax, ymax;
                for (let i in array) {
                    const coordinates = array[i];
                    const x = coordinates[0];
                    const 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],
                ];
            }
            //繪制多邊形
            function drawLine() {
                var promise = bmgl.KmlDataSource.load("/bmgl/kml/lskxj.kml");
                promise
                    .then(function (dataSource) {
                        var entities = dataSource.entities.values;
                        var colorHash = {};
                        for (var i = 0; i < entities.length; i++) {
                            var entity = entities[i];

                            if (entity.polygon) {
                                var name = entity.name;

                                //畫多邊形
                                viewer.entities.add({
                                    name: name,
                                    type: "polygon",
                                    polygon: {
                                        hierarchy:
                                            entity.polygon.hierarchy.getValue(),
                                        material: bmgl.Color.AQUA,
                                        width: 10,
                                        // material:bmgl.Color.BLACK.withAlpha(0.1),
                                        extrudedHeight: 2000,
                                        // height: 2100,
                                        fill: true,
                                    },
                                });
                            }
                        }
                    })
                    .otherwise(function (error) {
                        window.alert(error);
                    });
            }
            //繪制頂層的多邊形
            function drawWall() {
                var promise = bmgl.KmlDataSource.load("/bmgl/kml/lskxj.kml");
                promise
                    .then(function (dataSource) {
                        var entities = dataSource.entities.values;
                        var colorHash = {};
                        for (var i = 0; i < entities.length; i++) {
                            var entity = entities[i];

                            if (entity.polygon) {
                                var name = entity.name;
                                console.log(name, "name");
                                //畫多邊形
                                viewer.entities.add({
                                    name: name,
                                    type: "polygon",
                                    polygon: {
                                        hierarchy:
                                            entity.polygon.hierarchy.getValue(),
                                        width: 10,
                                        material:
                                            bmgl.Color.BLACK.withAlpha(0.1),
                                        extrudedHeight: 2160,
                                        // height: 2100,
                                        fill: true,
                                    },
                                });
                            }
                        }
                    })
                    .otherwise(function (error) {
                        window.alert(error);
                    });
            }
            viewer.scene.screenSpaceCameraController.minimumZoomDistance = 100;
            let lastentity = "";
            let handler = new bmgl.ScreenSpaceEventHandler(viewer.scene.canvas);
            //設(shè)置點(diǎn)擊事件
            handler.setInputAction(function (e) {
                var entity = viewer.scene.pick(e.position);
                console.log(entity, "xxx");
                // console.log(lastentity);
                if (entity != undefined) {
                    if (entity.id.type == "polygon") {
                        if (lastentity != "") {
                            lastentity.material = new bmgl.Color(0, 0, 0, 0.1);
                        }
                        lastentity = entity.id.polygon;
                        lastentity.material = new bmgl.Color(0.4, 0, 0, 0.8);
                        console.log(entity.id.name);
                    }
                } else {
                    if (lastentity != "") {
                        lastentity.material = new bmgl.Color(0, 0, 0, 0.1);
                    }
                    lastentity = "";
                }
            }, bmgl.ScreenSpaceEventType.LEFT_CLICK);
        </script>
    </body>
</html>
        
主站蜘蛛池模板: 铸铁平台-焊接平台-划线平台-三维焊接平台厂家-泊头市溪海冶金机械设备有限公司 | 输送机电动滚筒_山东电动滚筒_输送机滚筒_皮带输送机-山东中输输送机械有限公司 | 聚丙烯酰胺,聚合氯化铝,重金属捕捉剂,污泥调理剂,活性氧化铝,生石灰,反渗透阻垢剂,工业葡萄糖,硫酸铝,果壳活性炭,柱状活性炭,蜂窝活性炭,石英砂,锰砂-北京雁归来环保科技有限公司-以真诚为立足之本,以质量为生存之本,愿与海内外同仁共创双赢。雁归来人一路走来,气贯长虹,勇锐盖过怯弱,进取压倒苟安!我们紧扣时代脉搏,专注水处理、继往开来! | 陕西柱塞泵厂家_智能张拉设备_桥梁施工设备_千斤顶_液压分裂棒_液压分裂枪|陕西中拓矿山设备有限公司 | 无锡大型数控龙门铣加工中心,精密焊接件制造,机械设备加工-无锡嘉迅机械科技有限公司 | 郑州环球重工机械有限公司建筑垃圾处理专题网站 | 营销型网站建设_网站设计_网页制作_找北京恒基建网站公司 | 陕西筱润智能科技有限公司 干部人事智能档案柜 智能密集架 智能档案柜 部队选层文件智能柜 智能枪弹柜 财务智能档案柜 边防武警智能密集架 医院智能档案柜 部队选层文件智能柜智能枪弹柜 学校医院文件柜 企事业单位公检法智能文件柜 生产厂家-筱润智能科技有限公司 RFID射频智能密集架 全自动智能选层档案柜 智能密保柜 枪柜部队营房营具床桌椅办公家具 办公用品档案盒设备货架 全自动智能选层柜生产厂家-筱润智能科技有限公司 | 河北新鑫矿冶设备有限公司-河北新鑫矿冶设备有限公司 | 液态硅胶制品厂家_液态硅胶包胶加工_LSR液态硅胶模具厂_液体硅胶注射成型_广东盈泰 | 南京数控折弯机_安徽数控剪板机_数控开槽机-合肥小型液压折弯机系统批发厂家 | 亚澳农机-亚澳南阳农机股份公司,旋耕机,旋播机,旋播施肥机,免耕播种机,旋耕播草多用机,果园机械-首页 | 新一能-配电箱、变频柜、plc控制柜、开关柜生产厂家 | 热熔胶涂布机-青岛三人行机械有限公司 | 无线计量仪表-电力物联网仪表-CE认证电表 | 一次性妇科用品_一次性医疗用品_一次性口腔器械盒_天津市双利医疗器械有限责任公司 | 曙海培训-仿真培训Linux培训html5培单片机培训PCB培训python培训PLC培训C语言培训android培训物联网培训无线电培训欧姆龙培训工业机器人培训5G培训Hadoop培训CFD培训项目外包开发咨询 | 宁波雷豹机电科技有限公司|雷豹冷风机|雷豹工业大风扇|MFC18000|MFC16000|MFC6000|EF3622|EF4222|EF4822|移动工业蒸发式冷风机空气冷却器|大型工业空调扇|雷豹移动式工业大风扇|雷豹大风扇|生产厂家|公司官网 | 重庆化粪池清淘_管道疏通_高压疏通清洗管道_电话:023-68183336,15723234763 | 联塑管代理,联塑管厂家批发,中财管总代理,康泰管代理,康泰管厂家批发-邯郸市中枢贸易有限公司 | 上海律师_上海法律咨询_律师在线咨询网站_上海律师事务所-沪律网 | 泊头市天一泵业有限公司_齿轮泵,高粘度齿轮泵,螺杆泵,三螺杆泵 | 激光清洗机_激光除锈机_激光焊接机 - 上海锡昊激光科技有限公司 激光切管机_等离子切管机_相贯线切管机厂家|服务为先-山东美峰智能设备有限公司 | 联系我们果博东方公司福布斯客服电话 | 矿用三环链|锻打/焊接三环链|矿车万能环|三环链销子-济宁卓力工矿设备有限公司 | 透明膜包装机_三维包装机_上海拓懿机械有限公司 | 智能照明模块_智能照明控制器_照明控制系统_智能调光模块_西安邦华电气工程有限公司 | 青岛家政网【家政港】青岛家政保姆网络服务平台! | 思达测试|山东思达高科机械设备有限公司 | 智能照明模块,智能动力控制器,巨川电气-智能电气领航 | 抛丸机-H型钢结构抛丸机-钢板通过式抛丸机厂家-泓霖喷砂除锈设备 | 煤粉喷枪_高炉喷煤枪_陶瓷喷煤枪-北京耐默公司 | 全自动灌装机械设备-迈驰粉末/颗粒/液体/膏体灌装机械设备流水线生产厂家 | 振动筛_直线振动筛_超声波振动筛-新乡市大汉振动机械有限公司 | 域发官网-皮肤学级头皮养固领先者| 压力试验机,万能试验机-北京大地华宇仪器设备有限公司 官网 | 上海同田生物技术有限公司-逆流色谱供应商和应用技术服务商 | 频闪仪,便携式频闪仪厂家_灯管,频闪仪之父-杭州品拓电子技术有限公司 | 球场地板_运动场地面_体育设施器材_地坪漆工程_项目承接-大上实业(深圳)有限公司 | 无线对讲机系统-中继台-山区隧道信号覆盖-贝亚特 | 企业微信服务商-企业微信crm营销|认证-[朝阳企客通]一款企微管家服务型产品 |