美赛建模需要使用到平面坐标系去做基于时间序列的运动范围模型,所以需要对经纬度进行坐标系转换,转换到XY坐标系下。同时,在机器人的路径规划等方面依然会经常使用到坐标系的转换,所以记录一下。
文章目录
- 经纬度坐标系和平面投影坐标系
- 地理坐标系 / 大地坐标系
- 平面投影坐标系
- 墨卡托投影法
- 变量和常量定义
- (1)墨卡托投影正解算公式
- (2)墨卡托投影逆解算公式
- Python代码实现
- (1)墨卡托投影正解算公式
- (2)墨卡托投影逆解算公式
经纬度坐标系和平面投影坐标系
地理坐标系 / 大地坐标系
用经纬度表示的是地理坐标系,也称大地坐标系。
- 大地测量中以参考椭球面为基准面的坐标。地面点P的位置用大地经度L、大地纬度B和大地高H表示。 当点在参考椭球面上时,仅用大地经度和大地纬度表示。大地经度是通过该点的大地子午面与起始大地子午面之间的夹角,大地纬度是通过该点的法线与赤道面的夹角,大地高是地面点沿法线到参考椭球面的距离。
平面投影坐标系
人们比较习惯于使用平面坐标系,平面坐标系用xy表示。
- 把球体表面的坐标转成平面坐标需要一定的手段,这个手段称为投影。投影是XYZ平面内的。有时候用地理坐标系不够方便,投影方法也不是唯一的,还是为了一个目的,务求使当地的坐标最准确。所以目前就存在了好多投影方法,比如高斯投影、墨卡托投影等。
大地坐标、地理坐标均是球面的,投影坐标是平面的。
墨卡托投影法
若点(B,L)
经过墨卡托投影(下图)得到的新坐标为点(X,Y)
,
其中B0
为标准纬度,L0
为标准经度,e
为第一偏心率,e ’
为第二偏心率,根据墨卡托投影方法我们可以实现坐标系的相互转化。
变量和常量定义
椭圆的长半轴a
, 椭圆的短半轴b
:
(1)墨卡托投影正解算公式
由经纬度坐标(B,L)
计算得到平面投影坐标(X,Y)
:
(2)墨卡托投影逆解算公式
由平面投影坐标(X,Y)
计算得到经纬度坐标(B,L)
。可以用牛顿迭代的方法进行解算,即已知q求B,方法如下:
Python代码实现
(1)墨卡托投影正解算公式
代码还有小问题,需要各位同学帮忙指正。
运行示例:
(2)墨卡托投影逆解算公式
公式已有,可以自行复现。
参考论文:
- [1]胡正,杨青,卜晓楠,张波,江伟健,宋祥瑞.TDOA定位中经纬度与平面坐标转换方案的研究[J].电子世界,2019(03):36-37.