1、primitives (PrimitiveCollection) :获取所有图元集合 (scene下面)
2、Cesium.Ellipsoid.WGS84 = Cesium.freezeObject(new Cesium.Ellipsoid(obj[0], obj[1], obj[2]));
Cesium.Ellipsoid.WGS84:一个球的实例, 一个球的实例,默认是标准的WGS84椭球体,其x,y,z方向的半径分别为6378137, 6378137, 6356752.3142451793。
如果想使用圆球模式,则在应用层将其初始化为圆球,即x,y,z方向半径都设为6378137.0。
3、new Cesium.Cesium3DTileset(options); //Cesium3DTileset下面 加载3D tileset文件
包含多个参数
var tileset = viewer.scene.primitives.add(new Cesium.Cesium3DTileset({
}));
4、readyPromise: Promise<Cesium3DTileset> 当tileset加载并渲染之后调用
tileset.readyPromise.then(function(tileset){
// tile.properties is not defined until readyPromise resolves.
var properties = tileset.properties;
if (Cesium.defined(properties)) {
for (var name in properties) {
console.log(properties[name]);
}
}
});
5、tileset.readyPromise.then(function () {
var boundingSphere = tileset.boundingSphere;
viewer.camera.viewBoundingSphere(boundingSphere, new Cesium.HeadingPitchRange(0.0, -0.5, boundingSphere.radius));
viewer.camera.lookAtTransform(Cesium.Matrix4.IDENTITY);
}).otherwise(function (error) {
throw(error);
});
boundingSphere: tileset的边界范围 (BoundingSphere)
BoundSphere: new Cesium.BoundingSphere(center,radius) 见于BoundSphere类 一个有中心店和半径的外接范围
子类BoundingRectangle :new Cesium.BoudingRectangle(x,y,width,height) 一个具备角点、长、宽的外接矩形
viewBoundingSphere:viewBoundingSphere(boundingSphere,offset) //Camera类下面 设置相机的当前view范围包括boundingSphere设置的范围 offset设置的是向东或者北偏移距离。
then().otherwise():
二、addSymbol.html
1、imageryLayers:viewer类 ImageryLayerConllection子类 获取将在地球上渲染的影像图层集合
addImageryProvider(imageryProvider,index); //imageryProvider:ImagertyProvider子类,指定影像服务提供者, index:待添加的图层的索引
var imageryLayers = viewer.imageryLayers;
var labelImagery = new Cesium.WebMapTileServiceImageryProvider({
url : 'http://[subdomain].tianditu.com/cia_w/wmts',
layer : 'cia',
style : 'default',
format : 'tiles',
tileMatrixSetID : 'w',
credit : new Cesium.Credit('天地图全球影像中文注记服务'),
subdomains : ['t0','t1','t2','t3','t4','t5','t6','t7']
});
imageryLayers.addImageryProvider(labelImagery);.
viewer.imageryLayers.addImageryProvider(new Cesium.BingMapsImageryProvider({
url: 'https://dev.virtualearth.net',
mapStyle: Cesium.BingMapsStyle.AERIAL,
key: URL_CONFIG.BING_MAP_KEY
}));
BimgMapsImageryProvider() :BingMap影像提供者
WebMapTileServiceImageryProvider:服从WMTS1.0.0服务的影像地图;此Provider支持HTTP KVP-encoded和REST风格,不支持SOAP风格;
参考https://blog.csdn.net/esrichinacd/article/details/7825587;
WMTS :web map tile service Web地图切片服务;当前版本是1.0.0 ,WMTS可能是OGC首个支持RESTful访问的服务标准
BingMapsStyle: BIngMapsStyle类;定义了集中bingMap的风格;
2、knockout绑定控件 与viewModel
selectedEntity: 获取或设置为其显示选择指示符的对象实例。
selectedEntityChanged:获取选择实体对象时引发的事件;
headingPitchRoll:heading number 0;pitch number 0;roll number 0;
CesiumMath:数学函数 eg:Cesium.Math.toRadians();Cesium.CesiumMath.mod(m,n);
Color:Color类,Cesium.Color.fromCssColorString(color,result); var cesiumBlue = Cesium.Color.fromCssColorString('#67ADDF'); var green = Cesium.Color.fromCesColorString('green');
var viewModel={
heading: 1.0,
pitch: 1.0,
roll: 1.0,
scale: 1.0,
material: '#ffffff',
};
Cesium.knockout.track('viewModel');
var toolbar = document.getElementById('toolbar');
Cesium.knockout.applyBindings(viewModel,toolbar);
Cesium.knockout.getObservable(viewModel,'heading').subscribe(
function(newValue){
var rotationValue = Cesium.Math.toRadians(newValue);
if(viewer.selectedEntity){
var instance = viewer.selectedEntity.primitive;
var index= viewer.selectedEntity.id;
instance.updateRotation(new Cesium.HeadingPitchRoll(rotationValue,0,0),index);
}
}
);
Cesium.knockout.getObservable(viewModel,'pitch').subscribe(function(newValue){
var pitchValue = Cesium.Math.toRadians(newValue);
if(viewer.selectedEntity){
var instance = viewer.sleectedEntiy.primitive;
var index = viewer.selectedEntity.id;
instance.updateRotation(new Cesium.HeadingPitchRoll(0,rotationValue,0),index);
}
});
Cesium.knockout.getObservable(viewModel,'roll').subscribe(function(newValue){
var rollValue = Cesium.Math.toRadians(newValue);
if(viewer.selectedEntity){
var instance = viewer.selectedEntity.primitive;
var index = viewer.selectedEntity.id;
instance.updateRotation(new Cesium.HeadingPitchRoll(0,0,rollValue),index);
}
});
Cesium.knockout.getObservable(viewModel,'scale').subscrible(function(newValue){
var scaleValue = parseFloat(newValue);
if(viewer.selectedEntity){
var instance = viewer.selectedEntity.primitive;
var index = viewer.selectedEntity.id;
instance.updateScale(new Cesium.Cartesian3(scale,scale,scale),index);
}
});
Cesium.knockout.getObservable(viewModel,'material').subscrible(function(newValue)
var colorString = Cesium.color.fromCssColorString(material);
if(viewer.selectedEntity){
var instance = viewer.selectedEntity.primitive;
var index = viewer.selectedEntity.id;
instance.updateColor(colorString,index);
}
});
3、var promise = scene.open('http://localhost:8090/iserver/services/3D-BIM3/rest/realspace');
promise.then(function(layers){
...
});
第二种方式:
var promise = scene.open('http://localhost:8090/iserver/services/3D-BIM3/rest/realspace');
Cesium.when(promise,function(layers){
...
scene.camera.setView({
destination:new Cesium.Cartesian3.fromDegrees(xx,xx,xx),
orientation:{
heading:4655
pitch:5454
roll:456489
}
});
});
if(!scene.pickPositionSupported){
alert('无法支持鼠标交互绘制,不支持深度纹理');
}
4、var tooltip = createToolTip(document.body);
tooltip.setVisible(true);
tooltip.showAt(windowPosition,'<p>绘制点</p>');