繁体   English   中英

Cesium JS获取弧点数的最佳方法

[英]Cesium JS best way to get an array of points for an arc

为了使用Cesium的定时器/时钟进行动画制作的目的,为弧(折线)获取点阵列的最新(代码设计)和最常规的方法是什么。

可变输入包括(起始/结束位置),地球表面的高度(最高点)和绘图点数。

我目前正在使用折线集合,因此答案应该描述如何为现有折线生成点或转换为不同的方法。

我还需要弧(颜色)fadeIn或fadeOut到不透明度0。

可以每秒从集合中添加或移除多个弧。 每个弧将具有不同的起点和终点

起点和终点位置应为高度0(接触地球)。

(适用于铯版本b26)

为了确保我理解你的问题,你在地图上有一堆折线,你想在线上获得一堆数据点,用于动画沿路径的东西。 我还假设您想要折线的测地线/弧而不是通常在墨卡托地图上绘制的直线,因为测地线实际上遵循折线的空间精确路径,即平面将采用的相同路径。 如果是这种情况,那么请看一下这篇博文: http//alastaira.wordpress.com/2011/06/27/geodesics-on-bing-maps-v7/这篇文章描述了如何计算沿着折线的测地路径。

CesiumJS包含几个可以使用的样条函数。 Catmull-Rom Spline是一个比较容易实现你想要的只有三点的人:

http://cesiumjs.org/Cesium/Build/Documentation/CatmullRomSpline.html

你需要产生一个中间点。 为此,您可以采用纬度/经度坐标的平均值并添加较大的高度。 由于使用了样条曲线和点数较少,它最终看起来像一个小蛋形。 这样做的好处是你可以向样条线对象询问任意数量的点,因此弧可以像你想要的那样平滑。 只是不要忘记将第一个和最后一个点添加到样条曲线返回的数组中,因为它们被省略了。

还有其他类型的样条曲线,但我发现Catmull-Rom样条曲线最容易使用。 您可以在CesiumJS文档中搜索其他一些包含的样条线。

我一直在寻找相同的东西(减去时间方面),我发现了Cesium.EllipsoidGeodesic(开始,结束,椭球),它允许你获得路径分数的点数。 在我看来,你可以根据距离选择分数,并使用结果计算常规点。

https://cesiumjs.org/Cesium/Build/Documentation/EllipsoidGeodesic.html

我还没有尝试过,但这是我要做的事情清单。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM