我们可以将经度和纬度转换为没有高程的笛卡尔坐标吗?

时间:2015-07-10 18:44:12

标签: python python-2.7 coordinate-systems coordinate-transformation

我可以在没有高程的情况下将经度/纬度(x,y)坐标转换为笛卡尔坐标(x,y,z)。我已经检查了一些讨论将经度/纬度转换为笛卡尔坐标的表格,这里是python中的代码。

    R = numpy.float64(6371000)  # in meters
    longitude = numpy.float64(lon)
    latitude = numpy.float64(lat)
    X = R * math.cos(longitude) * math.sin(latitude)
    Y = R * math.sin(latitude) * math.sin(longitude)
    Z = R * math.cos(latitude)

问题陈述:我收集了来自不同地点的数据。但是,这些位置是经度和纬度格式。这两个属性是否足以将位置转换为笛卡尔格式?上面的代码是否正确?

1 个答案:

答案 0 :(得分:1)

您需要距离地球中心的距离才能将纬度+经度转换为X,Y,Z(Earth-Centered, Earth-FixedEarth-Centered Inertial)。以地球为中心的惯性也需要时间从经度转换为角度。

原因很简单:您需要三个独立变量,因为它是一个3D坐标系。纬度和经度只有两个变量,你需要距离中心的距离(上面等式中的R)来做到这一点。

如果您正在寻找地面坐标,可以使用Google Elevation API在上面的等式中得到R.但无论哪种方式,您都需要这些信息进行坐标转换。