声明

出于工作需要写这么一篇文章。本人不是专业搞地理和数学的,文章中有不对或不准确的地方请指正,勿喷。

个人认为,在几个明确定义的坐标系之间,坐标应该有明确的转换方法(可能为近似),而不是使用这种拟合的方法。但有时一些临时使用的,或定义不明确的,或小范围的坐标系,这种拟合也不失为一种好的方法。

问题

有两个不同的地理坐标系,世界上某一点α坐标系1上的坐标值为A,在坐标系2上的坐标值为B,如果知道A的坐标如何求B的坐标(或反之)呢,这就需要我们去找出坐标系1坐标系2之间的映射关系。

原理

取一定数量的样本,在样本上使用拟合的方法,找出(方程)映射关系。

求解过程

我们先用数学语言表达整理一下问题和条件,有集合A{(x,y)|x属于坐标系1的经度,y属于坐标系1的纬度},集合B{(m,n)|m属于坐标系2的经度,n属于坐标系2的纬度},求从集合A到集合B的映射关系f,使f((x,y))=(m,n),(x,y)属于A。

根据经验,A=>B有如下关系

m = A * x + B * y + C * x * x + D * y * y + E * x * y + F
n = G * x + H * y + I * x * x + J * y * y + K * x * y + L

而且,我们已经有了一些点的映射

(x1,y1) => (m1,n1)
(x2,y2) => (m2,n2)
...

分割线——————————————————————

这样我们就可以建立一个矩阵

  |  x1  y1  x1*x1  y1*y1  x1*y1  1  0   0   0      0      0        0  |     |  m1  |
  |  0   0   0      0      0      0  x1  y1  x1*x1  y1*y1  x1*y1    1  |  =  |  n1  |
  |  x2  y2  x2*x2  y2*y2  x2*y2  1  0   0   0      0      0        0  |     |  m2  |
  |  0   0   0      0      0      0  x2  y2  x2*x2  y2*y2  x2*y2    1  |     |  n2  |
  ...

然后最小二乘拟合求解即可。

上面的经验关系和拟合方法都可以根据不同情况进行调整。

打字困难,数学表达式难敲,凑合看。

分类: 其他技术

发表评论

电子邮件地址不会被公开。 必填项已用*标注