我可以在没有高程的情况下将经度/纬度(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)
问题陈述:我收集了来自不同地点的数据。但是,这些位置是经度和纬度格式。这两个属性是否足以将位置转换为笛卡尔格式?上面的代码是否正确?
答案 0 :(得分:1)
您需要距离地球中心的距离才能将纬度+经度转换为X,Y,Z(Earth-Centered, Earth-Fixed或Earth-Centered Inertial)。以地球为中心的惯性也需要时间从经度转换为角度。
原因很简单:您需要三个独立变量,因为它是一个3D坐标系。纬度和经度只有两个变量,你需要距离中心的距离(上面等式中的R
)来做到这一点。
如果您正在寻找地面坐标,可以使用Google Elevation API在上面的等式中得到R.但无论哪种方式,您都需要这些信息进行坐标转换。