GIS坐标旋转

 

GIS坐标旋转

陈玉进 李泉 (南京跬步科技有限公司http://www.creable.cn

 

在地理信息系统中有对地图进行旋转显示的需求,例如GPS导航系统,为了达到方便直观的效果,会自动将地图旋转,以至于能够将车辆前进的方向固定到窗口中的北方。下面讨论坐标旋转的原理。

一.旋转一般公式

1.以坐标原点为圆心的旋转

设图形上一点P(x,y)绕原点逆时针旋转a角后得到新的一点P’(x’,y’),则由解析集合方法可得

x’=x×cos(a)y×sin(a)

y’=x×sin(a)y×cos(a)

若顺时针旋转时,a角为负值。

2.以任意点为圆心的旋转

首先需要将坐标平移到坐标原点,再旋转坐标,最后在平移到该点。设圆心C(x0,y0),其他条件同上,可得到下面的公式

x’=(xx0)×cos(a)(yy0)×sin(a)x0

y’=(xx0)×sin(a)(yy0)×cos(a)y0

其中xx0之后表示坐标平移到原点,最后加上x0表示将坐标平移到点C

二.坐标旋转在地理信息系统中的实现

GIS中需要将地图坐标转换为屏幕坐标,之后再绘制到窗口中,基于将地图旋转显示的需求,我们可以将屏幕坐标旋转之后绘制到窗口,这样就实现了地图的旋转显示。由于屏幕坐标系的原点在窗口左上角,且y轴向下。故按照上述公式a角是正值的话,地图是顺时针旋转。

屏幕坐标向地图坐标的转换,由于地图旋转的原因,需要做些改变。首先将屏幕坐标旋转回到原来的位置,再使用转换公式转换成为地图坐标。

平移地图,用户单击的两个点,计算这两点之间的地图坐标差值,将当前地图显示范围移动,改变坐标转换公式,达到平移地图的目的。考虑地图旋转的因素,应该首先将用户单击的两个点旋转回到原来的位置,再计算其地图坐标差值。可以用图来说明这个道理,如下图所示,实线框表示旋转之后的地图(顺时针旋转45度),虚线框表示地图原来的位置,实线街头表示用户向右水平平移旋转之后的地图,那么相当于在原来的地图中,向右上方平移地图。将用户单击的两个点旋转到原来的位置上,刚好是这里。

 

d41

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值