屏幕xy相对坐标转经纬度坐标

今天读了一下《地理坐标(经纬度坐标)和屏幕坐标(xy坐标)间的转换》,觉得内容很好,特摘录和附上自己的感想。

背景

在我们的屏幕上,有一张地图,这张地图经过缩放、平移、旋转,最终地理坐标和屏幕坐标的关系大致如下图所示:

这种关系要怎么描述呢?我们可以假设地图是一张纸,而屏幕是一堵墙。只要我们有两个图钉,我们就能把纸定在墙上。我们把这两个点称为锚点。锚点在屏幕坐标系上的坐标是(x1,y1)(x2,y2),对应在地理坐标系上的坐标是(lon1,lat1)(lon2,lat2)

那现在的问题就变成了,已知两个锚点的坐标,

lon 表示 longitude (纬度)
lat 表示 latitude (经度)
x,y 表示屏幕上的只是一个相对位置的坐标点
复制代码

(1)地理坐标转屏幕坐标:已知任意一点的地理坐标(lon,lat),求它在屏幕上的坐标(x,y)

(2)屏幕坐标转地理坐标:已知任意一点的屏幕坐标(x,y),求它的经纬度坐标(lon,lat)

转换算法

1、地理坐标平面化

首先是地理坐标的平面化转化。在一个小范围内(例如是方圆几公里内),我们可以假设地面是平的,而不是弯的。如果经纬度都用弧度表示,那么1纬度对应的长度是:

1纬度长度=Rlat1 纬度长度 = R \cdot lat

© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享