2016-04-13 2 views
2

J'utilise le césium pour visualiser mon scénario et je veux créer un polygone en JavaScript en utilisant la position d'autres entités mobiles comme références pour ses extrémités. Comme suggéré dans la réponse de this question en utilisant CZML. Je me demandais si je pouvais le faire (en référençant les positions d'autres entités comme extrémités de mon polygone) dans JavaScript. J'ai essayé quelques petites choses et ça n'a pas, par exemple, voici mon code:Comment référencer des positions d'autres entités dans la hiérarchie polygonale de Cesium en utilisant javascript?

var newPoly= viewer.entities.add({            
    id : resourceSet[objIndex].id+"poly", 
    name:resourceSet[objIndex].id+"poly", 
    availability : new Cesium.TimeIntervalCollection([new Cesium.TimeInterval({ 
     start : start, 
     stop : stop 
    })]), 
    polygon:{ 
     hierarchy :{ 
      positions:{ 
       references:[ 
        Cesium.ReferenceProperty.fromString(collection, ''+entityName+'#position'), 
        Cesium.ReferenceProperty.fromString(collection, ''+baseEntity[0].id+'#position'), 
        Cesium.ReferenceProperty.fromString(collection, ''+baseEntity[1].id+'#position') 
       ] 
      } 
     }, 
     material :Cesium.Color.AQUA.withAlpha(0.5), 
     perPositionHeight : true, 
     show : true 
    }, 
    show: true 
}) 

Pour les références J'ai aussi essayé:

  • juste en utilisant comme entité et positions: entity.position
  • En utilisant entity$position.

Aucun d'eux n'a fonctionné!

Répondre

3

Les propriétés d'entité ont une fonction getValue qui prend un temps JulianDate comme paramètre et renvoie la valeur à ce moment-là. Pour obtenir un poste, vous devriez être capable de faire quelque chose comme

var position = entity.position.getValue(viewer.clock.currentTime);