tft每日頭條

 > 科技

 > 經緯度地圖如何轉換坐标

經緯度地圖如何轉換坐标

科技 更新时间:2024-11-29 19:20:01

軟件環境
SuperMap Objects .NET
實現内容
在将經緯度的數據動态地添加到地圖窗口中時,由于地圖坐标系可能存在多種情況,針對坐标系的不同,如何實現動态數據能夠與地圖疊加顯示呢?本文将介紹如何根據地圖不同的坐标系,将經緯度的數據動态的添加在地圖當中正确顯示。
背景介紹
平面無投影:指物體在地圖上沒有對應的地理位置,一般用來作為與地理位置無關的數據的坐标參考,平面坐标系是一個二維坐标系,原點坐标為(0, 0),數據中每一個點的坐标是由其距水平和垂直的 X 軸和 Y 軸的距離确定。具體坐标顯示如圖一,圖一中是将經緯度坐标的數據顯示在平面坐标系上的坐标顯示,其經緯度的值被作為對象的X,Y 坐标值顯示:

經緯度地圖如何轉換坐标(将經緯度數據添加到地圖)1

地理坐标系:表示物體的确切地理位置,通過經緯度來描述其空間位置信息, 通常的表現形式為經度值在±180°,緯度值在±90°。如圖二所示:

經緯度地圖如何轉換坐标(将經緯度數據添加到地圖)2


投影坐标系:地球橢球體表面是曲面,而地圖通常要繪制在平面圖紙上,因此制圖時首先要把曲面展為平面。然而球面是個不可展的曲面,換句話說,就是把它直接展為平面時,不可能不發生破裂或褶皺。若用這種具有破裂或褶皺的平面繪制地圖,顯然是不實用的,所以必須采用特殊的方法将曲面展開,使其成為沒有破裂或褶皺的平面,于是就出現了地圖投影。常用的地圖投影有高斯克呂格投影,阿爾伯斯投影,蘭伯特投影, 墨卡托投影等,坐标位數通常比較長,一般的坐标顯示是:X 為6 位,Y 為7 位。如圖三所示:

經緯度地圖如何轉換坐标(将經緯度數據添加到地圖)3

具體實現
由于有三種不同的坐标系統,因此,在将經緯度的地物添加到地圖的時候,會分為平面坐标系,地理坐标系,投影坐标系三種情況。 【情況一】 平面無投影: 當地圖是平面坐标系,添加的數據是地理坐标系時,會出現兩種情況:
一、 添加的數據在地圖範圍内,可以正常的添加顯示在地圖中,其經緯度的值會作為點X,Y 的坐标添加到地圖當中,如圖四所示:

經緯度地圖如何轉換坐标(将經緯度數據添加到地圖)4


二、 添加的數據不在地圖範圍内,無法正确的添加在地圖當中。這種情況下,地圖的坐标系有兩種可能,一:數據坐标沒有意義,是錯誤值;二:地圖坐标系非常大, 且沒有設置在正确坐标系。針對第一種情況,建議通過數據配準,更正錯誤數據, 将其配準在正确的地理位置上;第二種情況,建議與數據提供方聯系,設置正确坐标系後,動态添加經緯度點對象的方法類似【情況三】。

【情況二】 地理坐标系 當地圖為地理坐标系,添加的數據也是地理坐标系時,如果數據在同一地理範圍内, 可以添加到地圖窗口進行顯示。如圖五所示:

經緯度地圖如何轉換坐标(将經緯度數據添加到地圖)5

【情況三】 投影坐标系 當添加的地圖坐标系為投影坐标系,數據的坐标系為地理坐标系時,數據無法正常顯示, 如圖六。地理坐标系的顯示方式和投影坐标系的顯示方式是不同的,地理坐标系的顯示方式是球面的顯示方式,而投影坐标系的顯示方式是平面的。因此,兩個坐标系的對象不能同時顯示在一個窗口中。

經緯度地圖如何轉換坐标(将經緯度數據添加到地圖)6


那麼如何能将一個地理坐标系的對象顯示在投影坐标的地圖中呢?就需要将添加的對象進行投影轉換,而後才可以将對象添加到正确的地理位置上。進行投影轉換的方法為CoordSysTranslator 類的三個靜态方法Covert(),Forward(),Inverse(),三種方法分别是針對于不同的對象和坐标系而言的,本例中待轉換的對象為二維點,轉換的類型為将地理坐标系的數據轉換到投影坐标系中,因此使用的方法是CoordSysTranslator.Forward()。 假設以獲取待添加的二維點集,為point2ds,并将具有目标投影的數據集添加到地圖窗口中,為dataset。
投影轉換的主要代碼為:

Dataset dataset = mapControl.Map.Layers[0].Dataset; PrjCoordSys prjCoordSys = dataset. PrjCoordSys; bool result = CoordSysTranslator.Forward(point2ds, prjCoordSys);

投影轉換後的效果如下圖四:

經緯度地圖如何轉換坐标(将經緯度數據添加到地圖)7


總結
綜上所述,無論是使用SuperMap Deskpro .NET 還是用SuperMap Objects .NET ,是添加對象還是添加數據集到地圖窗口中,希望有正确顯示,前提都需要待添加的數據和地圖的地理信息相同,隻有有了正确的地理信息基礎,才能将同一地理範圍内的對象添加到同一地圖窗口進行顯示。在使用桌面産品SuperMap Deskpro .NET 可以使用地圖屬性的動态投影功能,将後添加的數據動态的投影到地圖的投影坐标系上,從而實現相同的顯示效果。

,

更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!

查看全部

相关科技资讯推荐

热门科技资讯推荐

网友关注

Copyright 2023-2024 - www.tftnews.com All Rights Reserved