1、Cesium加载Gif图
//加载gif动图 start
var htmlOverlay = document.getElementById('#sillygif');
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';
}
});
//加载gif动图 end
2、Cesium视频纹理
<video id="trailer" style="display: none;" autoplay loop crossorigin controls> <source src="tt.mp4" type="video/mp4"> Your browser does not support the <code>video</code> element. </video> var videoElement = document.getElementById('trailer'); var sphere = viewer.entities.add({ id: "a", rectangle: { coordinates: Cesium.Rectangle.fromDegrees(-180.0, -90.0, 180.0, 90.0), material: videoElement } });
3、Cesium绘制贴地线四种方法
///////////////////1、
将上面代码的 “polyline” 改成“corridor”,这么改实际上是构建了一个corridor面对象,但是可以看到线段的所有位置都是在地表的,
////////////////////2、
viewer.dataSources.add(Cesium.GeoJsonDataSource.load('http://localhost:1234/lesson07/pwt1/line.json', {
clampToGround: true
}));
///////////////////////3、
var rectanglePrimitive = viewer.scene.primitives.add(new Cesium.GroundPrimitive({
geometryInstances: new Cesium.GeometryInstance({
geometry: new Cesium.CorridorGeometry({
vertexFormat: Cesium.VertexFormat.POSITION_ONLY,
positions: Cesium.Cartesian3.fromDegreesArray([112.82536, 23.071506, 112.82742, 23.067512, 112.828878, 23.064659, 112.830799, 23.060947, 112.832166, 23.058329]),
width: 40
}),
attributes: {
color: Cesium.ColorGeometryInstanceAttribute.fromColor(new Cesium.Color(0.0, 1.0, 0.0, 0.5))
}
}),
classificationType: Cesium.ClassificationType.TERRAIN
}));
/////////////////////////////4、
var rectanglePrimitive = viewer.scene.primitives.add(new Cesium.GroundPrimitive({
geometryInstances: new Cesium.GeometryInstance({
geometry: new Cesium.CorridorGeometry({
vertexFormat: Cesium.VertexFormat.POSITION_ONLY,
positions: Cesium.Cartesian3.fromDegreesArray([112.82536, 23.071506, 112.82742, 23.067512, 112.828878, 23.064659, 112.830799, 23.060947, 112.832166, 23.058329]),
width: 40
}),
attributes: {
color: Cesium.ColorGeometryInstanceAttribute.fromColor(new Cesium.Color(0.0, 1.0, 0.0, 0.5))
}
}),
classificationType: Cesium.ClassificationType.TERRAIN
}));
5、Cesium渐变纹理
var redWall = viewer.entities.add({ name: 'Red wall at height', wall: { positions: Cesium.Cartesian3.fromDegreesArrayHeights([ 121.444409, 31.247417, 200.0, 121.533521, 31.235685, 200.0, 121.563273, 31.190347, 200.0, 121.546744, 31.194054, 200.0, 121.516705, 31.191459, 200.0, 121.502188, 31.203074, 200.0 ]), minimumHeights: [3000.0, 2000.0, 2000, 2000, 2000, 3000], material: getColorRamp([0.0, 0.045, 0.1, 0.15, 0.37, 0.54, 1.0],true) } });
6、Cesium 显示帧速
viewer.scene.debugShowFramesPerSecond = true;
7、调整b3dm模型位置
//创建平移矩阵方法一 // m = Cesium.Matrix4.fromArray([ // 1.0, 0.0, 0.0, 0.0, // 0.0, 1.0, 0.0, 0.0, // 0.0, 0.0, 1.0, 0.0, // x, y, z, 1.0 // ]); //创建平移矩阵方法二 var translation=Cesium.Cartesian3.fromArray([x, y, z]); m= Cesium.Matrix4.fromTranslation(translation); //生效 tileset._modelMatrix = m;
//旋转
var m = tileset.modelMatrix; //RotateX为旋转角度,转为弧度再参与运算 var m1 = Cesium.Matrix3.fromRotationX(Cesium.Math.toRadians(RotateX)); //矩阵计算 Cesium.Matrix4.multiplyByMatrix3(m,m1,m); //赋值 tileset.modelMatrix = m;
8、判断是否有某个属性
entity.properties.propertyNames 是所有属性名列表,可以判断是否有某个属性
9、HomeButton按钮初始位置设置
//初始位置中国
Cesium.Camera.DEFAULT_VIEW_RECTANGLE = Cesium.Rectangle.fromDegrees(73.66, 3.86, 135.05, 53.55);
10、常用MIME类型
<remove fileExtension=".czml"/>
<mimeMap fileExtension=".czml" mimeType="application/json"/>
<remove fileExtension=".glsl"/>
<mimeMap fileExtension=".glsl" mimeType="text/plain"/>
<remove fileExtension=".b3dm"/>
<mimeMap fileExtension=".b3dm" mimeType="application/octet-stream"/>
<remove fileExtension=".pnts"/>
<mimeMap fileExtension=".pnts" mimeType="application/octet-stream"/>
<remove fileExtension=".i3dm"/>
<mimeMap fileExtension=".i3dm" mimeType="application/octet-stream"/>
<remove fileExtension=".cmpt"/>
<mimeMap fileExtension=".cmpt" mimeType="application/octet-stream"/>
<remove fileExtension=".gltf"/>
<mimeMap fileExtension=".gltf" mimeType="model/gltf+json"/>
<remove fileExtension=".bgltf"/>
<mimeMap fileExtension=".bgltf" mimeType="model/gltf-binary"/>
<remove fileExtension=".glb"/>
<mimeMap fileExtension=".glb" mimeType="model/gltf-binary"/>
<remove fileExtension=".json"/>
<mimeMap fileExtension=".json" mimeType="application/json"/>
<remove fileExtension=".geojson"/>
<mimeMap fileExtension=".geojson" mimeType="application/json"/>
<remove fileExtension=".topojson"/>
<mimeMap fileExtension=".topojson" mimeType="application/json"/>
<remove fileExtension=".woff"/>
<mimeMap fileExtension=".woff" mimeType="application/font-woff"/>
<remove fileExtension=".woff2"/>
<mimeMap fileExtension=".woff2" mimeType="application/font-woff2"/>
<remove fileExtension=".kml"/>
<mimeMap fileExtension=".kml" mimeType="application/vnd.google-earth.kml+xml"/>
<remove fileExtension=".kmz"/>
<mimeMap fileExtension=".kmz" mimeType="application/vnd.google-earth.kmz"/>
<remove fileExtension=".svg"/>
<mimeMap fileExtension=".svg" mimeType="image/svg+xml"/>
<remove fileExtension=".terrain"/>
<mimeMap fileExtension=".terrain" mimeType="application/vnd.quantized-mesh"/>
<remove fileExtension=".ktx"/>
<mimeMap fileExtension=".ktx" mimeType="image/ktx"/>
<remove fileExtension=".crn"/>
<mimeMap fileExtension=".crn" mimeType="image/crn"/>
11、Ceisum截屏
库: html2canvas
captureViewport:function()
{
html2canvas(document.getElementById('cesiumContainer'), {
onrendered: function (canvas) {
document.body.appendChild(canvas);
viewer.render();
//var image = canvas.toDataURL("image/png");
var image = viewer.canvas.toDataURL();
console.log(image);
var pHtml = "<img src=" + image + " />";
$('#imageCamera').html(pHtml);
},
// width: 300,
// height: 300
});
}
******************************************************************************
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <title>html2canvas example</title> <script type="text/javascript" src="html2canvas.js"></script> </head> <script type="text/javascript"> function takeScreenshot() { console.log('test'); html2canvas(document.getElementById('view'), { onrendered: function(canvas) { document.body.appendChild(canvas); }, }); } </script> <body> <div id="view" style="background:url(test.jpg) 50%; width: 700px; height: 500px;"> <input type="button" value="截图" onclick="takeScreenshot()"> </div> </body> </html>
12、 Ceseium三维球体显示隐藏
var show = !viewer.scene.globe.show
viewer.scene.globe.show = show;
viewer.scene.skyAtmosphere.show = show;
viewer.scene.skyBox.show = show;