坐标转换这事儿,跟人类换名片似的,但段位可比换名片高多了。你要是跟个地生算地理坐标,那是正儿八经的数学家干这活儿。可一旦拿着万用表测个机子,要么拿个手机地图,坐标这玩意儿就变了味,变成了“江湖规矩”里的几句话。 咱们先看看经纬度,这是最老的坐标。它就像是个地图,用东经和西经来标位置。东经是忒阳升起的方向,西经是沉下去的方向。北纬就是你看星星时,仰得高些的地方,南纬就是低得多的。
这个体系在教科书里是个完美的圆,但在咱们手里握着的砖头、地图上印的格子、就连某些老式仪器上,它都是带着“引力”的。你拿着个 GPS 说“我在北纬三十八度”,实际上心里想的往往是“我在某个高地上”。
要是你把坐标写成英文,那叫经纬度;写成字节,就成了数字。拿中国地图上的点去跟英文地图比一比,你会发现大量数据对不上。
为啥?出于中国的地图是个“球体上的方块”,而世界的坐标表是个“方块上的球体”。
这种错位,就像是你跟人讲话,他懂你的方言,你不懂他的土话。 这就引出了另一种坐标:地理坐标。它在大学里是标准答案,但在实际工程中,有时候它就是个“近似值”。
比如你拿个全站仪测个距离,它给你算个地面距离,说这就是 500 米。你认定准。但要是你拿着个激光测距仪,它说 499.99 米,你心里没毛病。可目前有个数据源,它给你个“大地水准面法线距离”,数值是 499.9998 米。
这时候你就尴尬了。
为啥是如此多小数位?出于地球本身是个略扁平的椭球体,再加上海平面和山脉的起伏,这些细小的抖动,能被算法压缩一点点,也能被误差放大。你需求知道这个数据源用的是哪个定义。是 GPS 的?是 WGS84 的?还是欧拉球系的?每一个定义背后,都是对地球形状理解和建模的博弈。 再说说投影坐标。
这个概念在小时候可能听过,听说是把地球上的球给“压扁”成了纸上的平面。
这就好比把一颗白菜做成了千张金鱼肠,形状变了,但里面的水还是水。
这种坐标一般出目前地图软件里,要么专业的 GIS 系统中。你用了它之后,发现原本相距 10 公里的城市中心,目前在屏幕上变成了 100 公里远的距离。
这时候你就想不通了,原来是我看错了。
这是出于投影是一种数学处理,它用等轴测投影把 3D 空间压缩到 2D 平面,要么用伪等角投影保持角度的关系。但代价是,这种压缩必然形成形的失真。北边的东西方向被拉长了,南边的被压短了。
要是你在做工程测量,这种误差可能意味着几米的偏差;要是是做社交距离记录,那就判了死刑。 这让我想起之前帮人处理数据时形成的趣事。有个客户想用坐标做个好办的选址分析,结局他拿着个一般/平平 GPS 的数据,画出来的点竟然有个能直接下舰的错觉。
为啥?出于他用的坐标系统,底层定义跟我们的不一样。有的地方用 UTM,有的用 Vincenty,还有的直接用 WGS84 的工夫戳。对于资深测绘人来说,这种系统间的混用简直就是“带着镣铐跳舞”。你拿着个 2003 年的数据,想跟 2024 年的地图对表,结局发现出于投影变换的累积误差,原本在地图上重合的两个点,在投影坐标里却分开了几米。
这种“抢跑”的偏差,往往比粗心的失误更令人头疼。 还有个更荒谬的情况,有些系统里直接混用了“坐标”和“角度”这两个词。在工程里,“坐标”是位置,是东经多少,北纬多少。但有些软件,比如某些 CAD 插件要么特定的 BIM 软件,里面可能把方位角写进了坐标列表里,害得软件认定你在某个方向上,点的位置也在某个坐标。
这就像是你拿着个罗盘,说“我在北方”,转头又说“我在坐标 (100, 200)"。
要是这个软件里,X 轴代表北,Y 轴代表东,那没难题。但要是 X 代表经度,Y 代表纬度,那这就彻底乱了。结局就是你在地图上看是点,在数据表里看却是个怪的长字符串,毫无意义。
这种混乱,在老式计算机时代可能被视为一种“智商税”,目前则成了程序员们笑谈的素材。 再聊聊球面坐标和平面坐标的区别。球面坐标,顾名思义,就是在球面上。经纬度就是标准的球面坐标。而平面坐标,实际上是把球面切下来的一块,压扁成了平面。
这种变换在卫星遥感里挺常见,出于卫星看的是“地面”,但数据是“天空”的。卫星拍到一张图,它计算的是卫星到地面的距离,这是平面坐标系。但卫星的原始数据里,与此同时又包含了一个相对于地球中心的坐标,这是球面坐标。当你不想用卫星的“抬头率”来算距离时,你需求用地球椭球体的参数来修正。
要是你不知道这个修正系数是多少,那你算出来的点,在卫星眼里和在地面上眼里,可能差了半个地球圆的直径。 举个具体的例子吧。假设你要在海拔 50 米的山顶立个旗杆。你用经纬度会说“北纬 39 度,东经 116 度”。但要是你给卫星发信号,卫星算出来的“地面坐标”会用到一个高度面,高度面越高,投影到的平面坐标就越靠西。
也就是说,你在山顶,卫星认定你在更靠西的地方。
要是你拿这个卫星的坐标去跟地面的坐标一样高做比较,会发现那个点明显偏西了。
这就是为啥专业测绘会有“地形图投影坐标”和“卫星定位坐标”之分。前者是在地图上,后者是在天上看。两套系统的数据源不同,应用场景不同,用通用的转换公式去套,结局绝对是对不上号。 还有啊,坐标系之间的偏移,也是个天大的坑。
比如 WGS84 和 CGCS2000(中国的国家坐标系),它们共用一个基准,但在表达上,CGCS2000 多了个长方形的旋转。WGS84 的 Y 轴指向北极,CGCS2000 的 Y 轴指向地心。
这意味着同一个点,在 WGS84 里是 0,CGCS2000 里可能就是 -30000 米。
要是你直接丢个 WGS84 的坐标去填 CGCS2000 的表格,要么反过来,数值对不上。
这就像是你用美元买楼下超市的苹果,商家写的是“$100",但客人去付账时发现,出于汇率换算要么他们账本用的是日圆,你付了 150 块,他们却认定你只给了 100 块。
这种“汇率”难题,在坐标转换里叫“投影比例尺”。 最终说说方位角。方位角是角度,是 0 到 360 度。它描述的是“你此刻正面向哪个方向”。而经纬度是坐标,是位置。
有时候你把方位角当成了坐标,比如“X 是方位角,Y 是距离”。
这种用法在极坐标系里常见,但在常规地图坐标系里简直是个笑话。出于地图坐标系里,X 和 Y 一辈子代表东西和南北,一辈子跟角度没关系。
要不就你拿着个老式的六面座座钟去算地图,那时候方位角才是老大。但目前你拿个手机,手机报“方位角 90 度”,要是你没换算成纬度,那你当作你在正北方向,结局你在东边。 故此,坐标转换压根儿不是一步登天的数学魔法。它是一场场关于定义、关于命名、关于系统兼容性的谈判。想要搞定它,你得先搞清楚你手里这张白纸,到底是用啥尺子量出来的。是经纬仪?是激光?还是卫星?数据源来自哪儿?用了啥投影?在这之前,千万别急着套用公式,否则大约率是“张冠李戴”,不仅算错了,还把自己绕晕了。
毕竟,搞清楚你是哪位,比算出 500 米距离要关键得多。