ich Cesium.Primitive in einer solchen Art und Weise zu erstellen:Cäsium.PolylineGeometry funktioniert nicht. Cesium.SimplePolylineGeometry tut
_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()
});
},
und fügen Sie ihn in Szene später:
scene.primitives.add(this._createPrimitive(20000));
Es funktioniert wie erwartet. Ich möchte die Breite der Polylinie ändern. Ich wechsle Cesium.SimplePolylineGeometry
-Cesium.PolylineGeometry
und width
param zu Cesium.PolylineGeometry
Konstruktoraufruf hinzufügen:
_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()
});
},
und die Welt ist leer! Was mache ich falsch?