Cesium.PolylineGeometry 不起作用。 Cesium.SimplePolylineGeometry 确实
Cesium.PolylineGeometry doesn't work. Cesium.SimplePolylineGeometry does
我是这样创建Cesium.Primitive的:
_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()
});
},
地球是空的!我做错了什么?
问题是我使用不当appearance
:例如Cesium.PolylineColorAppearance
工作正常:
return new Cesium.Primitive({
geometryInstances: instances,
appearance: new Cesium.PolylineColorAppearance()
});
我是这样创建Cesium.Primitive的:
_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()
});
},
地球是空的!我做错了什么?
问题是我使用不当appearance
:例如Cesium.PolylineColorAppearance
工作正常:
return new Cesium.Primitive({
geometryInstances: instances,
appearance: new Cesium.PolylineColorAppearance()
});