首页 > 其他分享 >CesiumJS 案例 P11:添加图片图层异常、添加标记、添加标记并指定大小、添加标记并指定原点

CesiumJS 案例 P11:添加图片图层异常、添加标记、添加标记并指定大小、添加标记并指定原点

时间:2024-10-29 13:47:51浏览次数:4  
标签:const 标记 viewer 100% 指定 add 添加 Cesium new

CesiumJS

  • CesiumJS API:https://cesium.com/learn/cesiumjs/ref-doc/index.html

  • CesiumJS 是一个开源的 JavaScript 库,它用于在网页中创建和控制 3D 地球仪(地图)


一、添加图片图层异常

<!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 test1 = () => {
			const imageryProvider = new Cesium.SingleTileImageryProvider({
				url: "",
			});

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

			// 异常
			// An error occurred in "tT": Failed to load image : The source image could not be decoded.
			// An error occurred in "tT": Failed to obtain image tile X: 0 Y: 0 Level: 0.
		};

        const test2 = () => {
			const imageryProvider = new Cesium.SingleTileImageryProvider({
				url: null,
			});

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

			// 异常
            // An error occurred in "tT": Failed to obtain image tile X: 0 Y: 0 Level: 0.
		};
        
        test2();
	</script>
</html>


二、添加标记

<!DOCTYPE html>
<html lang="en">
	<head>
		<meta charset="UTF-8" />
		<meta name="viewport" content="width=device-width, initial-scale=1.0" />
		<title>Billboard - 添加标记</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 billboards = viewer.scene.primitives.add(new Cesium.BillboardCollection());

		const billboard = billboards.add({
			image: "../img/marker-icon.png",
			position: Cesium.Cartesian3.fromDegrees(-75.59777, 40.03883),
		});

		const entity = viewer.entities.add({
			position: Cesium.Cartesian3.fromDegrees(-75.59777, 40.03883),
			point: {
				pixelSize: 5,
				color: new Cesium.Color(0, 1, 0, 1),
			},
		});
	</script>
</html>

三、添加标记并指定大小

<!DOCTYPE html>
<html lang="en">
	<head>
		<meta charset="UTF-8" />
		<meta name="viewport" content="width=device-width, initial-scale=1.0" />
		<title>Billboard - 添加标记并指定大小</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 billboards = viewer.scene.primitives.add(new Cesium.BillboardCollection());

		const billboard = billboards.add({
			image: "../img/marker-icon.png",
			position: Cesium.Cartesian3.fromDegrees(-75.59777, 40.03883),
			width: 100.0,
			height: 100.0,
		});

		const entity = viewer.entities.add({
			position:Cesium.Cartesian3.fromDegrees(-75.59777, 40.03883),
			point: {
				pixelSize: 5,
				color: new Cesium.Color(0, 1, 0, 1),
			},
		});
	</script>
</html>

四、添加标记并指定原点

<!DOCTYPE html>
<html lang="en">
	<head>
		<meta charset="UTF-8" />
		<meta name="viewport" content="width=device-width, initial-scale=1.0" />
		<title>Billboard - 添加标记并指定原点</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 billboards = viewer.scene.primitives.add(new Cesium.BillboardCollection());

		const billboard = billboards.add({
			image: "../img/marker-icon.png",
			position: Cesium.Cartesian3.fromDegrees(-75.59777, 40.03883),
			verticalOrigin: Cesium.VerticalOrigin.BOTTOM,
		});

		const entity = viewer.entities.add({
			position: Cesium.Cartesian3.fromDegrees(-75.59777, 40.03883),
			point: {
				pixelSize: 5,
				color: new Cesium.Color(0, 1, 0, 1),
			},
		});
	</script>
</html>

标签:const,标记,viewer,100%,指定,add,添加,Cesium,new
From: https://blog.csdn.net/weixin_52173250/article/details/143325702

相关文章

  • 在FastStone Image Viewer中添加“WPS图片”为外部程序
    FSViewer(FastStoneImageViewer)是我最常用的图片浏览器,但它的编辑功能比较弱,好在它可以添加外部程序为编辑器。我对图片基本都是轻度编辑,不喜欢用太重的编辑软件,但透视矫正(梯形变换)功能是我的刚需。平时用过gimp和PhotoDemon,但它们的透视变换功能都有点繁琐不便,因为我基本只要将......
  • “人脉就是财富”:一天添加100+好友的秘诀!
    你是否还在一个个的输入号码或微信号,手动添加好友吗?这样不仅费时费力,而且还可能会出现错误。今天给大家分享一个支持多个微信号自动添加好友的工具,让你轻轻松松一天之内添加100+好友!首先,在添加好友之前,我们要把所有的微信号都登录到个微管理系统,不用来回切换账号以及携带设备......
  • 使用nohup 输出到指定文件 后台运行
    在Linux系统中,使用nohup命令可以让程序在后台持续运行,即使终端会话关闭也不受影响。要将nohup命令的输出指定到特定文件,可以按照以下步骤进行操作:假设要运行的程序是your_program,希望将输出重定向到文件output.log。1、基本重定向方式使用nohup命令结合输出重定向操作符来......
  • centos9(linux): 在prometheus服务端添加被监控节点
    一,从服务端所在机器测试被监控节点是否9100端口打开1,用telnet$telnet172.16.13.191002,用nc$nc-nvv172.16.13.19100 二,在服务端prometheus中添加一个监控节点编辑配置文件:viprometheus.yml内容:在static_configs: 下增加一行:-targets:["172.16.13.......
  • YOLO11改进 | 卷积模块 | 在主干网络中添加蛇形卷积Dynamic Snake Convolution
    秋招面试专栏推荐 :深度学习算法工程师面试问题总结【百面算法工程师】——点击即可跳转......
  • SqlSugar 达梦数据库大数据量,长字符串添加,数据库为空
    SqlSugar实体添加数据时,发现字符串超过某个长度,在数据库中就空白,插入失败,原因如下:达梦Clob、Text类型用法版本需升级到5.1.4.92及以上版本//需在长字符串的属性中加入以下[SugarColumn(SqlParameterDbType=typeof(NClobPropertyConvert))]publicstringName{get;......
  • git 删除已经添加到git跟踪的文件或文件夹
    这里以.vs文件夹为例:要在Git已存在的项目中忽略>.vs文件夹,你需要创建或修改.gitignore文件,并添加规则来忽略.vs文件夹。如果.gitignore文件已存在,你只需要添加一行.vs/。步骤如下:1.打开终端或命令行界面。2.切换到你的Git项目目录。3.编辑.gitignore文件。如果文件不存......
  • 2、添加路由
    1、在项目根目录安装vue-router:npmivue-router@next【@next代表的是安装最新的版本】2、在src目录下新建router/index.js,并添加路由配置项//router/index.jsimport{createRouter,createWebHashHistory}from'vue-router'importIndexfrom'@/views/Index.vue'......
  • orchard core 2 的user模块,添加phonenumber手机号的liquid支持
    老外习惯用email,我们要求的是要手机号。所以除了采用二次验证(2FA),发现工作流要给用户发送通知短信无法获取对应的手机号。所以对源码进行扩展增加了liquid获取手机号。1、下载源码可以clone也可以下载2、找到对应modules的user模块直接在starup.cs找到LiquidStartup添加显......
  • Qt/C++地图雷达扫描/动态扇形区域/标记线实时移动/轮船货轮动态轨迹/雷达模拟/跟随地
    一、前言说明地图雷达扫描的需求场景也不少,很多人的做法是直接搞个覆盖层widget,在widget上绘制雷达,优缺点很明显,优点是性能高,毕竟直接在widget上绘制性能明显比js中绘制要高,缺点是要么动态计算经纬度坐标转屏幕坐标来实现跟随,要么固定的通过改变绘制的范围内容来跟随,但是总归使用......