Primitive几何图形
    new Cesium.Model ( options )于glTF(WebGL,OpenGL ES和OpenGL的运行时资产格式)的3D模型。

    1. export function loadingGltfModel(viewer, url, height, lng, lat, heading, pitch, roll, id, scale = 0.8506) {
    2. let headingRadians = Cesium.Math.toRadians(heading);
    3. let hpr = new Cesium.HeadingPitchRoll(headingRadians, pitch, roll);
    4. let origin = Cesium.Cartesian3.fromDegrees(
    5. lng,
    6. lat,
    7. height
    8. );
    9. let modelMatrix = Cesium.Transforms.headingPitchRollToFixedFrame(
    10. origin,
    11. hpr
    12. );
    13. // scene中添加 gltf 模型
    14. let gltfModel = viewer.scene.primitives.add(
    15. Cesium.Model.fromGltf({
    16. id: id,
    17. url: url,
    18. modelMatrix: modelMatrix, // 位置矩阵
    19. minimumPixelSize: 120, // 模型最小
    20. maximumScale: scale, // 模型缩放比例
    21. })
    22. );
    23. //单个模型加载好 获取模型gltf文件里的name模型是否显示
    24. model.readyPromise.then(() => {
    25. /* 获取Gltf模型该节点name不显示 */
    26. model.getNode('Obj3d66_734577_1084_843').show = false
    27. })
    28. Cesium.when( model.readyPromise ).then( function( model ) {
    29. model.activeAnimations.addAll(
    30. //播放模型中全部动画,如果需要播放单个动画,可以调用add,传入动画id
    31. loop : this.$Cesium.ModelAnimationLoop.REPEAT, //直到被移出activeAnimations,一直播放
    32. speedup : 0.5, //加速播放
    33. reverse : true //逆序播放
    34. });
    35. //与其它Primitive一样,对3D模型的选取也是被支持的,当前点击的glTF node id、glTF mess一并被获取:
    36. var handler = new this.$Cesium.ScreenSpaceEventHandler( scene.canvas );
    37. handler.setInputAction(( movement ) => {
    38. var pick = scene.pick( movement.endPosition );
    39. if ( this.$Cesium.defined( pick ) && this.$Cesium.defined( pick.node ) && this.$Cesium.defined( pick.mesh ) ) {
    40. console.log( 'node: ' + pick.node.name + '. mesh: ' + pick.mesh.name );
    41. }
    42. }, this.$Cesium.ScreenSpaceEventType.MOUSE_MOVE )
    43. return gltfModel
    44. }
    • getNode获取多个gltf模型身上的模型节点 ```javascript let gltfModel = loadingGltfModel(‘map’,’light.gltf’,item.longitude,
      1. item.latitude,heading, 0, 0, item.signalLightId)
      let trafficLightModelList = []; trafficLightModelList.push(gltfModel)

    this.trafficLightModelList.forEach(item => { item.readyPromise.then(() => { item.getNode(‘lightDirection_0_green’).show = false; }) }) ```