coordinates - 将本地平面坐标转换为 WGS84 的概述

标签 coordinates geospatial coordinate-systems wgs84

假设我有一个使用以米为单位的局部平面坐标绘制的小区域。例如300m x 450m 的矩形仓库。我使用一些 GPS 设备找到仓库一角的 WGS 84 纬度/经度。

如何将平面坐标投影到 WGS 84 大地水准面以查找仓库其他 3 个角的纬度/经度值?

我知道这是一个复杂的问题,因为地球不同地区的值有所不同。我是否需要首先找到一些局部坐标系,或者我可以以某种方式使用我的已知点之间的关系直接转到 WGS84?

我对此类问题没有太多经验,所以如果我的问题的某些部分没有任何意义,请原谅我。

最佳答案

你的问题很有道理,但解决方案却绝非微不足道。

解决方案取决于您的本地坐标系是南北对齐(相对容易)还是完全任意(非常困难)。

您的本地系统准确地南北对齐:

  1. 将已知的纬度/经度坐标转换为笛卡尔坐标(东距、北距)。
  2. 确定 (1) 与该点的局部坐标之间的 x 和 y 差。
  3. 将此坐标差应用于 3 个角的本地坐标中的每一个。
  4. 将 (3) 转换回地理纬度/经度。

这是有效的,因为两个系统具有相同的单位比例(公制)和旋转(南北),剩下的就是平移,即坐标差。

您的本地系统是任意的,并且不南北对齐:

  1. 您还需要两个纬度/经度已知点。 这是事实,没有办法绕开,否则旋转无法确定,无解
  2. 将这些已知的纬度/经度坐标转换为笛卡尔坐标。
  3. helmert transformation使用 3 个已知/未知对来求解剩余的未知局部坐标。 (搜索在线工具)
  4. 将结果转换回地理结果。

这是有效的,因为赫尔默特变换决定了两个系统之间的平移和旋转。

在纬度/经度和笛卡尔坐标之间进行转换本身并不简单,但却是必要的。要么使用像 proj4 这样的投影库来准确地完成它。 ,或近似假设地球是球形的,例如this answer

希望这没有让您失望!

关于coordinates - 将本地平面坐标转换为 WGS84 的概述,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14740192/

相关文章:

c# - 如何确定新的推力输入将当前坐标移动到指定坐标位置

来自 X-Y 坐标图的 Java 字符串

java - 获取 JPanel 坐标的 x 和 y 偏移量

ios - 按纬度订购 MKAnnotationViews 数组?

android - 从Android中的地址获取经纬度

ST_Distance_Spheroid 的 MySQL GeoSpatial 函数?返回 GLength 类型时使用的指标?

mongodb - Mongodb 空间查询 $geoNear 与 $near

c++ - 从控制台坐标点 - Visual C++ 2010 Express Edition

c++ - 在运行时旋转俄罗斯方 block

mongodb - $geoIntersects 没有返回结果