CesiumJS 添加会动的GIF
Posted Ghost_In_the_Shell
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了CesiumJS 添加会动的GIF相关的知识,希望对你有一定的参考价值。
由于Cesium使用canvas渲染,如果使用billboard等加载gif图片只能渲染第一帧,导致动图不动。在Cesium的官方示例中找到一段代码可将html元素渲染到地图上,将gif以html元素形式渲染,则gif图可以完整加载,动图也就能动起来,可以使用css调节页面元素的样式,现将核心的代码记载于此,以供参阅。
JS:
// 地图加载等代码略 var viewer = new Cesium.Viewer(); var htmlOverlay = document.getElementById(‘<gif图片元素(或者任何别的HTML元素)的id>‘); var scratch = new Cesium.Cartesian2(); viewer.scene.preRender.addEventListener(function() { var position = Cesium.Cartesian3.fromDegrees(113.8055628136,22.44247382348, 50.0); var canvasPosition = viewer.scene.cartesianToCanvasCoordinates(position, scratch); if (Cesium.defined(canvasPosition)) { htmlOverlay.style.top = canvasPosition.y + ‘px‘; htmlOverlay.style.left = canvasPosition.x + ‘px‘; } });
HTML:
<!-- 其它页面代码略 --> ... <body> <div id="cesiumContainer"></div> <img id="sillygif" style="position: absolute; width: 5%; height:10%; z-index: 2" src="<gif图片的地址>"> ...
以上是关于CesiumJS 添加会动的GIF的主要内容,如果未能解决你的问题,请参考以下文章