【问题标题】:Can we convert longitude and latitude to cartesian co-ordinates without elevation?我们可以在没有高程的情况下将经度和纬度转换为笛卡尔坐标吗?
【发布时间】:2015-07-10 18:44:12
【问题描述】:

我可以在没有高程的情况下将经度/纬度 (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)

问题陈述:我有从不同位置收集的数据。但是,这些位置采用经度和纬度格式。这两个属性是否足以将位置转换为笛卡尔格式?上面的代码对吗?

【问题讨论】:

  • 我投票决定将此问题作为离题结束,因为与代码问题无关。 OP 在问一个大地测量问题。
  • 你不能在不发明新数据的情况下将 2D 点转换为 3D 点,除非你的 3D 空间不是基于 3 个独立坐标(例如 X = x,Y = y 的退化坐标系, 和 Z = (x + y) / 2 什么的)...
  • 另外,我认为这不属于 SO,也许属于物理学。

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


【解决方案1】:

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

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

如果您正在寻找地面坐标,您可以使用Google Elevation API 在上面的方程式中获取 R。但无论哪种方式,您都需要此信息来进行坐标变换。

【讨论】:

    猜你喜欢
    • 2015-09-30
    • 1970-01-01
    • 2010-11-14
    • 1970-01-01
    • 2020-07-04
    • 1970-01-01
    • 2013-02-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多