軟件環境
SuperMap
Objects .NET
實現内容
在将經緯度的數據動态地添加到地圖窗口中時,由于地圖坐标系可能存在多種情況,針對坐标系的不同,如何實現動态數據能夠與地圖疊加顯示呢?本文将介紹如何根據地圖不同的坐标系,将經緯度的數據動态的添加在地圖當中正确顯示。
背景介紹
平面無投影:指物體在地圖上沒有對應的地理位置,一般用來作為與地理位置無關的數據的坐标參考,平面坐标系是一個二維坐标系,原點坐标為(0,
0),數據中每一個點的坐标是由其距水平和垂直的
X 軸和 Y
軸的距離确定。具體坐标顯示如圖一,圖一中是将經緯度坐标的數據顯示在平面坐标系上的坐标顯示,其經緯度的值被作為對象的X,Y
坐标值顯示:
地理坐标系:表示物體的确切地理位置,通過經緯度來描述其空間位置信息,
通常的表現形式為經度值在±180°,緯度值在±90°。如圖二所示:
具體實現
由于有三種不同的坐标系統,因此,在将經緯度的地物添加到地圖的時候,會分為平面坐标系,地理坐标系,投影坐标系三種情況。
【情況一】 平面無投影:
當地圖是平面坐标系,添加的數據是地理坐标系時,會出現兩種情況:
一、
添加的數據在地圖範圍内,可以正常的添加顯示在地圖中,其經緯度的值會作為點X,Y
的坐标添加到地圖當中,如圖四所示:
【情況二】
地理坐标系
當地圖為地理坐标系,添加的數據也是地理坐标系時,如果數據在同一地理範圍内,
可以添加到地圖窗口進行顯示。如圖五所示:
【情況三】
投影坐标系
當添加的地圖坐标系為投影坐标系,數據的坐标系為地理坐标系時,數據無法正常顯示,
如圖六。地理坐标系的顯示方式和投影坐标系的顯示方式是不同的,地理坐标系的顯示方式是球面的顯示方式,而投影坐标系的顯示方式是平面的。因此,兩個坐标系的對象不能同時顯示在一個窗口中。
Dataset dataset = mapControl.Map.Layers[0].Dataset; PrjCoordSys prjCoordSys = dataset. PrjCoordSys; bool result = CoordSysTranslator.Forward(point2ds, prjCoordSys);
投影轉換後的效果如下圖四:
,
更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!