如果去除cesium 穿过地球的polyline
时间: 2023-06-15 17:03:19 浏览: 130
如果要在Cesium中绘制穿过地球的Polyline,需要先定义一个Polyline实例,然后将其添加到场景中。接下来,您可以将Polyline定义为跨越地球的线,可以使用Cesium.Cartesian3.fromDegrees函数来定义起点和终点的经纬度坐标,然后将它们转换为具有相同坐标的Cartesian3坐标。
然后,您可以使用Cesium.PolylinePipeline来计算Polyline的段,该段穿过地球并且没有被遮挡。最后,您可以将计算出的段添加到场景中,以便将其显示出来。
以下是一个示例代码:
```javascript
//定义起点和终点的经纬度坐标
var start = Cesium.Cartesian3.fromDegrees(-75.62898254394531, 40.02804946899414, 0);
var end = Cesium.Cartesian3.fromDegrees(139.69171142578125, 35.68948745727539, 0);
//定义Polyline实例
var polyline = new Cesium.PolylineGeometry({
positions : [start, end],
width : 10.0,
vertexFormat : Cesium.PolylineColorAppearance.VERTEX_FORMAT
});
//计算Polyline的段,该段穿过地球并且没有被遮挡
var segments = Cesium.PolylinePipeline.generateCartesianArc({
positions: polyline.attributes.position.value,
width: polyline.attributes.width.value,
granularity: 0.01,
ellipsoid: Cesium.Ellipsoid.WGS84
});
//将计算出的段添加到场景中
var primitive = new Cesium.Primitive({
geometryInstances : new Cesium.GeometryInstance({
geometry : new Cesium.PolylineGeometry({
positions : segments.positions,
colors : segments.colors,
width : segments.widths,
vertexFormat : Cesium.PolylineColorAppearance.VERTEX_FORMAT
})
}),
appearance : new Cesium.PolylineColorAppearance({
translucent : false
})
});
viewer.scene.primitives.add(primitive);
```
上述代码将在Cesium地球上绘制一条穿过地球的Polyline。请注意,该代码中的起点和终点坐标是硬编码的,您可以根据自己的需求修改它们。
阅读全文