Cesium加载带有背景图(包含多个背景图,图标和文字并排)的billboard
思路:如果是简单的背景加文字,背景图会把文字挡住,又或者是背景图要有图标加文字,这时需要用canvas将背景图,图标和文字合并成一张图片,加载billboard的时候直接加载合成之后的图片即可。
let canvas = document.createElement("canvas");
canvas.width = 100;
canvas.height = 30;
let context = canvas.getContext("2d");
context.rect(0, 0, canvas.width, canvas.height);
let bgImg = new Image();
bgImg.src = require("../img/bg.png"); // 背景图的url
bgImg.crossOrigin = "Anonymous";
bgImg.onload = () => {
context.drawImage(bgImg, 0, 0, 100, 30);
let img = new Image();
img.src = require("../img/icon.png"); // 需要合进去的图片url
img.crossOrigin = "Anonymous";
img.onload = () => {
// 在这里加入文字标签
context.fillStyle = '#ffffff'; // 设置文字的填充颜色
context.font = 'italic 15px Georgia'; // 设置文字的填充样式
context.fillText("文本内容", 10, 20);
context.drawImage(img, 0, 0, 16, 16);
let base64 = canvas.toDataURL("image/png");
this.viewer.entities.add({
position: Cesium.Cartesian3.fromDegrees(Number(lng), Number(lat), 0),
billboard: {
image: base64,
heightReference: Cesium.HeightReference.CLAMP_TO_GROUND,
verticalOrigin: Cesium.VerticalOrigin.BOTTOM,
disableDepthTestDistance: Number.POSITIVE_INFINITY,
pixelOffset: new Cesium.Cartesian3(0, 0), //偏移量
}
});
};
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· winform 绘制太阳,地球,月球 运作规律
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· AI 智能体引爆开源社区「GitHub 热点速览」
· 写一个简单的SQL生成工具