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圖片的地址>">
...

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM