Cesium&SuperMap 笔记整理

2 篇文章 0 订阅
1 篇文章 0 订阅

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({

    url: 'https://beta.cesium.com/api/assets/1458?        access_token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJqdGkiOiIxYmJiNTAxOC1lOTg5LTQzN2EtODg1OC0zMWJjM2IxNGNlYmMiLCJpZCI6NDQsImFz        c2V0cyI6WzE0NThdLCJpYXQiOjE0OTkyNjM4MjB9.1WKijRa-ILkmG6utrhDWX6rDgasjD7dZv-G5ZyCmkKg'

})); 

 

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>');

 

 

 

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ShineMan-

走过路过不要错过,一分钱也是爱

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值