2

我有一组从 (0,0,0) 开始的点,绘制了车辆在 3D 中所走的路径,每个点都是在其各自维度上行驶的距离。我需要做两件事

  1. 令 (0,0,0) 表示纬度和经度。如何将我的 3D 点集转换为等效的纬度和经度?
  2. 在 Google Maps/Earth/whatever 上逐帧绘制(有延迟,因此可用于视频)

有什么建议么?

编辑:现在绘图是可行的,转换不是感谢大卫

4

3 回答 3

2

对于 Google 地球,这里有一个很好的示例向下滚动到“示例:沿路径显示点的运动”

对于 Google Maps API,此示例位于Google Maps Demo Gallery中。这有点粗糙,但你知道你能做什么。

于 2009-07-31T22:13:48.363 回答
1

在您的浏览器中使用 JavaScript 为在 Google 地图上移动的点设置动画会很容易。不过,我不确定您要获得什么样的视频。

谷歌地图甚至有一个 API 方法,可以在地图上绘制您的路径来呈现地图。你可以在页面底部看到这个。

于 2009-07-31T21:52:24.943 回答
1

所以你在一个(任意)坐标系中有一个起点(0,0),在另一个(地心)坐标系中有一个对应的(纬度,经度)点。您的问题是,给定一组与原点的已知 (x, y) 偏移量,您如何找到相应的 (纬度、经度) 点?(到目前为止,我是否理解您的问题?)

简单的答案就是使用公式:

lat2 = asin(sin(lat1)*cos(d/R) + cos(lat1)*sin(d/R)*cos(θ))
lon2 = lon1 + atan2(sin(θ)*sin(d/R)*cos(lat1), cos(d/R)−sin(lat1)*sin(lat2))
d/R is the angular distance (in radians), where d is the distance travelled and R is the earth’s radius

取自此链接:http ://www.movable-type.co.uk/scripts/latlong.html

编辑2:(哦,我忘了提:这个公式假设你有极坐标(R,θ)而不是笛卡尔坐标(x,y)。但是在它们之间转换并不难。)

稍长一点的答案是,如果你在足够大的空间内执行此操作,数学会变得非常复杂,因为高度是如何测量的,以及地球表面是如何形成的。您可能想阅读地理坐标系;这篇维基百科文章是一个很好的起点。您可能还会发现PROJ.4 库很有用。

编辑:

如果您需要考虑高度 (z) 测量值,则数学变得更加复杂。easy(ier) 的解决方案是做 2.5 维数学——即用一组公式计算 (x, y) 坐标,然后分别做 (z) 坐标。这仅适用于足够小的区域,因为您基本上假设地球表面对于您正在工作的空间是平坦的。但是,这对于您的应用程序来说可能已经足够好了。

于 2009-07-31T23:05:51.440 回答