简体   繁体   English

将局部平面坐标转换为WGS84的概述

[英]Overview for converting local plane coordinates to WGS84

Let's say I have a small area mapped out using local planar coordinates in meters. 假设我使用米的局部平面坐标绘制了一个小区域。 eg A rectangular warehouse that's 300m x 450m. 例如300m x 450m的矩形仓库。 I use some GPS device to find the WGS 84 lat/lon of one corner of the warehouse. 我使用一些GPS设备查找仓库一角的WGS 84纬度/经度。

How can I project my plane coordinates onto the WGS 84 geoid to find the lat/lon values for the 3 other corners of the warehouse? 如何将飞机坐标投影到WGS 84大地水准面上以找到仓库的其他3个角的纬度/经度值?

I understand this is a complicated problem since values vary on different parts of the earth. 我知道这是一个复杂的问题,因为值在地球的不同部分会有所不同。 Do I need to deal with finding some local coordinate system first or can I somehow use the relationship between my known points to go direcly to WGS84? 我需要先处理一些局部坐标系,还是可以以某种方式利用已知点之间的关系直接进入WGS84?

I don't have a lot of experience with this sort of problem so forgive me if parts of my question don't make any sense. 我在这类问题上经验不足,因此,如果部分问题没有任何意义,请原谅我。

Your question makes perfect sense, but the solution is far from trivial. 您的问题很合理,但解决方案绝非易事。

The solution depends on whether your local coordinate system is north-south aligned (relatively easy) or if completely arbitrary (prohibitively harder). 该解决方案取决于您的局部坐标系是南北对齐(相对容易)还是完全任意(很难)。

Your local system is accurately north-south aligned: 您的本地系统是正确的南北对齐:

  1. convert the known lat/lon coordinate to a cartesian coord (easting,northing). 将已知的纬度/经度坐标转换为笛卡尔坐标(东,北)。
  2. determine the x and y differences between (1) and the local coordinate of that point. 确定(1)与该点的局部坐标之间的x和y差。
  3. apply this coord difference to to each of the 3 corners local coordinate. 将此坐标差异应用于三个角局部坐标。
  4. convert (3) back to geographical lat/lon. 将(3)转换回地理纬度/经度。

This works because both systems have the same unit scale (metric) and rotation (north-south), all that's left is translation which is the coordinate difference. 之所以可行,是因为两个系统具有相同的单位比例(公制)和旋转(南北),剩下的就是平移,即坐标差。

Your local system is arbitrary, and not north-south aligned: 您的本地系统是任意的,并且不是南北对齐的:

  1. You need two more lat/lon known points. 您还需要两个经纬度已知点。 This is a fact, no way around it, otherwise rotation can't be determined and no solution . 这是事实,无法解决,否则无法确定旋转且没有解决方案
  2. convert these known lat/lon coordinates to cartesian. 将这些已知的经/纬度坐标转换为笛卡尔坐标。
  3. helmert transformation using the 3 known/unknown pairs to solve for the remaining unknown local coordinate(s). 使用3对已知/未知对的helmert变换来求解剩余的未知局部坐标。 (Search for an online tool) (搜索在线工具)
  4. convert results back to geographical. 将结果转换回地理区域。

This works because the helmert transformation is determining both the translation and rotation between the two systems. 之所以可行,是因为helmert变换确定了两个系统之间的平移和旋转。

Converting between lat/lon and cartesian and back again is in itself not trivial, but necessary. 在经度/纬度和直角坐标之间进行转换,再转换回来本身并不是一件容易的事,而是必要的。 Either do it accurately using a projection library like proj4 , or approximately assuming a spherical earth, eg this answer . 使用诸如proj4之类的投影库来准确地进行此操作 ,或者近似假设使用球形地球,例如此答案

Hope this hasn't put you off! 希望这不会让您失望!

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM