GroundPolyLinePrimitive表示覆盖在地形上的多段线或
new GroundPolylinePrimitive(options)
Scene
中的三维瓦片。仅用于包含GroundPolylineGeometry
的几何状态。
Parameters:
options
(Object)
Name | Description |
---|---|
options.geometryInstances
(Array | GeometryInstance)
|
包含GroundPolyLineGeometry的几何条件 |
options.appearance
Appearance
|
用于渲染多段线的外观。默认为APolylineMaterialAppearance 上的白色Material 。
|
options.show
Boolean
default true
|
确定是否显示此基元。 |
options.interleave
Boolean
default false
|
当true 时,几何顶点属性交错,这可以稍微提高渲染性能,但增加加载时间。
|
options.releaseGeometryInstances
Boolean
default true
|
当true 时,原语不保留对输入geometryInstances 的引用以保存内存。
|
options.allowPicking
Boolean
default true
|
当true 时,每个几何体实例只能使用Scene#pick 进行选择。当false 时,保存GPU内存。
|
options.asynchronous
Boolean
default true
|
确定在准备就绪之前是异步创建基元还是阻止创建基元。如果为false,则必须首先调用initiaterrainheights()。 |
options.classificationType
ClassificationType
default ClassificationType.BOTH
|
确定地形、三维瓦片还是两者都要分类。 |
options.debugShowBoundingVolume
Boolean
default false
|
仅用于调试。确定是否显示此基元的命令的边界球。 |
options.debugShowShadowVolume
Boolean
default false
|
仅用于调试。确定是否绘制基本体中每个几何体的阴影体积。必须在创建时为true 才能生效。
|
Example
// 1. Draw a polyline on terrain with a basic color material
var instance = new bmgl.GeometryInstance({
geometry : new bmgl.GroundPolylineGeometry({
positions : bmgl.Cartesian3.fromDegreesArray([
-112.1340164450331, 36.05494287836128,
-112.08821010582645, 36.097804071380715
]),
width : 4.0
}),
id : 'object returned when this instance is picked and to get/set per-instance attributes'
});
scene.groundPrimitives.add(new bmgl.GroundPolylinePrimitive({
geometryInstances : instance,
appearance : new bmgl.PolylineMaterialAppearance()
}));
// 2. Draw a looped polyline on terrain with per-instance color and a distance display condition.
// Distance display conditions for polylines on terrain are based on an approximate terrain height
// instead of true terrain height.
var instance = new bmgl.GeometryInstance({
geometry : new bmgl.GroundPolylineGeometry({
positions : bmgl.Cartesian3.fromDegreesArray([
-112.1340164450331, 36.05494287836128,
-112.08821010582645, 36.097804071380715,
-112.13296079730024, 36.168769146801104
]),
loop : true,
width : 4.0
}),
attributes : {
color : bmgl.ColorGeometryInstanceAttribute.fromColor(bmgl.Color.fromCssColorString('green').withAlpha(0.7)),
distanceDisplayCondition : new bmgl.DistanceDisplayConditionGeometryInstanceAttribute(1000, 30000)
},
id : 'object returned when this instance is picked and to get/set per-instance attributes'
});
scene.groundPrimitives.add(new bmgl.GroundPolylinePrimitive({
geometryInstances : instance,
appearance : new bmgl.PolylineColorAppearance()
}));
Members
(readonly) allowPicking : Boolean
-
Default Value:
true
appearance : Appearance
Appearance
用于对该原语进行着色。每个几何体实例都以相同的外观着色。一些外观,如PolylineColorAppearance
允许为每个实例提供唯一的属性。
-
Default Value:
undefined
(readonly) asynchronous : Boolean
确定是否将在Web工作者上创建和批处理几何体实例。
-
Default Value:
true
classificationType : ClassificationType
确定地形、三维瓦片还是两者都要分类。
-
Default Value:
ClassificationType.BOTH
debugShowBoundingVolume : Boolean
此属性仅用于调试;它既不用于生产,也不进行优化。
为基本体中的每个draw命令绘制边界球体。
-
Default Value:
false
(readonly) debugShowShadowVolume : Boolean
此属性仅用于调试;它既不用于生产,也不进行优化。
如果为真,则为基本体中的每个几何体绘制阴影体积。
-
Default Value:
false
(readonly) geometryInstances : (Array|GeometryInstance)
使用此基元渲染的几何体实例。在构造基元时,如果
options.releaseGeometryInstances
是true
,则可能是undefined
。在呈现基元后更改此属性没有效果。
-
Default Value:
undefined
(readonly) interleave : Boolean
确定几何体顶点属性是否交错,这可以稍微提高渲染性能。
-
Default Value:
false
(readonly) ready : Boolean
确定基元是否已完成并准备好呈现。如果此属性为真,则下次调用
GroundPolylinePrimitive#update
时将呈现原语。
(readonly) readyPromise : Promise.<GroundPolylinePrimitive>
获取解决基元何时准备呈现的承诺。
(readonly) releaseGeometryInstances : Boolean
当
true
时,原语不保留对输入geometryInstances
的引用以保存内存。
-
Default Value:
true
show : Boolean
确定是否显示基元。这会影响基本体中的所有几何体实例。
-
Default Value:
true
Methods
(static) initializeTerrainHeights() → {Promise}
初始化最小和最大地形高度。只有在同步创建groundPolyLinePrimitive时才需要调用此函数。
检查给定的场景是否支持groundPolyLinePrimitive。GroundPolyLinePrimitives需要支持WebGL“深度”纹理扩展。
Parameters:
销毁此对象持有的WebGL资源。销毁对象允许确定地释放WebGL资源,而不是依赖垃圾收集器来销毁此对象。
一旦对象被破坏,就不应使用它;调用除isDestroyed
以外的任何函数都将导致DeveloperError
异常。因此,将返回值(undefined
)赋给对象,如示例中所述。
Throws
-
DeveloperError : 此对象已被销毁,即调用destroy()。
返回
GeometryInstance
的每个实例可修改属性。
Parameters:
Example
var attributes = primitive.getGeometryInstanceAttributes('an id');
attributes.color = bmgl.ColorGeometryInstanceAttribute.toValue(bmgl.Color.AQUA);
attributes.show = bmgl.ShowGeometryInstanceAttribute.toValue(true);
Throws
-
DeveloperError : 必须在调用GetGeometryInstanceAttributes之前调用Update。
如果此对象被破坏,则返回true;否则返回false。
update()
如果此对象被破坏,则不应使用它;调用除isDestroyed
以外的任何函数都将导致DeveloperError
异常。
Throws
-
DeveloperError : 对于同步groundPolyLinePrimitives,必须调用groundPolyLinePrimitives.InitializerRainHeights(),然后等待返回的Promise解析。
-
DeveloperError : 所有几何实例都必须具有颜色属性才能将PolyLineColorAppearance与GroundPolyLinePrimitive一起使用。