序:
為什麼要坐标轉換?
做基建工程,線性工程也好,做項目的時候經常會拿到一些工程上的資料,它不是國家的CGCS2000,也不是wgs84。同時項目上需要的一些資料又是标準資料,怎麼把這些标準資料導入到項目當中的工程坐标系?
對于地方坐标系的一些介紹參考:
解密四參七參工程坐标系,并使用圖新地球完成四參七參計算,實作不同投影坐标參數資料融合_王躍軍的部落格-CSDN部落格
舉例:
線型工程電力業務當中,拿到了一批之前的杆塔點位測繪成果,西安80坐标系下的平面坐标值X、Y。
如何把這些坐标轉為可以和地圖疊加的CGCS2000經緯度坐标來基于地圖做資料管理和應用?
新測繪的成果是使用RTK測出來的CGCS2000經緯度坐标,成果送出時要求是CGCS2000平面坐标的EXCEL,如何轉換?
這個例子還好,它涉及到的基準還算是标準的。
如果是重慶的基建工程,比如公路設計施工,那就更狠了。
工程裡面的坐标是重慶地方坐标系,既不是西安80也不是北京54,更不是現在的國家CGCS2000.如何把工程成果放到地圖上,設計和施工期間如何把通用的CGCS2000資料導入到工程裡面?
最終要解決什麼問題?
- 1.任意坐标系投影的平面坐标XY轉為國家CGCS2000的經緯度
- 2.國家CGCS2000的經緯度轉為任意坐标系下的平面坐标XY
1.坐标轉換的大緻原理
1.1坐标是怎麼來的?
1.1.1 經緯度坐标
地球是很不規則的,有些地方高,有些地方低,它不是一個标準的球。我們常說的經緯度,是偉人們概念抽象簡化後得到的一個便捷通用定義方式。
首先:把地球認定為一個橢球,并且給到它一個長半軸和短半軸(扁率),這時候得到了一個标準橢球。
第二:在地球球心放個燈泡,往外投射,那地球上的任意一點和球心連線,就得到兩個夾角值,和赤道方向的夾角(緯度),和本初子午線的夾角(經度)。本初子午線的定義不展開了,就是我們所說的經度為0的地方。
定義出來這個資訊,其實我們就給定了地球一個姿态。
第三:地球的姿态怎麼來的?
這個定義有很多,以CGCS2000為例,橢球參數+曆元參考+架構。這裡面考慮了版塊漂移,來防止誤差。是以有時間參數的指定。
![](https://img.laitimes.com/img/9ZDMuAjOiMmIsIjOiQnIsIiNx8FesU2cfdGLwczX0xiRGZkRGZ0Xy9GbvNGL38VZ6l2cs0TP312RX1yZzkWLp9UZtgFTxxUN1sEN1o2SZZDVsBjUwU3N1oUaMVTQClGVF5UMR9Fd4VGdsATNfd3bkFGazxSUhxGatJGbwhFT1Y0Mk9VZwlHdssmch1mclRXY39CXldWYtlWPzNXZj9mcw1ycz9WL49zZuBnLkRzY2IDNkFGO4IjYwkjN5YjY2QjY4U2NiNTOyQGN5MzLc52YucWbp5GZzNmLn9Gbi1yZtl2Lc9CX6MHc0RHaiojIsJye.png)
1.1.2地心坐标
有了上面的姿态,隻要定義好X方向和Y方向,就有了一個三維空間的地心坐标系,X、Y、Z
1.1.3平面坐标
在設計領域,為了便于操作,我們都是抽象成二維圖紙。如何把球面轉為平面。
這裡有個概念,投影。關于投影不多說,有很多形式。
這裡以CGCS2000為例,簡單看一下高斯投影。
這時候就有了平面坐标的X和Y。
這個時候的X和Y是建立在CGCS2000橢球參數(長半軸、短半軸),橢球基準(球心位置及方向,參考曆元架構)的。
1.1.4三個坐标之間的關系
在一個橢球參數和基準下面
平面坐标x,y和經緯度坐标lon、lat以及地形坐标(空間直角坐标)X、Y、Z一定是唯一确定,并可以互相轉換的。
1.1.5 關于高程Z
上面說的都是平面坐标,經常用的坐标值都是經度、緯度和高度。那高度怎麼來的呢?常說海拔高度,水準面等等。
在對地球進行抽象的時候,因為地球的不平整,我們需要有一個高度資訊,這個高度資訊多數用大地水準面作為基礎,就是在這個高度上放個水珠,不會像任何一個方向流動。
因為地球重量分布的不均勻。大地水準面也是一個非常奇怪的曲面,和橢球并不是完全拟合的。
在對地球進行了抽象後,多數情況下需要定義一個基于橢球表面的高度。這個時候很多地方拟合的并不好,這也是地方坐标系産生的很大一個原因,為了拟合度更好,大家對橢球進行了橢球參數(長短半軸)的定義,基準的定義(平移和旋轉)。
如果橢球基準不一緻,即使投影一緻,坐标值X、Y也一定和CGCS2000的坐标不一緻。
1.2 不同坐标如何互相轉換?
例如:一個自定義了橢球參數和基準的上海地方基準的2000坐标按照高斯投影定義了一個位置坐标,A(x,y)
假如它采用了國家2000的橢球,但是平移了橢球的0,0點,并進行了一點旋轉。
這個時候再上海地方基準的這個坐标A(x,y),一定唯一對應一個上海地方基準的經緯度坐标A(lon、lat),以及地心坐标系下的坐标A(X、Y、Z)
如果我們要把它換算為國家2000坐标系下的坐标
第一步:把A(x,y)根據投影轉為經緯度坐标A(lon、lat)再轉為地心坐标(空間直角坐标)A(X、Y、Z)
第二步:計算上海地方基準的地心坐标,和國家2000基準下兩個地心坐标系之間的偏移、旋轉情況。
第三步:A(X、Y、Z)轉為B(X、Y、Z)
第四步:在國家2000的橢球參數和基準的定義下,B(X、Y、Z)轉為B(lon、lat),按照投影轉為B(x、y)
兩個地心坐标系之間的轉換,按照什麼參數來呢?這個就是常說的4/7參數。
當然7參更多的是考慮了Z值之後的結果。
2.坐标轉換的過程
待補充...