cesium抛物线设置起点和终点
时间: 2024-02-01 09:09:51 浏览: 110
抛物线属性动画缩放属性动画可自定义起点终点
5星 · 资源好评率100%
在Cesium中,可以使用`Cesium.CatmullRomSpline`来创建抛物线,并设置起点和终点。下面是一个示例代码:
```javascript
// 创建场景
var viewer = new Cesium.Viewer('cesiumContainer');
// 设置起点和终点的经纬度坐标
var startLon = -75.59777;
var startLat = 40.03883;
var endLon = -122.41942;
var endLat = 37.77493;
// 创建起点和终点的Cartesian3坐标
var startPoint = Cesium.Cartesian3.fromDegrees(startLon, startLat);
var endPoint = Cesium.Cartesian3.fromDegrees(endLon, endLat);
// 创建抛物线的控制点
var controlPoints = [
startPoint,
Cesium.Cartesian3.multiplyByScalar(startPoint, 2, new Cesium.Cartesian3()),
Cesium.Cartesian3.multiplyByScalar(endPoint, 2, new Cesium.Cartesian3()),
endPoint
];
// 创建抛物线
var catmullRomSpline = new Cesium.CatmullRomSpline({
times: [0, 0.33, 0.66, 1],
points: controlPoints
});
// 创建抛物线的样式
var polyline = viewer.entities.add({
polyline: {
positions: catmullRomSpline.getPositions(100),
width: 5,
material: Cesium.Color.RED
}
});
// 将相机视角设置为抛物线的中点
viewer.camera.flyTo({
destination: Cesium.Cartesian3.midpoint(startPoint, endPoint),
orientation: {
heading: Cesium.Math.toRadians(0),
pitch: Cesium.Math.toRadians(-90),
roll: Cesium.Math.toRadians(0)
},
duration: 3
});
```
这段代码会在Cesium的场景中创建一个抛物线,起点和终点分别为指定的经纬度坐标。抛物线会经过控制点,通过调整控制点的位置可以改变抛物线的形状。抛物线的样式可以通过设置`polyline`的属性来调整,例如线的宽度和颜色。
阅读全文