Primitive对象自定义属性信息

1、自定义Primitive属性------自定义图形

 注意自定义图形的对象id为object类型,可以使用它来为我们添加自定义属性

var defaultInfo = {nihao:'我爱你',photoInfo:[123,456,789]}
    var instance = new Cesium.GeometryInstance({
      geometry: new Cesium.EllipseGeometry({
        center: Cesium.Cartesian3.fromDegrees(-100.0, 20.0),
        semiMinorAxis: 500000.0,
        semiMajorAxis: 1000000.0,
        rotation: Cesium.Math.PI_OVER_FOUR,
        vertexFormat: Cesium.VertexFormat.POSITION_AND_ST
      }),
      id:defaultInfo // id是个object对象,里面可以自定义说明信息
    });
    var defaultGeometry = new Cesium.Primitive({
      geometryInstances: instance,
      appearance: new Cesium.EllipsoidSurfaceAppearance({
        material: Cesium.Material.fromType('Checkerboard')
      })
    });
    viewer.scene.primitives.add(defaultGeometry);

 通过getGeometryInstanceAttributes来获取自定义图形的属性

 var attribute = defaultGeometry.getGeometryInstanceAttributes(instance.id)//获取自定义属性

获取自定义属性:

通过点击来获取属性

// 鼠标拾取
function addIntroduceModels() {
  this.eventHandler = new Cesium.ScreenSpaceEventHandler(
    viewer.scene.canvas
  );
  this.eventHandler.setInputAction(movement => {
    var isVisable = false;
    var pickedObject = viewer.scene.pick(movement.position);
  }, Cesium.ScreenSpaceEventType.LEFT_CLICK);
}

2、自定义Primitive属性 ---- 自定义模型gltf或3dTiles

同理可以看到model中fromGltf中包含id对象,id对象的类型为object,所以可以通过id来自定义属性

var coord = Cesium.Cartesian3.fromDegrees(116.3912, 39.920, 0.0);
    //创建一个东(X,红色)北(Y,绿色)上(Z,蓝色)的本地坐标系统
var modelMatrix = Cesium.Transforms.eastNorthUpToFixedFrame(coord);
// 为gltf模型自定义属性
var defaultInfoModel = {nihao:'我爱你',photoInfo:[123,456,789]}
var model = Cesium.Model.fromGltf({
  id: defaultInfoModel,
  url: './Resource/01.fbx.glb',
  clampToGround: true,
  modelMatrix: modelMatrix,
  scale: 100
});
var planPrimitiveDef = viewer.scene.primitives.add(
  model
);
viewer.camera.flyToBoundingSphere(new Cesium.BoundingSphere(coord, 30000));

通过点击来获取属性:

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值