我有一条随着时间的推移而走的路。 我使用Cesium.sampleTerrain获取位置高度并将其覆盖在地形上。 问题在于,即使所有点都在地形上,连接2点的线有时也会在地形下面。 如何覆盖地形上的连线?
这是我的代码:
apply plugin: 'com.android.application'
android {
compileSdkVersion 21
buildToolsVersion "23.0.2"
defaultConfig {
applicationId "mycompany.myapp.test.xwalkshadow"
minSdkVersion 15
targetSdkVersion 21
versionCode 1
versionName "1.0"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
}
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
testCompile "org.robolectric:robolectric:3.0"
testCompile 'org.robolectric:robolectric-annotations:3.0-rc3'
testCompile "org.powermock:powermock-module-junit4:1.6.4"
testCompile "org.powermock:powermock-module-junit4-rule:1.6.4"
testCompile "org.powermock:powermock-api-mockito:1.6.4"
testCompile "org.powermock:powermock-classloading-xstream:1.6.4"
}
答案 0 :(得分:2)
所以像马修说的那样; Cesium目前不支持“折线”类型的实体,覆盖地形。
如果您发现Entity API没有满足您的需求,可能值得深入了解更低级别的Primitives API以获得更好的控制 - 更具体地说是GroundPrimitive几何体。
其中; GroundPrimitives目前支持CorridorGeometry。
我对Cesium中的时态数据绘图没有经验,但我建议你考虑这种方法而不是异步承诺方法,(IMO)看起来更像是由于没有GroundPrimitive类型解决方案而产生的黑客攻击时间。
以下是GroundPrimitive的粗略示例(注意我们不需要任何z值):
var viewer = new Cesium.Viewer('cesiumContainer');
var corridorInstance = new Cesium.GeometryInstance({
geometry : new Cesium.CorridorGeometry({
vertexFormat : Cesium.VertexFormat.POSITION_ONLY,
positions : Cesium.Cartesian3.fromDegreesArray([
-122.26, 46.15,
-122.12, 46.26,
]),
width : 100
}),
id : 'myCorridor',
attributes : {
color : new Cesium.ColorGeometryInstanceAttribute(0.0, 1.0, 1.0, 0.5)
}
});
var corridorPrimitive = new Cesium.GroundPrimitive({
geometryInstance : corridorInstance
});
viewer.scene.primitives.add(corridorPrimitive);
viewer.camera.setView({
destination: Cesium.Cartesian3.fromDegrees(-122.19, 46.20, 10000.0)
});
哪个会给你这个:
答案 1 :(得分:1)
Cesium目前不支持地形上的垂直线,但它位于我们的路线图上,对我们来说非常重要。这实际上是一个在所有情况下都能正确处理的极其复杂的问题(由于WebGL的限制,它更加复杂)。这将需要大量的研究和实验,并且没有艰难的时间表来确定何时完成。作为我们的3D Tiles工作的一部分,我们应该有春天的静态线的版本,但动态线可能会更远。
如果您对开发此功能感兴趣,请密切关注我们的GitHub存储库中的issue #2172。当此功能是官方发布的一部分时,我们还会在我们的博客/推特/论坛上发布公告。