zoukankan      html  css  js  c++  java
  • 三维叠加标签代码

     function addLabelEntity(data) {
        
        // viewer.entities.removeAll();
        for (var i = 0; i < data.length; i++) {
            var text;
            if (data[i].NAME) {
                text = data[i].NAME;
            }
    
            var x = parseFloat(data[i].SMX);
            var y = parseFloat(data[i].SMY);
            var z = parseFloat(data[i].HEIGHT);
            var img = document.getElementById("building");
            // var img = new Image()
            // img.src = "../images/menu-bg.png"
            // img.onload = function(){
            // }
            var wWidth = img.width;
            var wHeight = img.height;
            var canvas = document.createElement("canvas");
            if (canvas == null)
                return false;
            canvas.width = wWidth;
            canvas.height = wHeight;
            //canvas.style.letterSpacing = '30px';
            //获取上下文
            var ctx = canvas.getContext('2d');
    
            // ctx.drawImage(img, 0, 0);
            ctx.drawImage(img, 0, 0, wWidth, wHeight, 0, 0, wWidth, wHeight);
            // 设置字体
            if(text.length>8){
                ctx.font = "55px bold 微软雅黑";
            }else{
                ctx.font = "60px bold 微软雅黑";
            }
            // 设置颜色
            ctx.fillStyle = "#fff";
            // 设置水平对齐方式
            ctx.textAlign = "center";
            // 设置垂直对齐方式
            ctx.textBaseline = "middle";
            
            
            var _w = ctx.measureText(text).width;
            var _h = ctx.measureText(text).height;
            // 绘制文字(参数:要写的字,x坐标,y坐标)
            ctx.fillText(text, wWidth / 2, 70);
            //console.log(ctx);
            var entity = viewer.entities.add({
                name: "theme",
                description: null,
                position: Cesium.Cartesian3.fromDegrees(x, y, z),
                billboard: {
                    image: canvas.toDataURL(),
                    horizontalOrigin: Cesium.HorizontalOrigin.CENTER,
                    verticalOrigin: Cesium.VerticalOrigin.BOTTOM,
                    scaleByDistance: new Cesium.NearFarScalar(500, 0.5, 10000, 0.0),
                    //  32, // default: undefined
                    // height: 32, // default: undefined
                    // pixelOffset: new Cesium.Cartesian2(0.0, -10.0),
                    // pixelOffsetScaleByDistance: new Cesium.NearFarScalar(100, 15, 5000, 0.0),
                    // color: Cesium.Color.WHITE,
                    // disableDepthTestDistance: Number.POSITIVE_INFINITY//返回正无穷大
                }
            });
        }
    }
  • 相关阅读:
    winform 通过左右键,或enter键做类似Tab键的功能
    向表中插入查询结果
    创建Oracle job的一些注意事项
    多数据库独立主机的配置
    图形码验证
    JavaScript中的trycatchfinally
    ASP.Net生成后台脚本的问题的解决办法
    10个你未必知道的CSS技巧
    学习JQuery的$.Ready()与OnLoad事件比较[转]
    风雨20年:我所积累的20条编程经验[csdn]
  • 原文地址:https://www.cnblogs.com/wanlige/p/13260133.html
Copyright © 2011-2022 走看看