




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、1.1 空間參考空間參考(Spatial Reference)是GIS數(shù)據(jù)的骨骼框架,能夠將我們的數(shù)據(jù)定位到相應的位置,為地圖中的每一點提供準確的坐標。 在同一個地圖上顯示的地圖數(shù)據(jù)的空間參考必須是一致的,如果兩個圖層的空間參考不一致,往往會導致兩幅地圖無法正確拼合,因此開發(fā)一個GIS系統(tǒng)時,為數(shù)據(jù)選擇正確的空間參考非常重要。在 ArcGIS 中,每個數(shù)據(jù)集都具有一個坐標系,該坐標系用于將數(shù)據(jù)集與通用坐標框架(如地圖)內的其他地理數(shù)據(jù)圖層集成。通過坐標系可在地圖中集成數(shù)據(jù)集,以及執(zhí)行各種集成的分析操作,例如疊加不同的源和坐標系中的數(shù)據(jù)圖層。1.1.1 相關知識 大地水準面大地水準
2、面是由靜止海水面并向大陸延伸所形成的不規(guī)則的封閉曲面。它是重力等位面,即物體沿該面運動時,重力不做功(如水在這個面上是不會流動的)。因為地球的質量并非在各個點均勻分布,因此重力的方向也會相應發(fā)生變化,所以大地水準面的形狀是不規(guī)則的,如下圖: 與平均海水面相吻合的稱為大地水準面 地球橢球體由定義可以知大地水準面的形狀也是不規(guī)則的,仍不能用簡單的數(shù)學公式表示,為了測量成果的計算和制圖的需要,人們選用一個同大地水準面相近的可以用數(shù)學方法來表達的橢球體來代替,簡稱地球橢球體,它是一個規(guī)則的曲面,是測量和制圖的基礎,因地球橢球體是人們選定的跟大地水準面很接近的規(guī)則的曲面,所以地球橢球體就可
3、以有多個,地球橢球體是用長半軸、短半軸和扁率來表示的。下表列出了一些最常見的參考橢球:橢球名稱長半軸 (米)短半軸 (m)扁率的倒數(shù),克拉克(Clarke) 18666 378 206.46 356 583.8294.978 698 2白塞爾(Bessel)18416 377 397.1556 356 078.965299.152 843 4International 19246 378 3886 356 911.9296.999 362 1克拉索夫斯基 19406 378 2456 356 863298.299 738 1GRS 19806 378 1376 356 752.3141298.
4、257 222 101WGS 19846 378 1376 356 752.3142298.257 223 56 基準面基準面是在特定區(qū)域內與地球表面極為吻合的橢球體。橢球體表面上的點與地球表面上的特定位置相匹配,也就是對橢球體進行定位,該點也被稱作基準面的原點。原點的坐標是固定的,所有其他點由其計算獲得?;鶞拭娴淖鴺讼翟c往往距地心有一定偏移(有的也在地心,如WGS1984),如西安80的基準面和北京54的基準面.因為橢球體通過定位以便能更好的擬合不同的地區(qū),所以同一個橢球體可以擬合好幾個基準面.因為原點不同,所以不同的基準面上,同一個點的坐標是不相同的,這點我們應該清楚.下
5、面以華盛頓州貝靈厄姆市為例來說明。使用 NAD27、NAD83 和 WGS84 以十進制為單位比較貝靈厄姆的坐標。顯而易見,NAD83 和 WGS84 表示的坐標幾乎相同,但 NAD27 表示的坐標則大不相同,這是因為所使用的基準面和旋轉橢球體對地球基本形狀的表示方式不同?;鶞拭娼?jīng)度緯度NAD 1927-122.4669036865248.7440490722656NAD 1983-122.4681835379348.7438798543649WGS 1984-122.4681835379348.74387985342993 個不同基準面時華盛頓州貝靈厄姆市的地理坐標下圖來自ArcGIS 說明
6、了基準面是基于橢球體的: 地圖投影簡單的說地圖投影就是把地球表面的任意點,利用一定數(shù)學法則,轉換到地圖平面上的理論和方法。1.1.2 兩種坐標系 地理坐標系地理坐標系也可稱為真實世界的坐標系,是用于確定地物在地球上位置的坐標系,它用經(jīng)緯度來表示地物的位置,經(jīng)度和緯度是從地心到地球表面上某點的測量角,通常以度或百分度為單位來測量該角度。下圖將地球顯示為具有經(jīng)度和緯度值的地球。地理坐標系 (GCS) 是基于基準面的使用三維球面來定義地球上的位置,GCS 往往被誤稱為基準面,而基準面僅是 GCS 的一部分,GCS 包括角度測量單位、本初子午線和基準面。下圖來自ArcGIS
7、說明了了地理坐標系的組成: 投影坐標系投影坐標系是基于地理坐標系的,它使用基于X,Y值的坐標系統(tǒng)來描述地球上某個點所處的位置,可以這樣認為投影坐標系=地理坐標系(如:北京54、西安80、WGS84)+投影方法(如:高斯克呂格、Lambert投影、Mercator投影)+線性單位。下圖來自ArcGIS說明了投影坐標系的組成:1.1.3 ArcGIS Engine對空間參考的支持ArcGIS Engine提供了一系列對象供開發(fā)者管理GIS系統(tǒng)的坐標系統(tǒng)。對大部分開發(fā)者而言了解ProjectedCoordinateSystem,GeographicCoordinateSystem,Sp
8、atialReference Environment這三個組件類是非常有必要的,對于高級開發(fā)者而言,可能需要自定義坐標系統(tǒng)可以使用這些對象Projection,Datum,AngularUnit,Spheriod,PrimeMeridian和GeoTransformation等。在ArcGIS中除了我們上面介紹的兩種坐標系,還有一種稱之為Unknown的坐標系,這種坐標系是當我們的數(shù)據(jù)沒有坐標(jpg等文件)或者坐標文件丟失的時候ArcMap不能識別數(shù)據(jù)的投影信息而賦予的,在ArcGIS Engine中下面三個類分別對應了三個坐標系:利用ArcGIS Engine創(chuàng)建一個坐標系或者基準面用的是
9、SpatialReferenceEnvironmentClass類,該類實現(xiàn)了ISpatialReferenceFactory接口,該接口定義了創(chuàng)建坐標系,基準面等方法和屬性,如下圖:在利用ISpatialReferenceFactory創(chuàng)建坐標系的時候往往需要一個int類型的參數(shù),這個int其實就是這些坐標系的代號,如我們熟悉的4326就是WGS1984,下面為部分截圖: 同一基準面的坐標轉換對于同一基準面,我們可以肯定一點就是同一位置經(jīng)緯度坐標是一樣的,而不同的就是計算成平面坐標的時候可能有所不同,因為算法不一樣,在這里我只是將經(jīng)緯度坐標轉成平面的坐標。 private IP
10、oint GetpProjectPoint(IPoint pPoint, bool pBool) ISpatialReferenceFactory pSpatialReferenceEnvironemnt = new SpatialReferenceEnvironment(); ISpatialReference pFromSpatialReference = pSpatialReferenceEnvironemnt.CreateGeographicCoordinateSystem(int)esriSRGeoCS3Type.esriSRGeoCS_Xian1980);/西安80 ISpatia
11、lReference pToSpatialReference = pSpatialReferenceEnvironemnt.CreateProjectedCoordinateSystem(int)esriSRProjCS4Type.esriSRProjCS_Xian1980_3_Degree_GK_Zone_34);/西安80 if (pBool = true)/球面轉平面 IGeometry pGeo = (IGeometry)pPoint; pGeo.SpatialReference = pFromSpatialReference; pGeo.Project(pToSpatialRefer
12、ence); return pPoint; else /平面轉球面 IGeometry pGeo = (IGeometry)pPoint; pGeo.SpatialReference = pToSpatialReference; pGeo.Project(pFromSpatialReference); return pPoint; 不同基準面的坐標轉換通過前面的介紹,我們知道地球上同一位置的坐標在不同的基準面上是不一樣的,而基準面是構成坐標系的一個部分,因為基準面在定位的時候牽扯到了相對地心的平移或旋轉等,所以對于這樣的轉換我們無法直接進行,需要一個轉換參數(shù),而這些參數(shù)也是基于
13、不同的模型的,常用的有三參數(shù)和7參數(shù),三參數(shù)是比較簡單的也是比較容易理解的,三參數(shù)是在兩個基準面之間進行了X,Y,Z軸的平移,通過下面的圖我們很清楚的看到三參數(shù)之間兩個基準面的關系:如果知道了這三個平移的參數(shù)外加個基準面上的點,那么另外一個點的坐標就是而7參數(shù)的模型比較復雜,這種復雜的同時讓精度大為提高,7參數(shù)不僅僅考慮了兩個基準面之間的平移,還考慮了旋轉外加一個比例因子(橢球體的大小可能不一樣),從下面的圖我們可以清楚看到這種關系:對于7參數(shù),我們知道了平移三參數(shù)旋轉三參數(shù)以及比例因子外加一個基準面上的坐標就可按照下面的公式求出另外一個基準面上的坐標:對于不同基準面之間的轉換,ArcGIS
14、Engine提供了一個用來控制轉換參數(shù)的接口IGeoTransformation,該接口被以下類實現(xiàn)著每一個接口對應了一種轉換方法,比如GeocentricTranslationClass類就實現(xiàn)了三參數(shù),而CoordinateFrameTransformationClass類實現(xiàn)了7參數(shù),要實現(xiàn)3參數(shù)或者7參數(shù)需要IGeometry2或更新接口的ProjectEx方法,下面我們用代碼實現(xiàn)一個不同基準面之間的坐標轉換。public void ProjectExExample() ISpatialReferenceFactory pSpatialReferenceFactory = new Sp
15、atialReferenceEnvironmentClass(); / ISpatialReference pFromCustom = pSpatialReferenceFactory.CreateESRISpatialReferenceFromPRJFile(E:arcgisEnginezidingyi.prj); IPoint pFromPoint = new PointClass(); pFromPoint.X = 518950.788; pFromPoint.Y = 4335923.97; IZAware pZAware = pFromPoint as IZAware; pZAware
16、.ZAware = true; pFromPoint.Z = 958.4791; / (IGeometry)pFromPoint).SpatialReference = pFromCustom; /自定義投影WGS84下的北京6度19帶。 (IGeometry)pFromPoint).SpatialReference = CreateCustomProjectedCoordinateSystem(); /目標投影 IProjectedCoordinateSystem projectedCoordinateSystem = pSpatialReferenceFactory.CreateProje
17、ctedCoordinateSystem(int)esriSRProjCS4Type.esriSRProjCS_Xian1980_GK_Zone_19); /因為目標基準面和原始基準面不在同一個上,所以牽扯到參數(shù)轉換,我用7參數(shù)轉換 ICoordinateFrameTransformation pCoordinateFrameTransformation = new CoordinateFrameTransformationClass(); pCoordinateFrameTransformation.PutParameters(-112.117, 4.530, 21.89, -0.00058
18、702, -0.00476421, 0.00009358, 0.99998006411); pCoordinateFrameTransformation.PutSpatialReferences(CreateCustomProjectedCoordinateSystem(), projectedCoordinateSystem as ISpatialReference); /投影轉換 IGeometry2 pGeometry = pFromPoint as IGeometry2; pGeometry.ProjectEx(projectedCoordinateSystem as ISpatial
19、Reference, esriTransformDirection.esriTransformForward, pCoordinateFrameTransformation, false, 0, 0); private IProjectedCoordinateSystem CreateCustomProjectedCoordinateSystem() ISpatialReferenceFactory2 pSpatialReferenceFactory = new SpatialReferenceEnvironmentClass(); IProjectionGEN pProjection = p
20、SpatialReferenceFactory.CreateProjection(int) esriSRProjectionType.esriSRProjection_GaussKruger) as IProjectionGEN; IGeographicCoordinateSystem pGeographicCoordinateSystem = pSpatialReferenceFactory.CreateGeographicCoordinateSystem(int)esriSRGeoCSType.esriSRGeoCS_WGS1984); ILinearUnit pUnit = pSpati
21、alReferenceFactory.CreateUnit(int)esriSRUnitType.esriSRUnit_Meter) as ILinearUnit; IParameter pParameters = pProjection.GetDefaultParameters(); IProjectedCoordinateSystemEdit pProjectedCoordinateSystemEdit = new ProjectedCoordinateSystemClass(); object pName = WGS-BeiJing1954; object pAlias = WGS-BeiJing1954; object pAbbreviation = WGS-BeiJing1954; object pRemarks = WGS-BeiJing1954; object pUsage = Calculate Meter From lat and lon; object pGeographicCoordinateSystemObject = pGeographicCoordinateSystem as object; object pUnitObject
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 青島市L區(qū)智慧養(yǎng)老服務問題與對策研究
- 轉動型雙階摩擦阻尼器力學性能研究
- 肝膽疾病超聲診斷
- 幼兒園大班健康禮儀下冊
- 呼吸機的使用及護理
- 創(chuàng)新養(yǎng)老服務模式與老年健康管理實踐
- 《機械設計基礎》課件-第12章 機械傳動設計
- 學生心理疏通和輔導培訓會
- 預防兒童流感課件
- 感染科主要診斷
- 2025年校長職級考試題及答案
- 國家能源集團采購管理規(guī)定及實施辦法知識試卷
- 2023-2024學年四川省成都市高新區(qū)八年級(下)期末數(shù)學試卷
- 2025年廣西繼續(xù)教育公需科目考試試題和答案
- 2024年廣州市南沙區(qū)社區(qū)專職招聘考試真題
- 山東醫(yī)藥技師學院招聘筆試真題2024
- (高清版)DB13(J)∕T 8556-2023 建設工程消耗量標準及計算規(guī)則(園林綠化工程)
- JJF 1334-2012混凝土裂縫寬度及深度測量儀校準規(guī)范
- GB/T 3003-2017耐火纖維及制品
- GB/T 1094.1-2013電力變壓器第1部分:總則
- 經(jīng)濟責任審計報告
評論
0/150
提交評論