3

为了使用 Cesium 的计时器/时钟进行动画制作,获取弧(折线)的点数组的最简洁(代码设计)和最高效的方法是什么。

变量输入包括(开始/结束位置)、距地球表面的高度(最高点)和绘图点数。

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

我还需要弧(颜色)来淡入或淡出到不透明度 0。

每秒可以从集合中添加或删除多个弧。每条弧线都有不同的起点和终点

开始和结束位置的高度应为 0(接触地球)。

(对于铯版本 b26)

4

3 回答 3

1

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

于 2014-03-18T19:27:48.630 回答
0

我一直在研究同样的事情(减去时间方面),我发现 Cesium.EllipsoidGeodesic(start, end, ellipsoid),它可以让你在路径的各个部分获得点。在我看来,您可以根据距离选择分数并使用结果计算常规点。

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

我还没有尝试过,但它在我要做的事情清单上。

于 2014-09-14T20:21:19.537 回答
0

CesiumJS 包含几个可以使用的样条函数。Catmull-Rom Spline 是最容易使用的一种,只需三点即可完成您想要的工作:

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

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

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

于 2014-07-08T14:31:03.327 回答