下面展示几种常用cesium加载方式。
geojson数据直接加载,样式直接设置,或者可以拿到该数据源进行单独设置
//cesium加载 geojson格式数据 Cesium.GeoJsonDataSource.load("/static/json/xx.geojson", { //设置geojson样式 stroke: Cesium.Color.WHITE, fill: Cesium.Color.fromRandom({ alpha: 0.0 }), strokeWidth: 3, markerSymbol: "?", camera: viewer.scene.camera, canvas: viewer.scene.canvas }).then(dataSource=>{ dataSource.name = 'xx';//设置数据name viewer.dataSources.add(dataSource)//添加数据 })它的样式都可以czml数据里面设置,不用去在单独设置,并且czml支持多种数据类型。
let czml = [ { id: "document", name: "火点", version: "1.0" },{ id: "火点1", name: "火点1", //availability: "2012-08-04T16:00:00Z/2012-08-04T16:05:00Z", position: { //epoch: "2012-08-04T16:00:00Z", cartographicDegrees: [113, 32, 0]//设置坐标 }, billboard: { image: "/static/img/map/fire.png",//设置火电的图片 scale: 1 }, path: { resolution: 1, material: new Cesium.PolylineGlowMaterialProperty({ glowPower: 0.1, color: Cesium.Color.YELLOW }), width: 3 } } ]; // 加载提供的URL或CZML对象,替换任何现有数据。 let dataSourcePromise = Cesium.CzmlDataSource.load(czml); viewer.dataSources.add(dataSourcePromise).then(res => { // let s = res.entities.getById("火点1"); //获取指定id的entities func && func(res);//回调 });加载模型,并设置他的角度
var modelcollection = new Cesium.PrimitiveCollection(); scene.primitives.add(modelcollection); // 设置模型角度 let hpr = new Cesium.HeadingPitchRoll(Cesium.Math.toRadians(90), 0, 0); let origin = Cesium.Cartesian3.fromDegrees(113,31,0); let modelMatrix = Cesium.Transforms.headingPitchRollToFixedFrame(origin, hpr); //添加模型 modelcollection.add(Cesium.Model.fromGltf({ id: '模型1', url: '/static/gltf/model1.gltf', modelMatrix: modelMatrix, scale: 2.0 }))可以加载点云数据
let tileset = new Cesium.Cesium3DTileset({ url:"/model/xxx//tileset.json", modelMatrix: Cesium.Matrix4.fromArray([1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1]) }); viewer.scene.primitives.add(tileset);