2016-06-01 2 views
2

Я создаю Cesium.Primitive в таком виде:Цезий. ПолилинГеометрия не работает. Cesium.SimplePolylineGeometry делает

_createPrimitive: function (linesNumber) { 
     var instances = []; 
     for (var i = 0; i < linesNumber; i++) { 
      var lon = _.random(-90, 90); 
      var lat = _.random(-180, 180); 
      var polyline = new Cesium.SimplePolylineGeometry({ 
       positions: Cesium.Cartesian3.fromDegreesArrayHeights([ 
        lat, lon, 0, 
        lat, lon, 2000000]) 
      }); 
      var geometry = Cesium.SimplePolylineGeometry.createGeometry(polyline); 
      instances.push(new Cesium.GeometryInstance({ 
       geometry: geometry, 
       attributes: { 
        color: Cesium.ColorGeometryInstanceAttribute.fromColor(Cesium.Color.fromRandom({alpha: 1})) 
       } 
      })); 
     } 
     return new Cesium.Primitive({ 
      geometryInstances: instances, 
      appearance: new Cesium.PerInstanceColorAppearance() 
     }); 
    }, 

и добавить его в сцену позже:

scene.primitives.add(this._createPrimitive(20000));

Он работает, как ожидалось. Я хочу изменить ширину полилинии. Меняю Cesium.SimplePolylineGeometry к Cesium.PolylineGeometry и добавить width параметров в Cesium.PolylineGeometry вызова конструктора:

_createPrimitive: function (linesNumber) { 
     var instances = []; 
     for (var i = 0; i < linesNumber; i++) { 
      var lon = _.random(-90, 90); 
      var lat = _.random(-180, 180); 
      var polyline = new Cesium.PolylineGeometry({ 
       positions: Cesium.Cartesian3.fromDegreesArrayHeights([ 
        lat, lon, 0, 
        lat, lon, 2000000]), 
       width: 4 
      }); 
      var geometry = Cesium.PolylineGeometry.createGeometry(polyline); 
      instances.push(new Cesium.GeometryInstance({ 
       geometry: geometry, 
       attributes: { 
        color: Cesium.ColorGeometryInstanceAttribute.fromColor(Cesium.Color.fromRandom({alpha: 1})) 
       } 
      })); 
     } 
     return new Cesium.Primitive({ 
      geometryInstances: instances, 
      appearance: new Cesium.PerInstanceColorAppearance() 
     }); 
    }, 

и земной шар пуст! Что я делаю не так?

ответ

2

Проблема была я неприемлемое appearance: Cesium.PolylineColorAppearance, например прекрасно работает:

return new Cesium.Primitive({ 
     geometryInstances: instances, 
     appearance: new Cesium.PolylineColorAppearance() 
    }); 

 Смежные вопросы

  • Нет связанных вопросов^_^