CesiumJS 案例 P35:添加图片图层(添加图片数据)

CesiumJS

  • CesiumJS 是一个开源的 JavaScript 库,它用于在网页中创建和控制 3D 地球仪(地图)
  1. CesiumJS 官网:https://www.cesium.com/

  2. CesiumJS 下载地址:https://www.cesium.com/platform/cesiumjs/

  3. CesiumJS API 文档:https://cesium.com/learn/cesiumjs/ref-doc/index.html


添加图片图层(添加图片数据)

html 复制代码
<!DOCTYPE html>
<html lang="en">
	<head>
		<meta charset="UTF-8" />
		<meta name="viewport" content="width=device-width, initial-scale=1.0" />
		<title>ImageryProvider - 添加图片图层(添加图片数据)</title>
		<link rel="stylesheet" href="../js/Cesium-1.112/Build/Cesium/Widgets/widgets.css" />
		<style>
			* {
				margin: 0;
				padding: 0;
				box-sizing: border-box;
			}

			html,
			body {
				width: 100%;
				height: 100%;
			}

			.container {
				width: 100%;
				height: 100%;
			}
		</style>
	</head>

	<body>
		<div id="container"></div>
	</body>

	<script src="../js/Cesium-1.112/Build/Cesium/Cesium.js"></script>
	<script>
		const viewer = new Cesium.Viewer("container");

		const west = 0; // 西经(西经为负)
		const south = 0; // 南纬(南纬为负)
		const east = 10; // 东经(东经为正)
		const north = 10; // 北纬(北纬为正)

		imageToBase64("../img/test.jpg", (base64) => {

			// 创建图片图层
			const imageryProvider = new Cesium.SingleTileImageryProvider({
				url: base64,
				rectangle: Cesium.Rectangle.fromDegrees(west, south, east, north),
			});

            const imageryLayer = viewer.imageryLayers.addImageryProvider(imageryProvider);
		});

		function imageToBase64(url, callback) {
			const img = new Image();
			img.crossOrigin = "Anonymous";
			img.onload = function () {
				const canvas = document.createElement("canvas");
				const ctx = canvas.getContext("2d");
				canvas.width = img.width;
				canvas.height = img.height;
				ctx.drawImage(img, 0, 0);

				const base64 = canvas.toDataURL("image/jpeg");
				callback(base64);
			};
			img.src = url;
		}
	</script>
</html>
相关推荐
IT_陈寒19 分钟前
Redis大key删除为什么会导致服务卡顿?我的线上事故复盘
前端·人工智能·后端
系统集成-鹰翔19 分钟前
ERP图片改名后仍命中识别缓存:缓存键、十分钟到期与调用计数
javascript·经验分享·后端
用户2705077725241 小时前
MCP 最小 Server 实测:3 个 JSON-RPC 报错与修法
前端
用户499335025071 小时前
一人VIP账号多人共用:Web 代理里的会话共享怎么实现
前端
用户老李1 小时前
无线电自学教程 05:第一台收音机——从矿石机到 SDR
前端
IPIPD1 小时前
Node.js请求遇到503怎么重试?先解析Retry-After,再做有上限退避
前端
葡萄城技术团队1 小时前
dsh-spreadjs-editor 的集成链路:把 SpreadJS Designer 嵌进 Agent 工作台
前端
FlyWIHTSKY2 小时前
vue2和vue3有什么区别,用法上有哪些区别
前端·javascript·vue.js
码云之上2 小时前
10 颗一模一样的「Edit」:中后台 Web Agent 怎么找到对的那一行
前端·人工智能·浏览器
量化分析码农3 小时前
【Python量化多因子实战 04】因子暴露不是 alpha:市值与行业中性化实战
前端·后端