两个原因。
一是指南针对着的是地球的南北磁极,不是地理南北极。地理南北极是正南正北的,但地磁南北极不是正南正北,是偏的。地理南北极与地磁南北极之间有一个磁偏角,角度是11.5 °。就是说,按照地理南北极看,指南针指示的南北方向本来就“不正”,与地理南北极本身就存在偏差。按照指南针指示的南北方向再看东西方向,当然也是偏的了。
二是相对于地球的公转轨道平面,地球自转轴形成的赤道面也是偏的,也“不正”,与地磁极与地理极相比,偏得更“厉害”,达到23.5 °。这也是地球在公转轨道的不同位置,会有不同的季节的原因,也是在不同季节太阳升起的方向和正午时高度角不同的原因。在中纬度地区(我国大部分在中纬度地区),冬天太阳从东南方升起,在春分和秋分时,太阳就是从正东方升起了。到了夏天,太阳升起的方向又会变成东北方。而且这些方向都是地理方向,与地磁方向无关。用指南针在确定每天太阳升起的方向,肯定是有偏差的。